Pinterest Profile Scraper avatar

Pinterest Profile Scraper

Pricing

from $4.00 / 1,000 profile scrapeds

Go to Apify Store
Pinterest Profile Scraper

Pinterest Profile Scraper

Scrape public Pinterest profiles by username or URL: followers, pins, boards, bio, website, verification and recent pins. No login needed.

Pricing

from $4.00 / 1,000 profile scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

57

Total users

32

Monthly active users

2 days ago

Last modified

Share

What is Pinterest Profile Scraper?

Pinterest Profile Scraper turns Pinterest usernames, @handles or profile URLs into one clean row per profile: display name, bio, follower and following counts, pin and board totals, linked website and whether its domain is verified, identity and merchant verification, linked Instagram, profile and cover images, join date, and any email or phone written in the bio. Each row also carries the profile's first page of boards with pin and follower counts. Brand managers, influencer marketers, sales teams and AI agents use it to size up creators and brands on Pinterest, with no Pinterest login.

Why marketers use it for creator research

  • Audience size at a glance. followerCount, pinCount and boardCount sit next to each other for quick ranking.
  • Business signals. websiteUrl, domainVerified, isVerifiedMerchant and isVerifiedIdentity show who runs a real business behind the account.
  • Contacts when they are public. email and phone are filled when the bio or linked fields publish them, and instagramUrl links the same creator on Instagram.
  • Board-level detail. Each board in boards has its own pin count, follower count and description, so you can see which topics an account invests in.
  • Pay only for real profiles. Missing usernames come back marked profile-not-found and are free.

How to use it

Compare a list of creators:

{
"usernames": [
"marthastewart",
"@nike",
"https://www.pinterest.com/homedepot/"
],
"includeBoards": true,
"includePins": true
}

Profile counts only, smallest rows:

{
"usernames": ["marthastewart"],
"includeBoards": false,
"includePins": false
}
InputWhat it controls
usernamesPinterest usernames, @handles or full profile URLs, one per entry
usernameA single profile, merged with usernames
maxItemsProfiles to process from the list, which also caps the cost (default 100)
includeBoardsAdd the profile's first page of boards (default on)
includePinsAdd recent pins found on the profile page, up to 25 (default on)
proxyConfigurationApify Proxy settings; Residential US by default

Still looking for accounts to check? Start with Pinterest Search Scraper (linked below) to find users by keyword, then pass their usernames in here.

Output: Pinterest profile data you receive

A real row for a public brand profile (the boards array is shortened to one board here):

{
"username": "marthastewart",
"fullName": "Martha Stewart",
"userId": "32088353503445352",
"profileUrl": "https://www.pinterest.com/marthastewart/",
"about": "Daily recipes, crafts, and inspiration from Martha Stewart.",
"followerCount": 1867963,
"followingCount": 322,
"pinCount": 105420,
"boardCount": 174,
"websiteUrl": "http://marthastewart.com",
"domainUrl": "marthastewart.com",
"domainVerified": true,
"isVerifiedIdentity": true,
"isVerifiedMerchant": false,
"isPrivateProfile": false,
"accountType": "user",
"email": null,
"phone": null,
"instagramUrl": "https://www.instagram.com/marthastewart/",
"joinedAt": "2011-09-15T07:56:17.000Z",
"boards": [
{
"name": "#LetsCelebrate Pin Party",
"url": "https://www.pinterest.com/marthastewart/letscelebrate-pin-party/",
"pinCount": 1165,
"followerCount": 1507531,
"privacy": "public",
"createdAt": "2013-06-05T14:01:03.000Z"
}
],
"boardsReturned": 10,
"recentPinsReturned": 0,
"scrapedAt": "2026-10-01T00:03:50.755Z",
"error": null
}
FieldWhat it contains
fullName, about, profileUrl, userIdWho the account is
followerCount, followingCount, pinCount, boardCountAudience and activity totals
websiteUrl, domainUrl, domainVerifiedThe linked website and whether Pinterest verified the domain
isVerifiedIdentity, isVerifiedMerchant, accountTypeVerification and account type
email, phone, instagramUrlPublic contact details found in the profile
boards, boardsReturnedThe first page of boards with counts and descriptions
recentPins, recentPinsReturnedPins included in the profile page, up to 25; some profiles show none
errornull for a scraped profile, profile-not-found for a missing one

Example workflow: shortlisting home-decor creators

An agency planning a home-decor campaign has 40 Pinterest handles from a brief. They run the list, sort by followerCount, and keep accounts with domainVerified true, since a verified website means a real business that can sign a contract. They read boards to confirm each creator has active home-decor boards with real follower counts. Then they pass the shortlisted websiteUrl values to Bulk Website Contact Extractor to find a business email for outreach.

Pricing

This Actor uses Pay per event. Apify platform usage is included in the event price, so you pay one event per profile scraped plus one start event per run. Profiles marked profile-not-found are free. The live Pricing tab on this page shows the current price.

  • 40 profiles = 40 profile events + 1 start event.
  • Boards and pins cost nothing extra.
  • maxItems caps each run, so it doubles as a cost ceiling.

Creator research with AI agents (MCP)

Connect this Actor to an AI agent through Apify MCP and ask in plain language:

Look up these 10 Pinterest accounts and rank them by follower count. For each, give me the website, whether the domain is verified, any public email, and their three biggest boards.

Agent checklist:

  1. Pass usernames, @handles or URLs in usernames.
  2. Set includePins: false when only counts and boards matter, to keep rows short.
  3. Read rows with get-dataset-items; skip rows where error is not null.
  4. Keep profileUrl as the stable ID when joining with other data.

API example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~pinterest-profile-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"usernames": ["marthastewart"], "includePins": false}'
Your next stepUseWhy
When you still need to find accounts by keywordPinterest Search ScraperPins, boards and users for any search term
When you then want every pin on a boardPinterest Board ScraperBoard metadata plus all its pins
When you want full detail for specific pinsPinterest Pins ScraperPin details and media
When you want pins, boards and profiles in one runPinterest Pins, Boards & Profiles ScraperSeveral Pinterest page types together
When you then want the same creator on InstagramInstagram Profile ScraperFollowers, bio and contacts from Instagram

Best results

Starting situationHelpful actionExpected outcome
A mixed list of handles and URLsPaste them as they are into usernamesOne row per profile, duplicates skipped
Ranking creatorsTurn off includePinsShorter rows with all the counts
Checking topics an account coversKeep includeBoards onBoard names, pin counts and followers
Needing every recent pinUse Pinterest Board Scraper on the boards you care aboutFull pin lists per board

Builder's note

I found that people researching Pinterest accounts mostly want to know two things: how big the audience is and whether a real business stands behind it. That is why each row puts follower counts next to the website, domain verification and merchant flags. I learned that a profile page only carries a handful of recent pins, so the full pin history is left to the board-level tools.

FAQ

Can I use profile URLs instead of usernames?

Yes. Bare usernames, @handles and full Pinterest profile URLs all work and can be mixed in one list.

Why is recentPins empty for some profiles?

The profile page only includes a few recent pins, and for some accounts none at all. Boards and counts are still returned. For complete pin lists, use Pinterest Board Scraper.

How many boards are included?

The first page of boards that Pinterest shows on the profile, which was 10 for the sample above. boardCount always shows the account's total.

Does it return emails?

When an email or phone number is written in the bio or linked fields, it is returned in email and phone. Otherwise those fields are null.

What happens with a username that does not exist?

It gets a row with error: "profile-not-found" and is not billed.

Responsible use

This Actor collects public Pinterest profile data, which can include personal data protected by laws such as the GDPR and CCPA. Use it only with a lawful basis, honor opt-outs, and respect Pinterest's terms. Read Apify's guide on whether web scraping is legal for more context. Pinterest is a trademark of Pinterest, Inc. This independent Actor is not affiliated with, associated with, or endorsed by Pinterest. For questions or bugs, open a ticket in the Issues tab.

Call over HTTP

Copy the authenticated URL from the Actor’s Endpoints tab. Send POST /profiles with Authorization: Bearer <your Apify token> and a JSON body, for example:

{"username":"marthastewart","maxItems":1,"includeBoards":true,"includePins":true,"maxCostUsd":0.004}

The username alias, usernames, maxItems default100/maximum10,000, includeBoards and includePins remain available. Boards and up to25 recent pins come from the same public page, with both options enabled by default. No new plan-specific free quota or paid feature gate is introduced. Existing normal-run limits and options remain available.

Each useful returned profile uses the existing profile-scraped event at $0.004 before discounts. Valid empty or failed lookups do not incur that result event. Shared HTTP adds no manual startup event to every request. Normal-run startup pricing ($0.00005) and platform-usage settings are unchanged.

The optional maxCostUsd must cover the maximum requested output count at the listed event price before lookup begins. Use maxItems to request a smaller maximum. This request budget is separate from your Console-wide maximum charge, which pooled billing does not currently enforce per request. X-Actor-Event-Count and X-Actor-Estimated-Charge-Usd describe the response; they are not final payout receipts.

Responses contain count, results and summary. Equivalent references are deduplicated. HTTP accepts up to10,000 entries per array, a1MiB uncompressed JSON body and a16MiB result budget, with up to four active requests per instance. The work deadline is four minutes; long/large jobs use normal runs with Dataset exports. A whole-result size error returns no billable result body; it does not silently strip fields.

HTTP rows and caller input are returned directly and are not saved in a shared Dataset/KV or caller run history. Save the JSON yourself. The service stores aggregate counters only. A502 BILLING_UNCONFIRMED withholds results and must not be retried automatically. A503 asks clients to retry later. Readiness and schema endpoints do no lookup or manual billing.

Shared-pool funding follows Apify’s beta rules: Apify covers free-pool platform usage; paid-pool platform usage is deducted from creator payout. This does not change normal-run pricing.