Pinterest Boards Search Scraper avatar

Pinterest Boards Search Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
Pinterest Boards Search Scraper

Pinterest Boards Search Scraper

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

ScraperX

ScraperX

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

9 days ago

Last modified

Share

Pinterest Boards Search Scraper — Extract Pins, Boards, Saves & External Links

Point this Actor at a Pinterest board URL, pin URL or username and it returns every pin as structured data: title, description, original-resolution image URL, video URLs, save count, creation date, the board it belongs to, the pinner behind it, and — most valuable for research — the external link and domain the pin drives traffic to.

Bulk input, up to 5,000 pins per URL, no login and no Pinterest API key.


What you get

📌 Pin data📁 Board context👤 Pinner
Title (with smart fallbacks)Board name and descriptionUsername
DescriptionBoard URL and IDFull name
Original-resolution image URLBoard privacy settingProfile image URL
All available image sizesTotal pins on the boardPinner ID
Video URLs when present
Save / repin count
Creation date
External link + domain

Key features

  • Three input types in one field. Board URLs, individual pin URLs, or plain usernames — paste them all together, one per line.
  • External links and domains. externalLink and domain tell you where each pin sends traffic. This is the field that turns a Pinterest scrape into competitor and affiliate intelligence.
  • Deduplicated, two-source collection. Pins are gathered from Pinterest's own data responses and an HTML fallback, then deduplicated by pin ID — so results stay complete even when Pinterest renders a page differently.
  • All image sizes, not just one. Every row includes the original-resolution URL plus the full set of available sizes, so you can pick the right one for your use case without re-fetching.
  • Board metadata attached to every pin. No second run needed to know which board a pin came from, how big that board is, or whether it is public.
  • Smart title and description fallbacks. When a pin has no title, the grid title or SEO alt text is used; the same for descriptions. Far fewer empty cells in your export.
  • Up to 5,000 pins per URL, with live streaming into the dataset.
  • Optional link enrichment. Turn fetchLinkDetails off for a faster, lighter run when you do not need outbound URLs.

Use cases

  • Competitor & affiliate research — group pins by domain to see which sites dominate a board or niche.
  • Content and trend research — mine titles and descriptions across boards to find the language that performs.
  • Mood boards & creative libraries — collect thousands of original-resolution image URLs with their context intact.
  • Influencer / curator discovery — the pinner object shows who is building the boards that matter in your space.
  • E-commerce product discovery — external links reveal which products are being promoted and by whom.
  • Marketing analytics — track save counts over time to see which pins keep gaining traction.
  • SEO research — Pinterest descriptions are keyword-rich; they are a useful signal for content planning.
  • Dataset building for ML — image URLs paired with text descriptions make a clean training corpus.

How it works

  1. You supply board URLs, pin URLs or usernames and a per-URL pin limit.
  2. The Actor loads each source and collects pins from Pinterest's data responses, with an HTML fallback for anything the responses miss.
  3. Board metadata is captured — name, description, URL, privacy and total pin count — and attached to every pin from that source.
  4. Each pin is normalised into a flat record, with nested objects for board, pinner, images and videos.
  5. External links are resolved into externalLink and domain when link enrichment is on.
  6. Pins are deduplicated by ID and streamed into the dataset until your limit is reached.

Quick start

  1. Open a Pinterest board in your browser and copy the URL.
  2. Paste it into Pinterest URLs — add more lines for more boards.
  3. Set Max Pins per URL (start with 25–50 to check the output).
  4. Click Start, then export the Output tab as CSV, Excel or JSON.

Minimal input

{
"urls": ["https://www.pinterest.com/officialflawliz/cherry-cola-lips/"],
"maxItems": 50
}

Input configuration

FieldTypeDefaultDescription
urlsarray— (required)Board URLs, pin URLs or usernames — one per line. Bulk input supported.
maxItemsinteger10How many pins to collect per URL, from 1 to 5,000.
fetchLinkDetailsbooleantrueResolve external links and domains for pins. Turn off for a faster, lighter run.
proxyConfigurationobjectoffOptional Apify Proxy settings. Enable if Pinterest starts refusing requests on large runs.

If a run returns nothing, Pinterest has almost certainly blocked the IP. Enable Apify Proxy — residential works best — and try again.


Output data

One row per pin.

FieldTypeDescription
idstringPinterest pin ID.
pinUrlstringCanonical pin URL.
titlestringPin title, falling back to grid title or SEO alt text.
descriptionstringPin description, falling back to SEO alt text.
imageUrlstringBest available image URL (original resolution when Pinterest publishes it).
imagesarrayAll available image sizes with their URLs and dimensions.
videosarrayVideo URLs when the pin is a video.
externalLink / linkstringDestination URL the pin points to.
domainstringHost of the destination URL.
savesCount / repinsnumberHow many times the pin has been saved.
datestringWhen the pin was created.
userstringPinner username (flat convenience field).
boardNamestringBoard name (flat convenience field).
boardobject{ id, name, url, privacy }.
boardInfoobject{ boardName, boardDescription, boardUrl, totalPins }.
pinnerobject{ id, username, fullName, imageUrl }.
indexnumberPosition of the pin within the run.
scrapedAtstringWhen the row was collected.
repinCountnumberLegacy counter kept for schema compatibility — use savesCount.

Example output

{
"id": "1125899906842624",
"pinUrl": "https://www.pinterest.com/pin/1125899906842624/",
"title": "Cherry Cola Lips — Autumn Makeup Look",
"description": "Deep berry lip with a glossy finish. Full tutorial on the blog.",
"imageUrl": "https://i.pinimg.com/originals/ab/cd/ef/abcdef.jpg",
"images": [
{ "size": "orig", "url": "https://i.pinimg.com/originals/ab/cd/ef/abcdef.jpg", "width": 1000, "height": 1500 },
{ "size": "736x", "url": "https://i.pinimg.com/736x/ab/cd/ef/abcdef.jpg", "width": 736, "height": 1104 }
],
"videos": [],
"externalLink": "https://example-beauty.com/cherry-cola-lips",
"domain": "example-beauty.com",
"savesCount": 4821,
"date": "2026-03-14",
"user": "officialflawliz",
"boardName": "Cherry Cola Lips",
"board": {
"id": "998877665544",
"name": "Cherry Cola Lips",
"url": "https://www.pinterest.com/officialflawliz/cherry-cola-lips/",
"privacy": "public"
},
"boardInfo": {
"boardName": "Cherry Cola Lips",
"boardDescription": "Autumn lip inspiration",
"boardUrl": "https://www.pinterest.com/officialflawliz/cherry-cola-lips/",
"totalPins": 312
},
"pinner": {
"id": "445566",
"username": "officialflawliz",
"fullName": "Flaw Liz",
"imageUrl": "https://i.pinimg.com/…"
},
"index": 1,
"scrapedAt": "2026-08-10T10:22:41Z"
}

Illustrative values — a live run returns current Pinterest data.


Usage examples

Several boards in one run

{
"urls": [
"https://www.pinterest.com/officialflawliz/cherry-cola-lips/",
"https://www.pinterest.com/someuser/autumn-outfits/",
"https://www.pinterest.com/anotheruser/home-office/"
],
"maxItems": 300
}

Everything a user pins

{
"urls": ["officialflawliz"],
"maxItems": 1000
}

Find which sites win a niche

Run across several boards, export to CSV, then pivot on the domain column. The most frequent domains are the sites winning that niche on Pinterest.

Fast, lightweight pass

{
"urls": ["https://www.pinterest.com/someuser/board/"],
"maxItems": 2000,
"fetchLinkDetails": false
}

Build an image library

Run with a high maxItems, then filter the images array for the orig size before downloading.


Run it from your own code

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_API_TOKEN>")
run = client.actor("scraperx/pinterest-boards-scraper").call(run_input={
"urls": ["https://www.pinterest.com/officialflawliz/cherry-cola-lips/"],
"maxItems": 200,
})
for pin in client.dataset(run["defaultDatasetId"]).iterate_items():
print(pin["title"], "|", pin["savesCount"], "|", pin.get("domain"))

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_API_TOKEN>' });
const run = await client.actor('scraperx/pinterest-boards-scraper').call({
urls: ['https://www.pinterest.com/officialflawliz/cherry-cola-lips/'],
maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL

curl -X POST "https://api.apify.com/v2/acts/scraperx~pinterest-boards-scraper/runs?token=<YOUR_APIFY_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"urls":["https://www.pinterest.com/officialflawliz/cherry-cola-lips/"],"maxItems":200}'

Integrations

Send pins to Google Sheets, Airtable, Slack, Make, Zapier, Google Drive or your own endpoint via webhooks. Attach a Schedule to track how a board grows and which pins keep gaining saves.


Pricing

Pay-per-event: a small Actor-start charge plus a charge per pin row delivered to your dataset. You pay for pins, not run time. Current rates are on the Pricing tab of this Actor's page, and Apify shows an estimate before and during each run.

Note that if you enable Apify Residential proxies, that traffic is billed separately by the platform.


Limits & good to know

  • Public content only. Secret boards and private profiles are not accessible.
  • maxItems is per URL, so three boards at 500 each can return up to 1,500 rows.
  • Maximum 5,000 pins per URL. For larger boards, split by section or run repeatedly.
  • Pinterest blocks aggressive IPs. If a run returns zero pins and the log mentions a block, enable Apify Proxy (residential) and retry.
  • The Actor returns image URLs, not image files. Download them separately if you need the binaries.
  • repinCount is retained at 0 for backwards compatibility — savesCount is the live number.
  • externalLink is empty for pins that do not point anywhere outside Pinterest.
  • Default run options are 4 GB memory and a 1-hour timeout — raise the timeout for very large boards.

FAQ

Do I need a Pinterest account or API key? No. The Actor reads public boards, pins and profiles without authentication.

What can I paste into the input? Board URLs, individual pin URLs, or plain usernames — mixed freely, one per line.

Can I get the website a pin links to? Yes — externalLink and domain. This is the most useful field for competitor and affiliate research.

Does it download images? No, it returns image URLs at every available size, including the original. Fetch the files yourself if you need them.

Why did my run return nothing? Almost always an IP block. Enable Apify Proxy with a residential group and run again.

How many pins can I get? Up to 5,000 per URL, limited by how many the board actually has.

Does it work on video pins? Yes — video URLs are returned in the videos array when the pin has them.

Which export formats are supported? JSON, CSV, Excel (XLSX), XML and RSS. JSON preserves board, pinner and images.


This Actor collects only publicly visible Pinterest content — the same boards and pins any visitor can browse. It does not log in, access secret boards, or bypass any protection. Images and pin content remain the property of their creators; usernames and profile pictures are personal data. Make sure your use complies with Pinterest's terms, copyright, and applicable data-protection law.

Support

Need extra fields, deeper board coverage, or a custom Pinterest workflow? Open an issue on the Issues tab of this Actor.