Pinterest Search Scraper: Pins & Boards, No Login avatar

Pinterest Search Scraper: Pins & Boards, No Login

Pricing

from $1.20 / 1,000 pin or board rows

Go to Apify Store
Pinterest Search Scraper: Pins & Boards, No Login

Pinterest Search Scraper: Pins & Boards, No Login

Scrape Pinterest search results, boards and profiles without login or cookies. Get pin title, description, image URL, outbound link, board, pinner, saves, created date and dominant color, or board stats. Clean JSON, CSV or Excel.

Pricing

from $1.20 / 1,000 pin or board rows

Rating

0.0

(0)

Developer

Cliqto Media

Cliqto Media

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Pinterest Search Scraper gets pins and boards from Pinterest search, public boards and public profiles, with no login and no cookies, and saves them as clean rows: title, description, image URL, outbound link, board, pinner, saves, created date and dominant color.

It is for marketers, content teams, e-commerce sellers and trend researchers. The smallest run is one keyword, for example home office ideas, with 20 pins. It finishes in a few seconds and costs $0.034 on the Free plan.

Pinterest Search Scraper: type a keyword or a board/profile URL, get pins and boards as clean rows with title, saves and board, export to JSON, CSV or Excel

Table of contents

What it does

The Actor reads public Pinterest pages the way a logged-out visitor sees them. It has three modes:

  • search: you give keywords (or pinterest.com/search/... URLs). You get the pins, or the boards, that Pinterest shows for each keyword.
  • board: you give board URLs. You get the pins of each board.
  • profile: you give profile URLs or usernames. You get the pins of the profile, or its boards.

Each pin or board is one row in the Dataset. Every row also says where it came from: the keyword or URL and its position in the Pinterest results.

The Actor does not download images. It saves image links only.

Good fit

  • Find popular pins and outbound shop links for a product keyword.
  • Collect the boards and board stats (pins, followers) of a brand profile.
  • Build a list of image URLs, titles and colors for a mood board or a dataset.

Not a fit / limits

  • No login. Private boards, secret boards and your own account data are not available.
  • A board gives only about 100 of its newest pins without login. The Actor tells you this in the run summary when a board has more pins.
  • Pinterest decides how deep a search goes. One keyword usually gives 300–970 pins, and the number changes from day to day.
  • Comments as text, related pins, board sections and video files are not collected.

Quick start

  1. Open the Input tab.
  2. Keep What to scrape = search and type a keyword in Search keywords, for example home office ideas.
  3. Keep Max results per keyword or URL = 20 (the form's prefill; the API default is 50).
  4. Click Start.
  5. Open the Output tab and the Pins view. Check the title, imageUrl and link columns.

Expected result: 20 pin rows for the keyword in a few seconds.

Use cases

Buyer jobInput pathOutput entityKey fieldsNext step
Trend and content researchmode: search, queriespintitle, description, reactionCount, createdAtsort by createdAt in a spreadsheet
Find shops and outbound linksmode: search, queriespindomain, link (when Pinterest returns it)group by domain
Competitor or brand boardsmode: profile, urls, resultType: boardsboardname, pinCount, followerCountcompare profiles
Collect one boardmode: board, urlspinimageUrl, title, dominantColormood board, image dataset

Input

Input fields

FieldPlain nameTypeRequiredDefault / prefillAllowed valuesEffectExampleRecommendation
modeWhat to scrapestringyesdefault search, prefill searchsearch, board, profileWhat to read"search"Pick the mode that matches your inputs
queriesSearch keywordsarray of stringsno*prefill ["home office ideas"]up to 50Each keyword is searched separately; duplicates run once. In board or profile mode you can put username/board or usernames here too["home office ideas"]Use plain words, any language
urlsPinterest URLsarray of stringsno*noneup to 50; any Pinterest country domainBoard, profile or search URLs. @username and username/board also work["https://www.pinterest.com/marthastewart/"]Pin, section and non-Pinterest URLs are skipped and listed in the run summary
resultTypeResultsstringnopinspins, boardsPins or boards (search and profile). Board mode always gives pins. A search URL's own /pins/ or /boards/ path wins"boards"Use boards for board stats
maxItemsMax results per keyword or URLintegernodefault 50, prefill 201–1000Stops each keyword, board or profile after this many rows200You pay per saved row, so set what you need
includePinDetailsTry to add saves to search pinsbooleannofalsetrue / falseOpens search pins that have a numeric ID to add saves, commentCount and a missing linktrueMost search pins now have new-style IDs (e1_…) and stay without saves. For saves use board or profile mode. Same price per row
proxyConfigurationProxyobjectno{"useApifyProxy": true}Apify Proxy or your ownWhich IPs reach Pinterest{"useApifyProxy": true}Change only if runs get blocked (try the RESIDENTIAL group)

* Give at least one keyword or URL. Empty input stops the run with INVALID_INPUT and no requests.

Total keywords and URLs: up to 50 per run. Duplicates are removed. Wrong URLs (a pin URL, a non-Pinterest site) are marked invalid; the other inputs still run.

Interacting settings

WhenInput AInput BEffective behaviorCost/result effect
Board modemode: boardresultTypeAlways pinsnone
Search URL with pathurls: [".../search/boards/?q=..."]resultType: pinsThe URL path (boards) winsnone
Search pinsmode: searchincludePinDetails: falsesaves and commentCount are nullfaster
Search pinsmode: searchincludePinDetails: trueOne extra request per pin with a numeric ID. Since October 2026 Pinterest search returns new-style pin IDs (e1_…) that the detail lookup this Actor uses does not accept: those pins keep saves and commentCount as null and are counted in RUN_SUMMARY.counts.detailFailuresslower: about 5 pins per second

Input examples

Search pins for a keyword (the prefill)

{
"mode": "search",
"queries": ["home office ideas"],
"maxItems": 20
}

Expected behavior: one search, 20 pins. Expected output: pin rows with title, imageUrl, link, boardName, createdAt.

Several keywords with pin details

{
"mode": "search",
"queries": ["small kitchen organization", "wedding cake ideas", "décoration salon bohème"],
"maxItems": 100,
"includePinDetails": true
}

Expected behavior: 3 keywords × 100 pins. Pins with a numeric ID are opened for saves; pins with new-style IDs (e1_…, most search pins since October 2026) are kept without saves and counted in RUN_SUMMARY.counts.detailFailures. For saves, use board or profile mode.

Boards of profiles

{
"mode": "profile",
"resultType": "boards",
"urls": ["@marthastewart", "https://www.pinterest.co.uk/bhg/"],
"maxItems": 300
}

Expected behavior: one board row per board of each profile, with pinCount and followerCount.

Output

Results go to the default Dataset. The Output tab has two views: Pins and Boards. A run summary is saved as RUN_SUMMARY in the Key-value store.

Output fields

Pin rows (type: "pin"):

FieldMeaningTypeCan be empty?Example
typeRow kindstringnopin
pinIdPinterest pin ID: numeric or, for search since October 2026, new-style e1_…; both open as urlstringno847802698648761780
urlPin pagestringnohttps://www.pinterest.com/pin/847802698648761780/
titlePin titlestringyesBoho Rattan Pendant Light Ideas…
descriptionPin description; blank text becomes nullstringyesCreate a warm and relaxing space…
altTextImage alt textstringyesa living room filled with…
imageUrlLargest image linkstringyeshttps://i.pinimg.com/originals/…jpg
imageWidth, imageHeightImage size in pixelsintegeryes564, 1002
linkOutbound link of the pinstringyeshttps://indochinadecor.com/products/…
domainDomain of the outbound linkstringyesindochinadecor.com
isVideoPin is a videobooleanyesfalse
isPromotedPin is an adbooleanyesfalse
boardId, boardName, boardUrlBoard of the pinstringyesLighting ideas for boho style living room
pinnerUsername, pinnerFullNameWho saved the pinstringyesindochinalamp
pinnerFollowerCountFollowers of the pinnerintegeryes190
savesHow many times the pin was savedintegeryes: search pins need includePinDetails and a numeric pin ID48
commentCountCommentsintegeryes: search pins need includePinDetails and a numeric pin ID0
reactionCountReactionsintegeryes2
createdAtWhen the pin was created (ISO 8601, UTC)stringyes2026-03-14T11:15:25.000Z
dominantColorMain image colorstringyes#9d8464

Board rows (type: "board"):

FieldMeaningTypeCan be empty?Example
boardIdBoard IDstringno32088284784055018
urlBoard pagestringnohttps://www.pinterest.com/marthastewart/baby-shower-planning-and-ideas/
nameBoard namestringyesBaby Shower Planning and Ideas
descriptionBoard descriptionstringyesFrom baby shower themes…
pinCountPins on the boardintegeryes194
followerCountBoard followersintegeryes: usually empty in board search, filled for profile boards1503742
sectionCount, collaboratorCountSections and collaboratorsintegeryes0
isCollaborativeGroup boardbooleanyesfalse
ownerUsername, ownerFullNameBoard ownerstringyesmarthastewart
coverImageUrlCover image linkstringyeshttps://i.pinimg.com/474x/…jpg
createdAtWhen the board was createdstringyes: usually empty in board search2013-04-11T13:34:45.000Z

Fields in every row:

FieldMeaningTypeCan be empty?Example
modeMode of the runstringnosearch
searchQueryKeyword of the rowstringyes (board/profile rows)home office ideas
inputUrlBoard or profile URL of the rowstringyes (keyword rows)https://www.pinterest.com/marthastewart/
inputYour input exactly as typedstringno@marthastewart
positionPosition in the Pinterest results for this input, from 1integerno4
fetchedAtWhen the row was readstringno2026-10-14T11:54:57.617Z

Rows of different inputs can be mixed in the Dataset, because up to 3 inputs are read at the same time. Sort by input and position to get the Pinterest order back.

Output entities and surfaces

SituationWhereResult shapeWhat to do
Normal resultDataset, views Pins / Boardsone row per pin or boardopen, export or use via API
Keyword with no resultsRUN_SUMMARYtarget empty, run NO_RESULTS if all are emptycheck the spelling or try another keyword
Board or profile does not existRUN_SUMMARYtarget not_found, run NOT_FOUND if none existcheck the URL
Your max total charge was reachedDataset + RUN_SUMMARYrows saved so far, run PARTIAL / CHARGE_LIMIT, run status Succeededraise the max charge or lower maxItems
Run timeout was nearDataset + RUN_SUMMARYrows saved so far, PARTIAL / DEADLINE_REACHEDraise the run timeout or lower maxItems
Pinterest refused or blocked after some rowsDataset + RUN_SUMMARYrows saved so far, PARTIAL / SOURCE_ERROR, run status Failedrun again later or use the RESIDENTIAL proxy group
Pinterest refused before any rowRUN_SUMMARYERROR, run status Failedsame as above

RUN_SUMMARY has status, message, counts (rows, complete, empty, not found, invalid, skipped), one targets entry per keyword or URL with its own status, and warnings (for example, a board that has more than the ~100 pins available without login).

Output example

One pin from a board run (mode: board, Martha Stewart's "Baby Shower Planning and Ideas" board; description and link shortened). Search pins look the same, but saves and commentCount are usually null:

{
"type": "pin",
"pinId": "e1_AfqPShxiIokPON5Bkrb3QXdJSK8aiWmECI9gI4-cnk4XlqGBCAA",
"url": "https://www.pinterest.com/pin/e1_AfqPShxiIokPON5Bkrb3QXdJSK8aiWmECI9gI4-cnk4XlqGBCAA/",
"title": "How to Make a Geometric Hanging Mobile Decoration",
"description": "Follow along with our easy tutorial for a hanging abstract mobile decoration. …",
"altText": "an image of a table with food on it and the title how to make a geometric hanging mobile decoration",
"imageUrl": "https://i.pinimg.com/originals/22/24/85/222485d96c8714a333d90bf8d5157e5e.jpg",
"imageWidth": 600,
"imageHeight": 900,
"link": "https://www.marthastewart.com/265650/the-modern-baby-shower",
"domain": "marthastewart.com",
"isVideo": false,
"isPromoted": false,
"boardId": "32088284784055018",
"boardName": "Baby Shower Planning and Ideas",
"boardUrl": "https://www.pinterest.com/marthastewart/baby-shower-planning-and-ideas/",
"pinnerUsername": "marthastewart",
"pinnerFullName": "Martha Stewart",
"pinnerFollowerCount": null,
"saves": 359,
"commentCount": null,
"reactionCount": 0,
"createdAt": "2020-07-16T01:25:28.000Z",
"dominantColor": "#d3d5d1",
"mode": "board",
"searchQuery": null,
"inputUrl": "https://www.pinterest.com/marthastewart/baby-shower-planning-and-ideas/",
"input": "https://www.pinterest.com/marthastewart/baby-shower-planning-and-ideas/",
"position": 3,
"fetchedAt": "2026-10-18T12:07:33.659Z"
}

null means Pinterest did not give this value for this pin. Values are what a logged-out visitor sees at run time.

Pricing and limits

Pricing unit

This Actor uses pay-per-event pricing. You pay:

  • Actor start: $0.004 per run (one event for runs up to 1 GB memory; the default is 256 MB).
  • Pin or board row: one event per row saved to the Dataset.
Store planPrice per rowPer 1,000 rows
Free$0.0015$1.50
Bronze$0.0014$1.40
Silver$0.0013$1.30
Gold and higher$0.0012$1.20

Platform usage (compute, proxy, storage) is included; you do not pay it separately. includePinDetails does not change the price per row.

Every run pays the start event, $0.004, also a run with no rows (all keywords empty, all boards or profiles not found, or invalid input). Empty, not found, invalid and skipped inputs add no rows and are not charged. If your max total charge is reached, the Actor stops, keeps the rows it saved and does not save more.

Cost examples (Free plan)

ScenarioInput scopeRowsChargeRun time in our tests
Prefill1 keyword × 2020$0.004 + $0.030 = $0.0342–6 s
Small1 keyword × 100100$0.004 + $0.150 = $0.15410–20 s (estimate)
Three keywords3 keywords × 100300$0.004 + $0.450 = $0.454about 1 min (estimate)
Large (timeout 600 s)10 keywords × 1000about 9,000$0.004 + about $13.50about 5 min
Nothing found50 profiles that do not exist0$0.004about 30 s

Limits

  • Up to 50 keywords and URLs per run, up to 1,000 rows each. Our largest test: 10 keywords × 1000 gave 9,097 rows in about 5 minutes with no blocks.
  • Search depth is set by Pinterest: usually 300–970 pins per keyword.
  • Boards: about 100 newest pins without login.
  • Up to 3 inputs at a time and up to 4 requests to Pinterest at a time.
  • The default run timeout is 300 seconds. For more than about 2,000 rows, raise the timeout in the run options.

API, export and integrations

  • API: start the Actor with POST https://api.apify.com/v2/acts/cliqtomedia~pinterest-search-scraper/runs and the input JSON. Read rows from the run's default Dataset.
  • Export: download the Dataset as JSON, CSV, Excel, XML or HTML from the Output tab or the Dataset API.
  • Scheduling: use an Apify schedule to collect the same keywords every day or week. Each run is a fresh snapshot, not a diff.
  • No-code: connect the Dataset to Google Sheets, Make, Zapier or n8n with Apify integrations.

Use with AI agents (MCP)

  • MCP server URL with only this Actor: https://mcp.apify.com?tools=cliqtomedia/pinterest-search-scraper. See Apify MCP server.
  • Smallest useful input: {"mode": "search", "queries": ["home office ideas"], "maxItems": 20}.
  • Key output fields: title (pin title), imageUrl (image link), link (outbound shop or blog link), saves (popularity, when Pinterest provides it), boardName (where the pin is saved).
  • A 20-row run takes a few seconds and costs $0.034 on the Free plan. Keep maxItems small and read RUN_SUMMARY.status before you use the rows.

Troubleshooting

saves is empty

Symptom: saves and commentCount are null for search pins. Reason: Pinterest search results do not include these numbers, and search pins with new-style IDs (e1_…) cannot be opened for details. Action: use board or profile mode, where pins include saves. includePinDetails helps only for search pins with a numeric ID.

A board gives fewer pins than it has

Symptom: a board shows 500 pins, but you get about 100. Reason: without login Pinterest shows only about 100 newest pins of a board. RUN_SUMMARY.warnings says so. Action: search for the board topic with keywords to get more pins.

Fewer search results than maxItems

Symptom: target status complete, but fewer rows than you asked for. Reason: Pinterest ended the search results. The depth changes from day to day. Action: add related keywords.

Run status is Failed with SOURCE_ERROR or ERROR

Symptom: the run failed and RUN_SUMMARY.status is PARTIAL with SOURCE_ERROR, or ERROR. Reason: Pinterest refused requests (for example, too many requests or a block). This is not an empty result. Action: rows saved before the error stay in the Dataset. Run again later, or set the proxy group to RESIDENTIAL.

FAQ

Do I need a Pinterest account or cookies?

No. The Actor reads only what a logged-out visitor sees. Do not put cookies or passwords in the input.

Does it download images?

No. It saves image links (imageUrl, coverImageUrl). You can download them later with your own tool.

Why do I get different pins than yesterday?

Pinterest changes search results all the time and shows logged-out visitors different results. Each run is a snapshot of that moment.

Is the output the same as other Pinterest scrapers?

The rows are flat: one level, no nested objects. If you move from another Pinterest Actor, map the field names using the tables above.

Not in this version. You get reactionCount in every pin row. commentCount comes only from pin details, which work for search pins with a numeric ID.

Support

For bugs, questions or feature requests, open an issue on the Issues tab of this Actor. Add the run ID, the mode and the error text from RUN_SUMMARY. Do not send tokens, cookies or passwords.