Pinterest Search Scraper — Pins, Boards & Users
Pricing
from $4.00 / 1,000 result scrapeds
Pinterest Search Scraper — Pins, Boards & Users
Search Pinterest by keyword or Pinterest search URL and get pins, boards and users as one structured JSON dataset with images, links, hashtags, video flags and counts when Pinterest provides them. No login needed; works with Apify MCP and the API.
Pricing
from $4.00 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
14
Total users
10
Monthly active users
4 days ago
Last modified
Categories
Share
What is Pinterest Search Scraper — Pins, Boards & Users?
Search Pinterest by keyword and get pins, boards, and users back as one structured JSON dataset. This Actor is built for search-based discovery: you provide one or more keywords, it runs each query independently, and each returned record represents one Pinterest search result with a result_type of pin, board, or user. Useful fields include query, position, url, scraped_at, and source_url, plus type-specific fields such as title, name, username, full_name, save_count, follower_count, and pin_count. The outcome is a unified dataset you can export, filter, or pass to AI workflows.
Best fit and connected workflows
This Actor fits workflows that start with a topic, keyword, hashtag, or niche and need Pinterest search results in a single pass. It is especially useful when you want to work across multiple result types from the same search terms.
Typical routes include:
- Keyword research for content planning and trend scanning.
- Social media analysis where pins, boards, and creators are all relevant.
- AI agent workflows that need typed Pinterest search records through Apify MCP.
- Re-running saved Pinterest search URLs (for example
https://www.pinterest.com/search/pins/?q=fall%20outfits) throughstartUrls.
If your starting point is a keyword like "minimalist kitchen" or "fall outfits", or a Pinterest search URL, this Actor provides the search layer. When you then need a specific pin, board or profile page, use Pinterest Scraper for those URLs.
Practical scenario
Maya is planning a home decor campaign and starts with the search term home office setup. She sets resultTypes to pins and boards, and keeps maxResults at 25. The returned records include title, image_url, save_count, board_name, follower_count, and url. Maya uses those fields to compare which visual styles and boards show up most often, then opens the highest-interest board URLs for deeper review.
Input
| Field | Type | Required | Description |
|---|---|---|---|
searchQueries | array[string] | Yes, unless startUrls is set | Keywords, topics, niches, or hashtags to search on Pinterest. Each query runs separately. Use plain keywords. |
startUrls | array[string] | No | Pinterest search-result URLs (/search/pins/, /search/boards/, /search/users/ with ?q=). The keyword and result type are read from each URL. Pin, board and profile URLs are skipped. |
resultTypes | array[string] | No | Which Pinterest result types to return: pins, boards, users. Defaults to pins when omitted. |
maxResults | integer | No | Maximum results per query, per selected result type. Range 1 to 5000. |
proxy | object | No | Proxy configuration for reaching Pinterest. Apify Residential proxy is the default configuration. |
Valid focused input example
{"searchQueries": ["home office setup"],"resultTypes": ["pins", "boards", "users"],"maxResults": 25,"proxy": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Output
Each dataset record uses the same shared fields and adds type-specific fields based on result_type.
| Field | Type | Description |
|---|---|---|
result_type | string | pin, board, or user. |
query | string | The search query that produced the record. |
position | integer | Result position within the query and type bucket. |
url | string | Pinterest URL for the record. |
scraped_at | string | Timestamp for when the record was captured. |
source_url | string | Source URL used by the Actor. |
title | string | Pin title, when the record is a pin. |
name | string | Board name, when the record is a board. |
username | string | Creator or profile username, when the record is a user. |
full_name | string | Profile full name, when the record is a user. |
save_count | integer | Pin save count, when available for pin records. |
follower_count | integer | Follower count for pins, boards, or users, depending on record type. |
pin_count | integer | Pin count for boards or users, depending on record type. |
image_url | string | Image URL, when available. |
Example pin row
A real pin row from a home office setup search (description omitted). Pinterest search results often leave creator, board and save counts empty; those fields are filled only when the search response includes them.
{"result_type": "pin","query": "home office setup","position": 1,"source_url": "https://www.pinterest.com/search/pins/?q=home%20office%20setup&rs=typed","id": "1055599909757458","title": null,"url": "https://www.pinterest.com/pin/1055599909757458/","image_url": "https://i.pinimg.com/originals/85/b3/06/85b3061bdc836eff52973018dd9684b3.png","image_width": 1086,"image_height": 1448,"dominant_color": "#a09678","is_video": false,"video_url": null,"save_count": null,"hashtags": [],"outbound_link": null,"board_name": null,"creator_username": null}
How it works
The Actor searches Pinterest by keyword, and each selected result type is processed independently for every query. It returns unified, typed records for pins, boards, and users in a single dataset. The input schema supports multiple queries, multiple result types, a per-query/per-type result cap, and proxy configuration. The dataset schema defines a shared core and type-specific fields, so the output stays consistent across result types.
Outcome codes
The OUTPUT record has an outcome field:
COMPLETE: every search returned without errors.VALID_EMPTY: the searches worked but returned no results; no result events are charged.PARTIAL: results were saved, but some searches failed or the run charge limit was reached.INVALID_INPUT: no keyword or usable search URL, or an invalidmaxResults; nothing is charged for results.UPSTREAM_FAILED: every search was blocked and nothing was saved; the run is marked failed.
Pricing
This Actor uses Pay per event plus Apify platform usage. The charged event is Result scraped, and it is billed for each Pinterest search result returned. The Actor also has a startup event charge on run start. See the Pricing tab for current event prices.
Example in words: if you run one query and receive twenty-five results, the result-based charge is applied twenty-five times, plus the run-start event charge.
Use with AI agents (MCP)
This Actor is available through Apify MCP as a tool for keyword-driven Pinterest search. It is the Apify Actor khadinakbar/pinterest-search-scraper, and it returns structured search results that AI agents can read from the default dataset.
Find Pinterest search results for the keyword "home office setup". Return pins and boards only, and keep the result set compact so I can compare top themes and creators.
Output interpretation:
result_typetells the agent whether a record is a pin, board, or user.querykeeps the search term attached to each record.url,title,name,username,full_name,save_count,follower_count, andpin_counthelp the agent summarize and route the next step.scraped_atandsource_urlprovide provenance for each record.
Scope and pagination guidance:
- Each selected result type multiplies the number of returned records.
maxResultsapplies per query and per result type, so one query with three result types can produce three separate buckets.- The default dataset is the readback source for downstream agent processing.
Apify API example
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const run = await client.actor('khadinakbar/pinterest-search-scraper').call({searchQueries: ['fall outfits'],resultTypes: ['pins', 'users'],maxResults: 10,proxy: {useApifyProxy: true,apifyProxyGroups: ['RESIDENTIAL'],},});const dataset = await client.dataset(run.defaultDatasetId).listItems();console.log(dataset.items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("khadinakbar/pinterest-search-scraper").call(run_input={"searchQueries": ["sourdough recipes"],"resultTypes": ["pins", "boards"],"maxResults": 10,"proxy": {"useApifyProxy": True,"apifyProxyGroups": ["RESIDENTIAL"],},})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Best results and outcome guidance
Use plain keyword phrases that reflect how people search on Pinterest, such as topics, styles, seasonal ideas, or niches. Start with pins if you want broad discovery, and add boards or users when you want more creator and collection context. Keep maxResults aligned with the amount of data you want per query and per result type.
Continue the workflow
- Then use Pinterest Scraper for pin, board or profile URLs found in these search results.
- Then use Pinterest Video Downloader — MP4 + HLS Links for the video pins (
is_video: true) you want to download.
Design note
I designed the Actor to read results from Pinterest's own search API responses while the page scrolls, instead of parsing the rendered grid. Because only that JSON is needed, images, video and fonts are not downloaded, which keeps proxy traffic low. One unified dataset holds pin, board and user rows, so you can filter by result_type without separate exports.
FAQ
When should I use this Actor instead of a URL scraper?
Use this Actor when your starting point is a keyword, topic or Pinterest search URL. For a specific Pinterest board, pin, or profile URL, use Pinterest Scraper.
Can I search multiple keywords in one run?
Yes. Add multiple entries to searchQueries, and each query is processed independently.
Can I return only pins?
Yes. pins is the default resultTypes value when you omit the field.
What happens if I select pins, boards, and users together?
The Actor returns each selected type for each query, with separate result buckets and matching dataset records.
Which fields are useful for routing records into downstream tools?
result_type, url, query, position, and the type-specific fields such as title, name, username, save_count, follower_count, and pin_count.
Responsible use
This Actor works with public Pinterest search results and is intended for lawful, policy-compliant use. Review your use case, follow Pinterest's terms and applicable privacy rules, and handle profile-related fields with care when using them in downstream systems or AI workflows.