Pinterest data API: the official API or an Apify Actor?
Pinterest has a public official API. 6 Apify Actors in this catalogue return Pinterest data over HTTP too: send the input to Apify's run-sync endpoint with your token and get the records back as JSON, from $0.40 a run plus $0.99 per 1,000 results at Store prices (plus platform usage).
Use the official Pinterest API for OAuth access to Pins, boards, users, ads and analytics within its scopes and rate limits. Choose an Actor when you need public Pinterest search results, idea topics, media downloads, comments or shopping trends.
Side by side
| Pinterest API v5 | Apify Actors (6) | |
|---|---|---|
| Access | Public, self-serve | Apify API token (any account) |
| What you get | Pinterest API v5 provides endpoints for pins, boards, users, ads and analytics with OAuth access. | Rows defined by each Actor's published schema; up to 56 fields per record |
| Price | No published per-call price for standard API access. | From $0.40 a run plus $0.99 per 1,000 results (Store price, Free plan), plus platform usage |
| Limits | Rate limits and OAuth scopes apply. | Synchronous calls wait up to 300 s; longer runs go asynchronous |
| Docs | Pinterest API v5 | Apify API: run-sync |
Official API facts checked 2026-11-09. Public content only; respect Pinterest's terms; not legal advice.
Which Actor for which job
All of them list $0.99 per 1,000 results on the Store, plus a start fee per run.
- Collect Pins, profiles and idea topics -> Pinterest Pins, Profiles, Boards & Idea Topics Scraper: creator and board context
- Download Pin media -> Pinterest Media Downloader: media_url, media_type and dimensions
- Collect comments and Tried It activity -> Pinterest Pin Comments & Activity Extractor: replies and activityType
- Research trending searches and shopping topics -> Pinterest Trending Topics & Shopping Category Scraper: region, rank and weekOverWeekChange
- Collect Pin engagement and creator details -> Pinterest Rich Pin, Board & Creator Field Scraper: pinner_username, board_name and save_count
| Actor | Returns | Fields include | Call it |
|---|---|---|---|
| Pinterest Pins, Profiles, Boards & Idea Topics Scraper | Public Pinterest Pins, profiles, boards, board sections, idea topics, search results, and comments with real media, creator… | pinId, title, description | run-sync · Apify |
| Pinterest Media Downloader | A dataset row per downloaded Pinterest image, GIF or video file with Pin, creator, board and engagement metadata, plus optional… | record_type, pin_id, pinterest_url | run-sync · Apify |
| Pinterest Pin Comments & Activity Extractor | One Pin summary row per accessible Pin plus public comment, reply and Tried It activity rows selected by the input mode. | activityType, pinId, commentId | run-sync · Apify |
| Pinterest Pins, Profiles and Boards Collector with Filters | Pinterest Pin, profile, board, boardSection and comment rows with media, creator, board, commerce and provenance fields. Opaque… | record_type, sourceType, sourceValue | run-sync · Apify |
| Pinterest Trending Topics & Shopping Category Scraper | Public Pinterest trending searches, keyword history and forecasts, related terms, audience demographics, images, suggestions… | term, title, name | run-sync · Apify |
| Pinterest Rich Pin, Board & Creator Field Scraper | One record per Pin, profile, board or comment with media variants, creator and board detail, and engagement counts. | record_type, id, title | run-sync · Apify |
Call Pinterest Media Downloader
The call waits for the run and returns the records as JSON. Swap the Actor ID for any Actor in the table. Set APIFY_TOKEN first; runs bill to that account.
curl
curl -X POST "https://api.apify.com/v2/actors/vexaloom-labs~pinterest-media-downloader-2/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"pinDetail","pinUrls":["112027111109155913"],"mediaType":"all","imageSize":"736x","videoQuality":"best","maxItems":1,"maxPages":0,"verifiedOnly":false,"requireOutboundLink":false,"excludeAds":false,"commerceOnly":false,"includeComments":false,"maxComments":10}' Install: pip install "apify-client>=3"
Python
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run_input = {
"mode": "pinDetail",
"pinUrls": [
"112027111109155913",
],
"mediaType": "all",
"imageSize": "736x",
"videoQuality": "best",
"maxItems": 1,
"maxPages": 0,
"verifiedOnly": False,
"requireOutboundLink": False,
"excludeAds": False,
"commerceOnly": False,
"includeComments": False,
"maxComments": 10,
}
run = client.actor("vexaloom-labs/pinterest-media-downloader-2").call(run_input=run_input)
if run is None:
raise RuntimeError("The Actor run could not be started")
print(run.status, "dataset", run.default_dataset_id)
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item) Install: npm install apify-client
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const input = {
"mode": "pinDetail",
"pinUrls": [
"112027111109155913"
],
"mediaType": "all",
"imageSize": "736x",
"videoQuality": "best",
"maxItems": 1,
"maxPages": 0,
"verifiedOnly": false,
"requireOutboundLink": false,
"excludeAds": false,
"commerceOnly": false,
"includeComments": false,
"maxComments": 10
};
const run = await client.actor("vexaloom-labs/pinterest-media-downloader-2").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, items[0]); Generated from the Actor's published schema and checked, not executed.
Same data, other routes
- Pinterest MCP server: these Actors as tools in Claude, Cursor, ChatGPT, VS Code and Codex.
- Every Actor with a one-request API
When a call fails
Why does the workflow or script stop with HTTP 408?
The synchronous endpoint waits at most 300 seconds. After that it answers 408 while the run keeps going in Apify. Lower the result limit, or start the run asynchronously, wait for it to finish and then read its dataset.
Source: Apify API: run Actor synchronously and get dataset items
What do 400, 401, 402 and 403 from the Apify API mean?
Read error.type in the response body. 400 is invalid Actor input. 401 (user-or-token-not-found) means a token reached Apify but it is wrong or revoked. 402 with x402-payment-required means no token reached Apify at all: the n8n credential or the Authorization: Bearer header is missing, and Apify is offering its pay-per-run x402 route for agents instead; any other 402 is an exhausted usage limit on the account that pays for the run. 403 is a token without permission for that Actor or storage.
Source: Apify API: authentication; Apify documentation: agentic payments with x402; Apify API: run Actor synchronously and get dataset items
Why does starting an Actor through the API return run information instead of scraped results?
The Run Actor endpoint starts the Actor and immediately returns a Run object without waiting for completion. For results stored in the default dataset, pass the response's defaultDatasetId to Get dataset items; to wait and receive output directly, use the synchronous endpoint for dataset items or a key-value store record.
Source: Apify Run Actor API
Why are rows and hidden fields missing from my Apify dataset export?
The clean parameter enables both skipEmpty and skipHidden, removing empty items and fields whose names begin with #. This can produce fewer items than the requested limit; to retain those rows and fields, disable clean and ensure skipEmpty and skipHidden are also disabled.
Source: Apify Get dataset items API
Questions
When should I use the official Pinterest API?
Use it for endpoints covering Pins, boards, users, ads and analytics with OAuth access. OAuth scopes and rate limits apply.
Can I get Pinterest comments and replies as structured data?
Pinterest Pin Comments & Activity Extractor returns public comment, reply and Tried It activity rows selected by the input mode, plus a summary for each accessible Pin. Its fields include commentId, isReply, parentCommentId and text.
Which Actor returns Pinterest image and video download links?
Pinterest Media Downloader returns a dataset row per downloaded image, GIF or video file with Pin, creator, board and engagement metadata. Its fields include media_url, media_type, media_format, media_width and media_height.
Is there an official Pinterest API?
Pinterest API v5 provides endpoints for pins, boards, users, ads and analytics with OAuth access. No published per-call price for standard API access.
How much does Pinterest data cost through an Apify Actor?
The Actors listed here charge from $0.40 a run plus $0.99 per 1,000 results on the Apify Store (Free plan), checked 2026-11-12, billed to the Apify account whose token makes the call. Actor start events and platform usage can add to that.
Can I get Pinterest data as JSON in one HTTP request?
Yes, through Apify's run-sync-get-dataset-items endpoint: POST the Actor input with your token and the response is the dataset as JSON. It waits up to 300 seconds; longer runs need the asynchronous run endpoint.
Can an AI agent use the same Pinterest data?
Yes. The Pinterest MCP page bundles these Actors into one Apify MCP URL for Claude, Cursor, ChatGPT, VS Code and Codex.
Is it allowed to collect Pinterest data?
Public content only; respect Pinterest's terms; not legal advice. Read Pinterest's terms before you build on the data.
Sources
- Pinterest API v5 documentation, checked 2026-11-09
- Apify API: run Actor synchronously, checked 2026-11-11
- Pinterest terms