Pinterest Profile Scraper & Board List
Pricing
from $4.99 / 1,000 results
Pinterest Profile Scraper & Board List
Pinterest Profile Scraper helps you extract structured data from public Pinterest profiles. Retrieve boards, pins, follower counts, and profile information efficiently. Designed for growth teams, researchers, and analytics workflows.
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
API Empire
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
Pinterest Scraper — Extract Profiles, Boards and Sections as JSON
Pinterest profile scraper that reads any public Pinterest account and returns the full profile record together with its complete board inventory — board name, description, pin and follower counts, cover image, collaborator flags and dates — plus an optional list of the sections inside each board. Every response is typed, normalized JSON: no HTML, no selectors, no parsing. Give it a username or profile URL and get back one structured row per account, ready to load into a spreadsheet, a database, or an LLM pipeline.
🧭 What is Pinterest Profile Scraper & Board List?
Pinterest Profile Scraper & Board List is an Apify Actor that reads a public Pinterest account's profile header and its board inventory in the same run — no Pinterest account, cookie, or login required, since every field it returns is already served to logged-out visitors. It optionally goes one level deeper and returns the sections Pinterest lets an owner use to sub-divide a board (a Kitchen board split into Storage, Lighting, Backsplash, for example). It does not scrape the pins themselves — no pins[] array, no pin-level rows — board and section inventory is the product.
- Scrape the public profile record — followers, following, pins created, bio, avatar, verification and merchant flags, SEO fields
- Scrape every board an account publishes — name, description, pin count, follower count, cover image, owner, collaborator flags, creation date
- Optionally scrape the sections inside each board — id, title, slug, pin count
- Export results as JSON, CSV, or any format Apify's dataset export supports
- No proxy setup required to get started, no HTML parsing, no selectors to maintain
📦 What data does Pinterest Profile Scraper & Board List collect?
Three entity types come back from a single run, each nested one inside the other — profile, then boards, then (optionally) the sections inside a board.
| Data Type | Key Fields | JSON Field Names |
|---|---|---|
| Profile | Username, display name, bio, followers, following, pins created, board count, website, verification flags | username, full_name, about, follower_count, following_count, pin_count, board_count, website_url, is_verified_merchant |
| Boards | Board name, description, pin count, follower count, cover image, owner, collaborator flags, timestamps | boards[].name, boards[].description, boards[].pin_count, boards[].follower_count, boards[].cover_image_url, boards[].owner_username, boards[].is_collaborative |
| Board sections | Section title, slug, pin count | boards[].sections[].title, boards[].sections[].slug, boards[].sections[].pin_count |
💡 Need more Pinterest data?
This Actor reads accounts you already know the username or URL for — it does not discover new ones. If you need to find boards or accounts by topic instead of by name, Pinterest Boards Scraper By Keyword Search (also published under API-Empire) discovers boards from a search term. If you're after Pinterest's paid ad inventory rather than organic profiles, Pinterest Ads Scraper & Multi-Country Ad Coverage covers that separately.
⚡ How does Pinterest Profile Scraper & Board List differ from the official Pinterest API?
Pinterest's official REST API (Pinterest API v5) is scoped to the data of the account that authorizes your app, not to arbitrary public accounts — it exists for businesses to manage and report on their own Pinterest presence, not to read a third party's boards (checked via Pinterest API v5 documentation summaries, 2026-08-04).
| Feature | Pinterest API v5 | Pinterest Profile Scraper & Board List |
|---|---|---|
| Data scope | The authorizing app's own connected business account | Any public Pinterest account you name |
| Authentication | OAuth 2.0, requires a registered app and a Pinterest business account | None — Apify account only, no Pinterest login |
| Approval process | App review by Pinterest before production access | None — starts on the first run |
| Board sections | Not exposed as a distinct public read endpoint for third-party accounts | Returned directly, with a section_count signal even when sections are switched off |
| Setup time | App registration, OAuth flow, review wait | Supply a username and run |
| Output consistency | Native JSON, but only for data you are authorized to see | Native JSON for any public account, same schema on every row |
The official API is the right call when you manage the Pinterest account yourself and need write access or ad-account reporting. This Actor is the right call when you need read-only, structured data on accounts you do not control — competitor research, market monitoring, or content-strategy analysis.
🎯 Why do developers and teams scrape Pinterest profiles and boards?
Pinterest is a visual discovery platform organized entirely around boards, so a competitor's or creator's board structure tells you what they are betting on — before you ever look at an individual pin.
For AI engineers and agent builders
Feed boards[] and boards_summary into a RAG index or an agent tool call to let an LLM answer "what is this brand pinning about?" without touching HTML. Because every field is typed JSON with a stable schema — pin_count is always an integer or null, sections is always an array or null — an agent pipeline can trust the shape on every row and skip a validation layer entirely.
For marketers and brand teams
Point the Actor at a shortlist of competitor accounts and compare board_count, follower_count per board, and boards_summary across the list to see which content categories a rival is actually investing in versus which boards are dormant (flagged by the minBoardPins filter and boards_dropped_by_filter).
For researchers and analysts
Because the Actor runs logged out and only ever returns what Pinterest serves a public visitor, it's suited to public-data-only research — tracking how brand or creator accounts structure content over time, or building a dataset of board naming and organization patterns across an industry, without needing any account credentials.
For developers building data products
Schedule the Actor to re-run against a fixed list of accounts and diff board_count, boards_returned, and boards_truncated between runs to detect when a tracked account adds, removes, or reorganizes boards — a monitoring pipeline built entirely on Apify's schedules and dataset API, no custom crawler to maintain.
🛠️ How to scrape Pinterest profiles and boards (step by step)
- Open Pinterest Profile Scraper & Board List on its Apify Store listing and click Try for free (or Run, if you already have it saved).
- Provide the required input —
startUrls, one entry per account, as a bare username or a full profile URL. - Set the board filters you want:
includeBoardsto turn boards on or off,maxBoardsPerProfileandminBoardPinsto cap and floor the board list, andincludeBoardSectionsif you also need the sections inside each board. - Start the run from the Console, the Apify API, or a schedule.
- Download the results as JSON, CSV, or any other format the Apify dataset export offers.
What to do when Pinterest changes its structure
The Actor is maintained, and its output schema — field names and types — stays stable on the user's end even when Pinterest's own page markup changes underneath it. Integrations built against these column names keep working without code changes on your side.
⬇️ Input
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
startUrls | Yes | array | One entry per account. Accepts a bare username, a profile URL, a regional domain, or any sub-path below the profile root (a board URL or a tab URL both resolve to the parent profile). Search phrases are not supported. | ["marthastewart", "https://www.pinterest.com/wayfair/"] |
maxProfiles | No | integer | Hard cap on how many supplied accounts are processed. 0 reads every account supplied. Minimum 0, maximum 1000. | 10 |
includeBoards | No | boolean | Returns the account's boards, nested in the boards column. Default true. Off means every board column is null. | true |
maxBoardsPerProfile | No | integer | How many boards to keep per account, applied after the minBoardPins floor. Minimum 1, maximum 500. Default 50. | 50 |
minBoardPins | No | integer | Drop boards holding fewer pins than this. 0 keeps every board. Minimum 0, maximum 100000. Default 3. | 3 |
includeBoardSections | No | boolean | Also return the sections inside each returned board. Default false. | false |
proxyConfiguration | No | object | Apify Proxy configuration, used for every request in the run (profile, boards, and sections alike). No default proxy is applied unless you turn one on. | { "useApifyProxy": false } |
Example input
{"startUrls": ["marthastewart", "https://www.pinterest.com/wayfair/"],"maxProfiles": 10,"includeBoards": true,"maxBoardsPerProfile": 50,"minBoardPins": 3,"includeBoardSections": false,"proxyConfiguration": { "useApifyProxy": false }}
The most common input mistake is passing a search phrase or a pin URL instead of a username or profile URL — this Actor reads named accounts, it does not discover them, and a non-username target produces an uncharged row with errorReason: invalid_input rather than a search result.
⬆️ Output
Every run writes one dataset row per supplied account, plus one uncharged accounting row for any target that could not be read. The row is rectangular — all columns are present on every row, success or failure — so CSV and Excel exports line up. Results are downloadable as JSON, CSV, Excel, XML, or any other format the Apify dataset export supports.
Scraped profile record
{"username": "marthastewart","profileUrl": "https://www.pinterest.com/marthastewart/","full_name": "Martha Stewart","first_name": "Martha","about": "America's most trusted lifestyle expert.","follower_count": 3200000,"following_count": 200,"pin_count": 154000,"board_count": 174,"interest_following_count": 12,"website_url": "https://www.marthastewart.com","domain_url": "marthastewart.com","domain_verified": true,"is_primary_website_verified": true,"impressum_url": null,"instagram_data": { "username": "marthastewart48", "url": "https://www.instagram.com/marthastewart48" },"verified_identity": null,"is_verified_merchant": false,"is_inspirational_merchant": false,"is_partner": true,"partner": null,"is_private_profile": false,"is_ads_only_profile": false,"is_gco_account": false,"indexed": true,"seo_noindex_reason": null,"seo_title": "Martha Stewart on Pinterest","seo_description": "174 boards.","seo_canonical_domain": "www.pinterest.com","image_medium_url": "https://i.pinimg.com/.../medium.jpg","image_xlarge_url": "https://i.pinimg.com/.../xlarge.jpg","profile_cover_url": "https://i.pinimg.com/.../cover.jpg","profile_cover": { "source": "cover", "images": { "originals": { "url": "https://i.pinimg.com/.../cover_orig.jpg" } } },"eligible_profile_tabs": ["created", "saved"],"created_at": "Tue, 07 May 2024 13:19:53 +0000","createdAtIso": "2024-05-07T13:19:53Z","last_pin_save_time": "Sun, 03 Aug 2026 09:11:02 +0000","lastPinSaveTimeIso": "2026-08-03T09:11:02Z","id": "123456789012345678","node_id": "VXNlcjoxMjM0NTY=","input": "marthastewart","dataSource": "user_resource_api","errorReason": null,"errorMessage": null,"scrapedAt": "2026-08-04T10:00:00Z","boards": [{"id": "987654321098765432","node_id": "Qm9hcmQ6OTg3NjU0","name": "Holiday Recipes","url": "/marthastewart/holiday-recipes/","full_url": "https://www.pinterest.com/marthastewart/holiday-recipes/","description": "Festive dishes for every gathering.","pin_count": 412,"follower_count": 18300,"section_count": 2,"collaborator_count": 0,"is_collaborative": false,"owner_username": "marthastewart","is_owned_by_profile": true,"cover_image_url": "https://i.pinimg.com/.../board_cover.jpg","cover_image_hd_url": "https://i.pinimg.com/.../board_cover_hd.jpg","created_at": "Mon, 12 Sep 2016 08:00:00 +0000","created_at_iso": "2016-09-12T08:00:00Z","board_order_modified_at": "Thu, 30 Jul 2026 14:22:00 +0000","board_order_modified_at_iso": "2026-07-30T14:22:00Z","sections": [{ "id": "111222333", "node_id": "U2VjdGlvbjoxMTEyMjI=", "title": "Desserts", "slug": "desserts", "pin_count": 58 },{ "id": "111222334", "node_id": "U2VjdGlvbjoxMTEyMjM=", "title": "Mains", "slug": "mains", "pin_count": 71 }]}],"boards_returned": 173,"boards_dropped_by_filter": 4,"boards_truncated": true,"boards_summary": "Holiday Recipes (412) | Fall Decor (298) | ... +171 more"}
Board object
Every boards[] entry always carries the same fields, in this order:
id, node_id, name, url, full_url, description, pin_count, follower_count, section_count, collaborator_count, is_collaborative, owner_username, is_owned_by_profile, cover_image_url, cover_image_hd_url, created_at, created_at_iso, board_order_modified_at, board_order_modified_at_iso, sections.
Board section object
Every entry inside a board's sections[] array carries: id, node_id, title, slug, pin_count.
🔍 How does Pinterest Profile Scraper & Board List compare to other Pinterest scrapers?
| Feature | Pinterest Profile Scraper & Board List | Generic alternative |
|---|---|---|
| Output format | Typed JSON, stable field names on every row | ✅ Structured output is common, but field sets vary run to run |
| Entity coverage | Profile, full board inventory, and optional sections in one run | ❌ Often profile-only or board-only; rarely both plus sections |
| Missing-value handling | Explicit null for anything not returned by Pinterest — never defaulted to 0 or "" | ❌ Missing counts are frequently coerced to 0, hiding "not collected" |
| Filter accounting | boards_dropped_by_filter and boards_truncated report exactly what was filtered or cut | ❌ Typically no accounting for what was dropped |
| Failed-target billing | Invalid or dead targets produce an uncharged row with a typed errorReason | ❌ Failed targets are often silently skipped or billed the same as a success |
If you're building an AI agent or RAG pipeline, the output format row is the decision-maker — parsing HTML inside an agent loop is a reliability failure mode, not a feature.
🔢 How many results can you scrape with Pinterest Profile Scraper & Board List?
There is no hard cap on how many accounts you can supply in startUrls; maxProfiles (0–1000, default the first 10 unless changed) only limits how many of them are actually processed in one run, and 0 removes the limit entirely. Per account, boards are capped by maxBoardsPerProfile (1–500, default 50) after the minBoardPins floor is applied, and the board list itself is fetched in a single request for every account measured so far — a bookmark-based pagination loop exists as a safety net (up to 8 pages) but has not been triggered in testing. Board sections paginate 25 per page, up to 10 pages per board. There is no published Pinterest-side rate limit for these guest endpoints to cite; the Actor's own ceilings above are the only documented limits.
🔌 Integrate Pinterest Profile Scraper & Board List and automate your workflow
Pinterest Profile Scraper & Board List works with any language or tool that can send an HTTP request, through the standard Apify API.
REST API integration
from apify_client import ApifyClientclient = ApifyClient("<APIFY_API_TOKEN>")run = client.actor("<YOUR_USERNAME>/pinterest-profile-scraper-and-board-list").call(run_input={"startUrls": ["marthastewart", "wayfair"],"maxProfiles": 10,"includeBoards": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["username"], item["boards_returned"])
Works in Python, Node.js, Go, Ruby, and cURL.
Automation platforms (n8n, Make)
In Make, the Apify module's Run an Actor action can trigger this Actor and pass startUrls and the board filters as module fields, feeding the returned dataset into any downstream scenario step. In n8n, the community Apify node calls the same run-and-fetch-dataset pattern as an HTTP-based workflow node, so a scheduled workflow can re-run this Actor against a fixed account list and hand the results to a Slack, Sheets, or database node.
⚖️ Is it legal to scrape Pinterest profiles and boards?
Yes — scraping publicly available data is generally permitted, and Pinterest Profile Scraper & Board List only returns information Pinterest already serves to a logged-out visitor: no private accounts, no login-gated content, nothing behind a paywall. Because a Pinterest profile's name, bio, and follower count can constitute personal data about an identifiable individual, GDPR and CCPA still govern how you store, process, and use it once collected — the Actor's public-only scope does not itself grant a lawful basis for every downstream use. Pinterest's own Terms of Service also apply to how you use the platform, separately from data-protection law. Consult legal counsel for commercial use cases involving bulk personal data.
❓ Frequently asked questions
Does Pinterest Profile Scraper & Board List work without a Pinterest account?
Yes. Every field it returns is served to a logged-out visitor, so no Pinterest cookie, login, or API key is required — only an Apify account to run the Actor.
How often is the scraped data updated?
Every run fetches live data directly from Pinterest at the moment it runs; nothing is cached or served from a previous run. Each row carries its own scrapedAt timestamp.
What happens if an account has been deleted or never existed?
A dead handle returns an uncharged accounting row with errorReason: not_found. All data columns on that row are null, and the row still counts toward the dataset's row total but not toward billing.
Can I scrape private Pinterest accounts or their boards?
No. Only publicly accessible profiles and boards are returned. A private profile still returns its public header fields (flagged by is_private_profile), but its boards are not part of the guest-visible board grid.
Does an account's board grid ever include boards it didn't create?
Yes — collaborative boards owned by another account can appear on a profile's board grid. Every board carries owner_username and is_owned_by_profile so a row is never mistaken for "this account created every board listed here."
Does Pinterest Profile Scraper & Board List work for AI agent workflows and LLM pipelines?
Yes, as an HTTP endpoint callable by any agent framework through the Apify API. Every response is typed JSON with a stable field set, so it can be passed directly into an LLM context window or indexed into a vector store without a parsing step.
How does Pinterest Profile Scraper & Board List handle Pinterest's anti-bot defenses?
It makes requests with Chrome browser impersonation (via curl_cffi) and the specific request header Pinterest's guest resource endpoints require, retries transient failures (HTTP 403/408/425/429/500/502/503/504, up to 3 attempts with backoff) and falls back from the resource API to the profile page's embedded data, then to its ld+json block, before giving up on a target. Apify Proxy is supported for every request but is not required — Pinterest served all endpoints to a bare Apify datacenter IP in testing.
Does Pinterest Profile Scraper & Board List return data in a format LLMs can use directly?
Yes. Typed, normalized JSON with stable field names, no HTML and no selectors — pass it directly to an LLM context window, index it into a vector store, or route it through an agent tool call.
Can I use Pinterest Profile Scraper & Board List without managing proxies?
Yes. Apify Proxy is built into the proxyConfiguration input and is entirely optional — the Actor runs on a direct connection by default and only needs a proxy switched on if a run starts returning blocked accounting rows.
What happens when Pinterest changes its structure or blocks the scraper?
The Actor is maintained and its output schema stays stable on your end — field names and types don't change because of an internal Pinterest markup change. No numeric turnaround time is published for maintenance fixes.
💬 Your feedback
Found a bug, or missing a field you need from a Pinterest profile or board? We want to know — reach out through the Actor's Issues tab on the Apify Store, or message API-Empire directly through the Apify platform. Bug reports and field requests are what keep this Actor's schema accurate as Pinterest's own pages change.