How to Scrape Pinterest Profiles in Python (Followers, Pins, Boards Without Login)
Pinterest has no public API for scraping profiles. Learn how to extract follower counts, monthly views, board lists, recent pins with save counts, and profile metadata as structured JSON without login or API key.
The actor referenced in this article. Pay only for results delivered.
Pinterest is one of the highest-intent social platforms for e-commerce, fashion, food, home decor, and DIY content. With no public API for profile metrics, scraping is the standard method for influencer research and audience analysis. Here is the complete guide.
Try it live: Pinterest Scraper, 4 Modes, 17-Field Pins, No Login. Pay per result delivered. Failed and empty results are never charged.
What each profile contains
- Follower count and monthly views
- Board count and total pin count
- Profile bio and external website link
- Recent pins: save count, image URL, caption, and board name
Common use cases
Influencer vetting. Before a partnership, pull follower count, monthly views, and recent pin engagement to assess reach and authenticity.
Competitor content research. Monitor the pins, boards, and save counts for competitors or category leaders to identify high-performing content angles.
Brand monitoring. Track what pins featuring your products get shared and saved by checking for your URL in profiles that link back.
E-commerce product research. High save counts on pins indicate purchase intent. Use this to identify what visual styles or products are trending in a niche.
Using the Apify actor
import apify_client
client = apify_client.ApifyClient('YOUR_APIFY_TOKEN')
run_input = {
"username": "anthropic",
"maxItems": 20,
}
run = client.actor('themineworks/pinterest-profile-scraper').call(run_input=run_input)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
if item.get('_type') == 'profile':
print(f"Profile: {item.get('full_name')} (@{item.get('username')})")
print(f" Followers: {item.get('follower_count', 0):,}")
print(f" Monthly views: {item.get('monthly_views', 0):,}")
print(f" Boards: {item.get('board_count', 0)} | Pins: {item.get('pin_count', 0)}")
print(f" Website: {item.get('website', 'N/A')}")
elif item.get('_type') == 'pin':
print(f" Pin: {item.get('description', '')[:60]}...")
print(f" Saves: {item.get('save_count', 0)} | Board: {item.get('board_name', 'N/A')}")
Bulk influencer vetting
ACCOUNTS = ['joannagaines', 'thepioneerwoman', 'minimalistbaker', 'halfbakedharvest']
run_input = {
"usernames": ACCOUNTS,
"maxItems": 10,
}
run = client.actor('themineworks/pinterest-profile-scraper').call(run_input=run_input)
profiles = [i for i in client.dataset(run['defaultDatasetId']).iterate_items()
if i.get('_type') == 'profile']
# Sort by monthly views
for p in sorted(profiles, key=lambda x: x.get('monthly_views', 0), reverse=True):
ratio = p.get('monthly_views', 0) / max(p.get('follower_count', 1), 1)
print(f"{p.get('full_name', p.get('username'))}")
print(f" {p.get('monthly_views', 0):,} monthly views | {p.get('follower_count', 0):,} followers")
print(f" Views-to-follower ratio: {ratio:.1f}x")
Top pins by save count
Find the content resonating most with an audience:
run_input = {
"username": "target",
"includePins": True,
"maxItems": 50,
}
run = client.actor('themineworks/pinterest-profile-scraper').call(run_input=run_input)
pins = [i for i in client.dataset(run['defaultDatasetId']).iterate_items()
if i.get('_type') == 'pin' and i.get('save_count')]
top_pins = sorted(pins, key=lambda x: x.get('save_count', 0), reverse=True)[:10]
print("Top 10 pins by saves:")
for pin in top_pins:
print(f" [{pin.get('save_count', 0):,} saves] {pin.get('description', '')[:80]}")
print(f" Board: {pin.get('board_name', 'N/A')} | {pin.get('image_url', '')[:60]}")
Board analysis
from collections import defaultdict
board_stats = defaultdict(lambda: {'pins': 0, 'total_saves': 0})
for pin in pins:
board = pin.get('board_name', 'Unknown')
board_stats[board]['pins'] += 1
board_stats[board]['total_saves'] += pin.get('save_count', 0)
print("Boards ranked by total saves:")
for board, stats in sorted(board_stats.items(), key=lambda x: -x[1]['total_saves'])[:10]:
avg = stats['total_saves'] / max(stats['pins'], 1)
print(f" {board}: {stats['pins']} pins | {stats['total_saves']:,} saves | {avg:.0f} avg")
Pricing
$0.002 per profile, failed results are never charged. Pins are included when includePins: true is set.
Explore the scraper referenced in this article: inputs, outputs, and pricing, then run it on Apify.
Frequently asked questions
Does Pinterest have a public API for scraping profiles? +
Pinterest offers a limited API for business accounts, but it does not expose public profile metrics like follower count or monthly views. Scraping is required to get this data from public profiles.
What data does the Pinterest scraper return? +
Follower count, monthly views, board count, pin count, bio, website URL, and recent pins with save counts, image URLs, captions, and board names.
Does the scraper require a Pinterest login? +
No. The scraper works entirely on publicly visible profile pages without any account credentials.
YouTube Channel Scraper: Subscribers, Video Stats and Channel Data Without a YouTube API Key
How to pull YouTube channel metadata and video lists: subscriber count, view counts, publish dates, video descriptions, without using the YouTube Data API or paying for quota.
Instagram Profile Data Without the Meta API: Followers, Bio, and Posts at Scale
Meta restricts the Instagram Graph API to your own accounts. For researching public third-party profiles at scale, here is what data is available and how to collect it.
How to Scrape the Meta Ad Library in Python (Facebook and Instagram Ads, No Login)
The Meta Ad Library has no official scraping API. Learn how to extract ad copy, creative URLs, advertiser details, platforms, and run dates from Facebook and Instagram ads by keyword or advertiser, as structured JSON.
Threads Has No Public API in 2026: Here Is How to Get Post and Profile Data Anyway
Every field you can collect from Threads without an API: post text, engagement counts, media, profiles. No login required, from $1 per 1,000 posts, plus a comparison of the scrapers that do it.