Pinterest Scraper — Pins, Boards, Search, Products avatar

Pinterest Scraper — Pins, Boards, Search, Products

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Pinterest Scraper — Pins, Boards, Search, Products

Pinterest Scraper — Pins, Boards, Search, Products

Public Pinterest pins from keyword search, boards, sections, profiles and pin links. No login. Images in all sizes, video, outbound link and domain, saves, board and pinner info, product price when shown. Only-new alert mode. Status row per input; failed inputs are free.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Dottti

Dottti

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Categories

Security

Limited permissions

Share

Pinterest Scraper: Pins, Boards, Search, Products

Get public Pinterest pins from keyword searches, boards, board sections, profiles and single pin links. Each pin comes back as one flat row: title, description, outbound link and domain, image links in four sizes, video links, save and repin counts where Pinterest shows them, product price when Pinterest shows it, plus the board and the account that saved it.

The actor needs no Pinterest account, no cookies and no browser. It reads the same public data that Pinterest shows to a logged-out visitor.

Who uses it

  • E-commerce teams who check which products, shops and domains show up for a keyword, and how pins link out to stores.
  • Marketing and content teams who track their own boards and competitors' boards and profiles on a schedule.
  • Trend researchers who collect the top pins for a list of keywords, in any language, with the rank of each pin.
  • AI pipelines that need clean JSON with image links, alt text and descriptions.

What you put in

FieldExampleWhat you get
Search keywordsboho living room, ديكور غرفة نومPins in Pinterest's order. position 1 is the top result.
Board linkshttps://www.pinterest.com/IKEAUSA/living-rooms/ or a section .../sephora/makeup/eyes/One board row and the board's pins.
Profilesikeausa or https://www.pinterest.com/marthastewart/One profile row and the pins the account created, newest first.
Pin linkshttps://www.pinterest.com/pin/252834966578398817/, a pin.it link, or the pin numberThe full pin.

Max pins per input caps each keyword, board and profile. Pinterest pages 25 pins at a time.

What you get

Every row has a type field.

  • pin: pinId, pinUrl, title, description, altText, link, domain, createdAt (ISO 8601, UTC), dominantColor, imageUrl (original size) with imageWidth and imageHeight, imageUrl736, imageUrl474, imageUrl236, isVideo, videoUrl (MP4), videoHlsUrl, videoDurationSec, saveCount, repinCount, commentCount, reactionCount, hashtags, topics, isPromoted, richSiteName, product fields (isProduct, productName, productBrand, productPrice, productCurrency, productAvailability, productInStock), board fields (boardId, boardName, boardUrl), pinner fields (pinnerUsername, pinnerFullName, pinnerFollowerCount, pinnerProfileUrl), and where the row came from (sourceType, sourceInput, searchQuery, position).
  • profile: username, name, about, website, follower count, following count, pin count, board count, video pin count, monthly views, profile image. Follower lists are never collected.
  • board: name, link, description, pin count, follower count, section count, category, owner, cover image.
  • status: one row for each input that returned nothing or failed (missing account, missing board, bad link, blocked). Status rows are free.

Logged out, Pinterest hides the real pin number in search results and board feeds. It shows a masked id such as e1_AfqPShx... instead, and a link built from it does not open. So:

  • Pins from profiles, board sections and pin links always have a real pinUrl.
  • Pins from boards get a real pinUrl for the newest 50 pins of the board. Older board pins keep the masked id.
  • Pins from search keep the masked id. pinUrl is null and pinIdIsMasked is true. Every other field is filled.

A masked id stays the same between runs, so you can use it to remove duplicates and for alerts.

Counts and product data

  • Search results from Pinterest carry no save count. saveCount is null for search pins. Board, profile and pin rows have it.
  • Turn on Add full pin details to fetch each board and profile pin's own data. This adds repin count, comment count, the MP4 video link and product data. It costs one extra request per pin, so the run takes longer. The price per row stays the same.
  • Logged out, Pinterest shows a product price on few pins. When it does, productPrice and productCurrency are filled. When it does not, they are null. The actor never guesses a price.

Examples from real runs (28 October 2026)

Input:

{
"searchQueries": ["boho living room", "ديكور غرفة نوم", "summer dress", "kitchen organization"],
"boardUrls": [
"https://www.pinterest.com/IKEAUSA/living-rooms/",
"https://www.pinterest.com/sephora/makeup/eyes/",
"https://www.pinterest.com/marthastewart/appetizers-and-hors-doeuvres-recipes/"
],
"profileUrls": ["ikeausa", "https://www.pinterest.com/sephora/", "https://www.pinterest.com/anthropologie/"],
"pinUrls": [
"https://www.pinterest.com/pin/252834966578398817/",
"https://www.pinterest.com/pin/24277285508518252/",
"98938523062369812",
"https://www.pinterest.com/pin/1096908053030636037/",
"https://www.pinterest.com/pin/48061921672808523/"
],
"maxPinsPerInput": 100
}

Result: 1,011 rows (1,005 pins, 3 profiles, 3 boards), 15 of 15 inputs ok, 59 requests, 24 seconds.

A search pin (long text shortened here):

{
"type": "pin",
"pinId": "e1_AfqPShyOOUMVVH8R2i7raEnUIwAdqygH0ZSgYO_8xlMFQEnbZzxH",
"pinIdIsMasked": true,
"pinUrl": null,
"title": "Kitchen Cabinet Organization Ideas | Mug & Bowl Storage",
"description": "Make your kitchen cabinets look organized, functional, and beautiful with these easy kitch...",
"altText": "the shelves are filled with dishes and cups",
"link": "https://amzn.to/4AEZe0X",
"domain": "amzn.to",
"createdAt": "2026-10-05T20:12:50.000Z",
"dominantColor": "#b6a292",
"imageUrl": "https://i.pinimg.com/originals/0e/b8/b4/0eb8b4e1d33fe4a7c5eab2f927290894.png",
"imageWidth": 1000,
"imageHeight": 1500,
"imageUrl236": "https://i.pinimg.com/236x/0e/b8/b4/0eb8b4e1d33fe4a7c5eab2f927290894.jpg",
"isVideo": false,
"saveCount": null,
"reactionCount": 17,
"boardName": "Organization",
"boardUrl": "https://www.pinterest.com/abbieshomefinds/organization/",
"pinnerUsername": "abbieshomefinds",
"sourceType": "search",
"searchQuery": "kitchen organization",
"position": 1
}

A board pin with its real id:

{
"type": "pin",
"pinId": "252834966578271852",
"pinIdIsMasked": false,
"pinUrl": "https://www.pinterest.com/pin/252834966578271852/",
"title": "Irresistible Accent Chairs",
"link": "https://www.ikea.com/us/en/rooms/living-room/gallery/a-modern-living-room-with-a-timeless-...",
"domain": "ikea.com",
"createdAt": "2026-09-10T20:08:52.000Z",
"saveCount": 1,
"repinCount": 0,
"richSiteName": "IKEA",
"boardName": "Living Rooms",
"pinnerUsername": "IKEAUSA",
"sourceType": "board",
"position": 1,
"maskedPinId": "e1_AfqPShxTfbi0cisT88HXzJMeG50QfLi9VeS2iGQrXH5YLalfchQd"
}

A video pin from a pin link:

{
"type": "pin",
"pinId": "24277285508518252",
"pinUrl": "https://www.pinterest.com/pin/24277285508518252/",
"title": "Red Sequin Mini Dress Outfit",
"domain": "anthropologie.com",
"isVideo": true,
"videoUrl": "https://v1.pinimg.com/videos/iht/expMp4/76/7c/9f/767c9f21af3290c9fb7bb119529c2367_720w.mp4",
"videoHlsUrl": "https://v1.pinimg.com/videos/iht/hls/76/7c/9f/767c9f21af3290c9fb7bb119529c2367.m3u8",
"videoDurationSec": 5.7,
"saveCount": 0,
"repinCount": 0,
"commentCount": 0,
"boardName": "On My Way",
"pinnerUsername": "anthropologie",
"pinnerFollowerCount": 1941347
}

A board row:

{
"type": "board",
"boardId": "252835035269372768",
"name": "Living Rooms",
"url": "https://www.pinterest.com/IKEAUSA/living-rooms/",
"pinCount": 1202,
"followerCount": 667519,
"sectionCount": 6,
"category": "home_decor",
"ownerUsername": "IKEAUSA",
"lastPinnedAt": "2026-10-27T21:41:12.000Z"
}

A status row (free):

{
"type": "status",
"input": "IKEAUSA/nope-board-xyz",
"kind": "board",
"status": "not_found",
"pins": 0,
"error": "Pinterest says: Board not found. The account, board or pin may be private, removed, or the link is wrong.",
"charged": false
}

Status values: ok (only in the run summary), no_results, not_found, invalid_input, blocked, api_error, cut_by_cost_limit, skipped_cost_limit.

Alerts: only new pins

Turn on Only new pins (alert mode) and schedule the actor. The first run delivers everything and saves a baseline. Each later run delivers only pins that the same keyword, board, profile or pin did not return before. You pay only for new rows. Use a different Alert state name for each watchlist. The state lives in the named key-value store pinterest-scraper-state.

How to schedule

  1. Save your input as a task in Apify Console.
  2. Open Schedules, create a schedule (for example every day at 08:00) and add the task.
  3. Turn on alert mode if you want only new pins each time.
  4. Connect the dataset to email, Slack, Google Sheets or a webhook with an Apify integration.

Run summary

The RUN_SUMMARY record in the run's key-value store lists the status of every input, rows by type, average time per input type, requests, bytes and the proxy tier that was used.

Pricing

You pay per result: $1.00 per 1,000 rows (pins, profiles and boards). Status rows are free. Failed inputs cost nothing. Platform usage is included in the price.

Set a maximum cost per run in Apify Console. When the limit is reached, the actor stops cleanly and marks the remaining inputs as skipped_cost_limit.

Limits

  • Public data only. Private boards, secret boards and deleted pins return a not_found status row.
  • Real pin links are missing for search pins and for board pins older than the newest 50 (see above).
  • Search results have no save count. Product prices appear only when Pinterest shows them logged out, which is rare.
  • Follower and following lists are never collected.
  • Profile pins are the pins the account created, newest first. Pins the account saved from others are not listed.
  • Pinterest can change its web app at any time. The actor reads the current app version from Pinterest's own page at the start of each run and reports any failure as a status row.

Proxy

By default the actor first runs with no proxy, moves to Apify datacenter proxy if Pinterest blocks, and uses residential proxy only as the last step. You can turn off the residential step or set your own proxy under Advanced.