Pinterest Scraper - $1.60 per 1,000, No Login avatar

Pinterest Scraper - $1.60 per 1,000, No Login

Pricing

from $1.60 / 1,000 pin returneds

Go to Apify Store
Pinterest Scraper - $1.60 per 1,000, No Login

Pinterest Scraper - $1.60 per 1,000, No Login

A pin is an image plus a link back to wherever it came from, usually a product page or a recipe. That link is on every row, with title, description, image URL, video URL, pinner and board. Repin and comment counts are null; Pinterest stopped sending them. $1.60 per 1,000 pins.

Pricing

from $1.60 / 1,000 pin returneds

Rating

5.0

(3)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

1

Bookmarked

17

Total users

3

Monthly active users

2 days ago

Last modified

Share

Pinterest Search Scraper

A pin is an image plus a link back to wherever that image came from, usually a product page or a recipe. That outbound link is the field most people are here for, and it arrives on every row alongside the title, description, image URL, pinner, board, and the video URL when the pin is a video. No login and nothing for you to paste.

Pinterest's web API rejects anything that doesn't look like a real browser session carrying the current app build hash, so this bootstraps a session and reads the live build on every run, then pages through the results.

What you get per pin

FieldNotes
idPinterest's pin id.
titlePin title. Can be empty when the pinner never set one.
descriptionThe pin's description text, hashtags included.
pinUrlpinterest.com/pin/{id}/.
imageUrlFull-size image.
isVideoWhether Pinterest flags the pin as video.
videoUrlDirect video file. See the caveat below.
linkThe destination the pin links out to — the affiliate or product URL. This is the field most people are actually after.
dominantColorHex, from Pinterest.
reactionCountReactions on the pin. Usually a small number, null on roughly a quarter of rows.
repinCount, commentCountSee the caveat below.
createdAtISO timestamp.
pinnerUsername, pinnerNameThe account that pinned it.
boardName, boardUrlThe board it lives on.
isPromotedSponsored pin flag. Promoted pins are excluded unless you ask for them.

Two caveats worth reading

repinCount and commentCount come back null. Pinterest stopped putting them in the search response. Across 239 pins from twelve recent runs, both were null on every single row. Don't build a "top pins by repins" pipeline on this. reactionCount is the engagement number you do get, and even that was null on about a quarter of those 239.

videoUrl can be null even when isVideo is true. Pinterest doesn't always include the playable file in the search payload. Those are still genuine video pins; only the direct URL is missing.

Beyond those, link, description, createdAt, boardName, boardUrl and dominantColor can each be null when Pinterest omits them for a given pin.

Input

FieldTypeDefaultNotes
querystringRequired. Keywords, e.g. home office setup.
maxItemsinteger50Pins to collect, up to 2000. It pages until it reaches this.
includeVideosOnlybooleanfalseKeep only video pins.
includePromotedbooleanfalseInclude sponsored pins.
notionConnectorstringOptional. Authorize a Notion MCP connector once under Settings → API & Integrations, pick it here, and every pin is written into Notion when the run ends.
{
"query": "minimalist tattoo",
"maxItems": 200,
"includePromoted": false
}

Cost

$0.0016 per pin, which is $1.60 per 1,000. Flat on every plan.

A $0.005 run-start fee applies from 24 August 2026, charged once per run on top of the per-pin price.

Only real pins are billed. Runs that get blocked, rate-limited, return nothing, or are given bad input write a single ok: false row with an errorCode and cost you nothing per pin:

  • BAD_INPUT — no query was given.
  • BLOCKED / RATE_LIMITED — Pinterest pushed back on the exit address. It rotates automatically, so retry.
  • NO_RESULTS — the search worked and matched nothing.
  • NETWORK / SERVER_ERROR — transient. Retry later.

If you get fewer pins than you asked for

Usually Pinterest's relevance ranking simply ran out of fresh results for that query — the scraper stops after two consecutive pages with no new pins. The other possibility is a rate limit. Check the dataset for a diagnostic row; that tells the two apart.

Proxy

Handled for you. It goes out through rented static addresses, falls back to Apify datacenter, and rotates on a block. Residential is never used, so nothing is billed per gigabyte. You can supply your own proxy servers in the Proxy input and they're used exactly as given.