Scrape any public Pinterest profile by username — bio, website links, follower count, join date, boards and its most recent pins. Also finds profiles by keyword and enriches each one with the same detail. No login needed. Export to CSV, JSON or Excel, or run via API.
All notable changes to the Pinterest Profile Scraper — Bio, Links & Recent Pins are documented here.
The format follows Keep a Changelog .
[0.0.16] - 2026-08-18
Fixed
A public account with no recent pins now says so, instead of leaving you to guess. In Mode 2,
an account that exists and is public but has nothing Pinterest lists publicly — everything saved
to secret boards, or simply dormant — returned no rows and no explanation. On a free plan the run
said nothing at all; on a paid one it could show the first-run welcome note in place of an
answer. It now names the account, says the lookup itself worked and was charged, that the pins
are what is missing rather than the account, and points at Mode 1 for the bio and links, which
that same one charge already covers.
[0.0.15] - 2026-08-18
Fixed
A run that looked up everything you asked for no longer reports that it hit a limit. When you
set a "max profiles" number and had exactly that many targets, the run's RUN_SUMMARY record
still said the cap had been reached — which reads as "your results were cut short" when nothing
was cut short at all. The run now says it completed, and only reports a cap when profiles were
actually held back.
The free-plan message no longer claims there was more to fetch without checking. It used to
tell every free run that reached the 10-profile ceiling "There was more to fetch for this input",
whether or not there had been. It now appears only when something really was held back, and it
says what: how many profiles were found and not looked up, and how many of your inputs were never
processed.
The run's "Skipped (free limit)" figure on the live status page now appears. It was calculated
from a number that had already been reduced to the free-plan ceiling, so the condition behind it
could never be true and the row never showed.
Changed
RUN_SUMMARY now also records profileCap, capSource (whose limit stopped the run — your own
"max profiles" number, the free-plan ceiling, or the built-in demo), profilesHeldBack and
targetsUnreached. Existing fields, the dataset columns, the input schema and pricing are
unchanged, and saved tasks continue to work identically.
A run stopped by the free-plan ceiling now records that separately from a run stopped by your own
"max profiles" number. Both used to be reported the same way.
[0.0.14] - 2026-08-17
Maintenance build — no user-facing changes. Input schema, output dataset
columns, KVS records, console output, error messages, defaults, and pricing
are all unchanged from 0.0.13. Saved tasks continue to work identically.
[0.0.13] - 2026-08-17
Maintenance build — no user-facing changes. Input schema, output dataset
columns, KVS records, console output, error messages, defaults, and pricing
are all unchanged from 0.0.12. Saved tasks continue to work identically.
[0.0.12] - 2026-08-12
Maintenance build — no user-facing changes. Input schema, output dataset
columns, KVS records, console output, error messages, defaults, and pricing
are all unchanged from 0.0.11. Saved tasks continue to work identically.
[0.0.11] - 2026-08-12
Maintenance build — no user-facing changes. Input schema, output dataset
columns, KVS records, console output, error messages, defaults, and pricing
are all unchanged from 0.0.10. Saved tasks continue to work identically.
[0.0.10] - 2026-08-10
Fixed
A failed run no longer prints the raw technical failure text from the service this actor depends
on. That text went into the run log and into the run's storage records, and on a connection
problem it carried that service's address. None of it was ever useful to you. Failures now read as
"the request was refused upstream"; the reasons you can act on are unchanged.
[0.0.9] - 2026-08-10
Changed
The free-plan limit ids listed in the run's FREE_LIMITS_APPLIED storage record now use one
shared vocabulary across all our actors, so the same limit reads the same wherever you meet it.
The human-readable message on each entry is unchanged.
[0.0.8] - 2026-07-30
Maintenance build — no change to input, output or pricing.
[0.0.7] - 2026-07-29
Fixed
A row is no longer at risk of being held back because an optional field is missing. The
description of the output carried strict validation rules that a real Pinterest profile does not
always satisfy — no website link, no recent pins — and a row that failed them could be rejected
instead of saved. The rules are gone. Column names, order and contents are unchanged, and the
avatar and pin previews in the Overview tab still work.
Changed
The Storage tab now names the records the run writes instead of showing bare keys.
The Store listing now says what this actor returns — bio, website links, follower count,
join date, boards and recent pins — and the price line shows the per-profile price instead of a
generic label.
[0.0.6] - 2026-07-28
Fixed
The status page now keeps up while a run is going. Its saved copy was only written twice —
once at the start and once at the end — so anyone opening it mid-run saw the run as it looked at
second zero. It now refreshes every ten seconds.
The "Live status" link now works after a run has finished. It pointed at the run's own
container, which the platform shuts down as soon as the run ends, so opening it later showed
nothing. It now opens the saved copy of the page, which stays available for as long as the run's
storage does.
Build 0.0.5 said the status page survived the end of a run. Its saved copy did, but the
link still pointed at the container, so there was still nothing to open. Both halves are in
place from this build.
[0.0.5] - 2026-07-28
Builds 0.0.2–0.0.4 are the same feature set; they only attached the actor's environment variables
and corrected how the live status page is stored.
Fixed
The live status page now survives the end of a run. Its saved copy was being rejected on
every run, so opening Live Status after a run finished led nowhere. The page is stored
correctly from this build on.
[0.0.1] - 2026-07-28
First build.
Added
Mode 1: Get profiles by username. One row per account — bio, every outbound link, primary
website domain, follower count, join date, avatar, board count, last-save date and Pinterest's
verification flags. Accepts a bare handle, an @handle or a full profile link.
Mode 2: Get a profile's recent pins. Up to ten most recent pins per account, one row each,
with pin link, image, title and publish date. Pinterest publishes ten and no more for a public
profile, so this is a recency snapshot rather than an archive.
Mode 3: Find profiles by keyword. Finds the accounts publishing about a topic and then looks
each one up, so every row carries the bio and website links a plain search never returns.
Charged once per profile, never per row. In Mode 2 that single charge covers all ten of that
profile's pins. Usernames that resolve to nothing, lookups that fail, and Mode 3 candidates
dropped before lookup are not charged at all.
Filters:minFollowers, onlyProfilesWithWebsite, websiteDomainContains,
excludeAdsOnlyProfiles. In Mode 3 the follower and ads-only filters run before each account is
looked up, so those two reduce the bill as well as the output.
Primary website domain is picked past the social links. Accounts routinely list Instagram
before their own site; website_domain skips the social platforms so a lead list groups by the
domain that matters.
Free plan looks up 10 profiles per run; every mode, filter and field stays available.
Empty input runs a small sample instead of failing, on any mode.
Storage records:RUN_SUMMARY, USER_MESSAGE, FREE_LIMITS_APPLIED, SKIPPED_ITEMS, plus a
self-refreshing live status page.
USER_MESSAGE covers every empty-run cause — entry that is not a profile link, username with
no public profile, lookup that could not complete, all rows filtered, demo run, free cap reached —
each naming the next action.
Notes
A username that does not exist is asked for twice before the run reports it as missing, so a
momentary upstream stumble is never presented to a customer as "this account does not exist".
Follower and following lists are not available to logged-out visitors on Pinterest and are not
offered here. The follower count is.
Bios arrive HTML-encoded from Pinterest and are decoded before they reach the dataset, so an emoji
in a bio is an emoji rather than 🌿.