Pinterest Images & Videos Downloader by Keyword avatar

Pinterest Images & Videos Downloader by Keyword

Pricing

from $4.56 / 1,000 file storeds

Go to Apify Store
Pinterest Images & Videos Downloader by Keyword

Pinterest Images & Videos Downloader by Keyword

Downloads Pinterest images, videos and every page of idea pins into your run's storage, by keyword, profile, board or pin URL. Each file gets a SHA-256 checksum, size, resolution and, for video, duration, fps, codec and audio flag. No login. A file that fails to download is never charged.

Pricing

from $4.56 / 1,000 file storeds

Rating

0.0

(0)

Developer

Adriana Voss

Adriana Voss

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Pinterest Downloader: Images & Videos by Keyword

Give this actor a keyword, a profile, a board or a pin URL and it downloads each pin's media into your own Apify storage: original-size images, MP4 videos, and every page of an idea pin. Every file is hashed with SHA-256 while it streams, and every video is probed with ffprobe for duration, resolution, frame rate, codec and audio. No login, no cookies.

Who it's for

A designer or marketer building a mood board wants the actual image files for a keyword like "scandinavian living room", not a list of links. A social team archiving a brand's profile or a campaign board wants durable copies with a checksum that proves what was saved. A dataset or AI pipeline needs pin images and videos together with their title, description, alt text, board and pinner, in one flat row per file.

Why this one

  • Four ways in, one output. Keywords, profile usernames, board URLs and pin URLs (including pin.it short links) all land in the same row shape, tagged with source and sourceValue.
  • Originals, not thumbnails. Images come from i.pinimg.com/originals/. A video pin gets its 720p MP4 plus a cover still. An idea pin with 11 pages gives you 11 files, each with its pageIndex.
  • Every file is hashed while it streams. sha256 is computed during the download, so it is the checksum of exactly what was stored.
  • Real ffprobe numbers. duration_s, fps, codec and hasAudio come from running ffprobe on the downloaded bytes.
  • A failed file is never charged. An over-cap file, a dead link, an HLS-only video that could not be converted, a pin you already got in this run: each is free. Only a file that landed in storage is billed.
  • Media never touches the proxy. Only the small JSON requests go through Apify Proxy. The files are fetched directly.

What you get

One row per stored file by default (turn off "Expand rows" to get one row per source with the files nested under files).

FieldTypeDescription
querytextThe source as submitted, prefixed with its type, for example profile:marthastewart
source / sourceValuetextquery, profile, board or pin, and the keyword, username, user/board or pin it came from
pinId / pinUrltextThe pin's id and its pinterest.com link
kindtextimage, video, or cover (a video pin's still)
pageIndexnumberPage of an idea pin, 0 for a single-file pin
kvKey / kvUrltextWhere the file is stored in this run's key-value store
originalMediaUrltextThe Pinterest CDN URL the file came from
bytes / sha256number / textSize and SHA-256, computed while streaming
width / heightnumberPixel dimensions
duration_s / fps / codec / hasAudionumber / text / booleanffprobe fields; null for a still where meaningless
title / description / altTexttextFrom the pin; null when the pin has none
pinnerUsername / boardName / link / createdAttextFrom the pin; createdAt is null on board feeds, which do not carry it
videoSkippedtexthls-only when a video exists only as an HLS stream that could not be converted
errortextWhy a file could not be stored. null on success

Scope and limits

  • Public content only. Private boards, secret boards and logged-in-only views are not available, and there is no input for a cookie or session.
  • Idea pins and videos are supported. A carousel_data pin type exists in Pinterest's data, but none appeared across about 120 logged-out pins during the build, so that shape is handled but has not been seen live.
  • pin.it short links are followed to the pin when the link resolves to one.
  • kvUrl needs your Apify token. The run's default key-value store is private.
  • Video is MP4. When a pin only offers an HLS stream, it is converted to MP4 with ffmpeg without re-encoding; if that fails the video is skipped and flagged, not billed.

Pricing

  • File stored: $6 per 1,000 files
  • Megabyte downloaded: $0.005 per MB

Plus a $0.0075 start fee per run. Each event above is billed independently, only when it actually returns data — misses (found:false) are never charged.

Billing is per stored file (file event) plus per megabyte stored, rounded up per file (megabyte event). Misses, filtered pins, duplicate pins, over-cap files and HLS-only skips are never billed.

Example runs

Each is a ready-to-run input.

  1. Download Pinterest images by keyword
    {"queries": ["scandinavian living room"], "maxPinsPerSource": 25, "kinds": "images"}
  2. Download every pin from a Pinterest board
    {"boards": ["https://www.pinterest.com/marthastewart/crafts/"], "maxPinsPerSource": 50, "kinds": "all"}
  3. Download Pinterest videos from a profile
    {"profiles": ["marthastewart"], "maxPinsPerSource": 25, "kinds": "videos"}

Use-case variant candidate: none

How to use

  1. In the Apify Console. Open the actor page and click Start — the queries field is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found.
  2. Via the API. Call it directly with a POST request — no Console needed once you have an API token:
    curl "https://api.apify.com/v2/acts/accountable_eel~pinterest-media-downloader/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"queries":["scandinavian living room"]}'
  3. On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.

Input

{
"queries": [
"scandinavian living room"
]
}

One search term per line, as you would type it into Pinterest. Add profiles, boards or pin URLs in the fields below; at least one of the four is needed. Accepted formats: scandinavian living room, minimalist bathroom, cottagecore bedroom.

Sample output

queryfoundstatussourcesourceValuepinCountfileCounttruncatedfilespinIdpinUrlkindpageIndexkvKeykvUrloriginalMediaUrlbytessha256widthheightduration_sfpscodechasAudiotitledescriptionaltTextpinnerUsernameboardNamelinkcreatedAtvideoSkippederrorscrapedAt
scandinavian living roomtrueOK<all files (full list)><size (bytes)><duration (s)>1970-01-01T00:00:00.000Z

Use it from Clay, n8n, Make, or an AI agent

This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.

curl "https://api.apify.com/v2/acts/accountable_eel~pinterest-media-downloader/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-X POST \
-H "Content-Type: application/json" \
-d '{"queries":["scandinavian living room"]}'

n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~pinterest-media-downloader/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"queries":["scandinavian living room"]} (swap in an expression from an earlier node for a real value).

Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~pinterest-media-downloader/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"queries":["{{source}}"]}, mapping the row's source into the queries array.

MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "Pinterest Image Downloader: Save Pins by Keyword" — the agent will find and run this actor.

Tips

  • Start with maxPinsPerSource at 5 to see what a source returns before a big run.
  • Use "Videos only" on a profile to skip its image pins. Pins without a video are not downloaded or billed.
  • A pin that appears under two sources is downloaded once per run. Turn off "Never download the same pin twice" to get it under each.
  • Lower "Max file size" to keep one long video from dominating a run's storage.

vs. alternatives

Pinterest's own downloader links hand you one pin at a time. Link scrapers return image URLs that you still have to fetch yourself. This actor does the fetching, stores the files, and gives you checksums and ffprobe data in the same row.

Data & privacy

Only publicly visible pins are read, as a logged-out visitor would see them. No account, cookie or token is used or stored. Files are saved to your own run's storage and nowhere else. You are responsible for having the right to use what you download.

FAQ

Can it download a private board? No. Only what Pinterest shows to a logged-out visitor.

Why is createdAt empty on some rows? Board feeds do not carry a pin's date. Search, profile and single-pin lookups do.

Does a video pin cost two files? Yes: the MP4 and its cover still are two stored files, each billed once.

What happens to a huge video? It is aborted at your "Max file size" and returned as an error row, free.

  • Pinterest Search Scraper: Pins by Keyword: just need the pin data for a keyword (titles, links, counts) without downloading the files.

  • pinterest-search-lookup: pin metadata and image links by keyword, no files.

  • ig-media-downloader: the same download-and-hash workflow for Instagram posts.