# Pinterest Profile Scraper (`devcake/pinterest-profile-scraper`) Actor

Extract Pinterest user profiles with follower/following and pin/board counts,bios, emails, recent content.
50+ fields for influencer outreach, lead generation, and competitor analysis.

- **URL**: https://apify.com/devcake/pinterest-profile-scraper.md
- **Developed by:** [devcake](https://apify.com/devcake) (community)
- **Categories:** E-commerce, Lead generation, Social media
- **Features:** Limited permissions
- **Stats:** 60 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $4.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 👤 Pinterest Profile & Email Scraper

Extract Pinterest user profile data including usernames, follower counts, bios, website URLs, verification status, and contact information. Perfect for influencer marketing, lead generation, and social media research.

### ✨ Features

- 👤 **Complete Profile Data** — Username, bio, avatar, location, verification
- 📊 **Engagement Stats** — Followers, following, pin count, board count
- 🏢 **Business Data** — Website URL, partner status, merchant verification
- 📧 **Contact Discovery** — Email addresses when available
- ✅ **Verification Status** — Is verified, is partner, is verified merchant
- 🎯 **Quick Lookup Mode** — Get profile data only, skip pins and boards
- 🚀 **No Login Required** — Works without cookies for public profiles
- 🌐 **Proxy Support** — Built-in Apify Proxy integration

### 💡 Use Cases

| Use Case | Description |
|----------|-------------|
| **Influencer Marketing** | Find and vet potential influencers by follower count |
| **Lead Generation** | Build lists of profiles with website URLs and contact emails |
| **Competitor Analysis** | Monitor competitor profile growth and engagement |
| **Social Research** | Study user demographics and behavior patterns |
| **Outreach Campaigns** | Discover contact information for business partnerships |
| **Market Research** | Analyze profile statistics across niches |

### 💰 Pricing

**Pay per use** — $4 per 1,000 profiles

No subscriptions, no commitments, no hidden fees. Control your spending with the Maximum Cost Per Run option.

### 🔗 Other Pinterest Scrapers

Need different Pinterest data? We offer specialized tools for every use case:

| Actor | Pricing | Link |
|-------|---------|------|
| 📎 **Pinterest Pin Scraper** | $4 per 1,000 pins | [View Actor](https://apify.com/devcake/pinterest-pin-scraping) |
| 🔍 **Pinterest Search Scraper** | $4 per 1,000 results | [View Actor](https://apify.com/devcake/pinterest-search-scraper) |
| 📁 **Pinterest Board Scraper** | $4 per 1,000 pins | [View Actor](https://apify.com/devcake/pinterest-board-scraper) |
| 🎯 **All-in-One Pinterest Scraper** | $25/month unlimited | [View Actor](https://apify.com/devcake/pinterest-data-scraper) |

### 📝 Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `startUrls` | array | ✅ Yes | Pinterest profile URLs |
| `proxyConfig` | object | No | Proxy configuration (recommended) |
| `maxTotalChargeUsd` | number | No | Spending limit per run (default: $10) |

#### Supported URL Formats

```
https://www.pinterest.com/username/
https://pinterest.com/username/
```

### 📤 Output

Each profile includes 50+ data fields:

#### Basic Data

- `id`, `url`, `username`, `full_name`, `first_name`, `last_name`
- `bio`, `location`
- `avatar_url`, `image_medium_url`, `profile_cover`

#### Stats

- `follower_count`, `following_count`, `pin_count`, `board_count`

#### Verification

- `verified`, `is_partner`, `is_verified_merchant`, `domain_verified`

#### Business

- `is_gco_account`, `business_account`, `catalog_available`

#### Contact

- `website_url`, `instagram_data`, `contact_email`

### 🎯 Example

```json
{
  "startUrls": [
    {"url": "https://www.pinterest.com/nike/"},
    {"url": "https://www.pinterest.com/ikea/"}
  ],
  "maxTotalChargeUsd": 10
}
```

```json
{
  "id": "516084575957422884",
  "url": "https://pinterest.com/nike/",
  "username": "nike",
  "full_name": "Nike",
  "bio": "Inspired by athletes*, styled by you.",
  "location": null,
  "avatar_url": "https://i.pinimg.com/75x75_RS/...",
  "image_medium_url": "https://i.pinimg.com/400x400_RS/...",
  "follower_count": 1093874,
  "following_count": 3,
  "pin_count": 0,
  "board_count": 5,
  "verified": false,
  "is_partner": true,
  "is_verified_merchant": true,
  "domain_verified": true,
  "business_account": true,
  "website_url": "http://www.nike.com",
  "contact_email": null
}
```

### 🚀 Getting Started

1. **Add profile URLs** — Enter Pinterest profile URLs
2. **Set cost limit** — Optional spending cap per run
3. **Enable proxy** (recommended) — Use Apify Proxy for reliability
4. **Run** — Get profile data in JSON format

### 💡 Tips

- **Influencer Discovery**: Filter by `follower_count` to find creators by audience size
- **Business Verification**: Check `is_verified_merchant` and `domain_verified` for trusted accounts
- **Lead Generation**: Use `website_url` and `contact_email` for outreach campaigns
- **Partner Analysis**: `is_partner` indicates official Pinterest partners
- **Competitor Research**: Track `pin_count` and `board_count` over time

***

### ❓ FAQ

**Q: Do I need Pinterest login credentials?**
A: No! Public profiles can be accessed without authentication.

**Q: Can I scrape private profiles?**
A: Only public profiles are accessible. Private profiles require authentication.

**Q: How many profiles can I scrape per run?**
A: Unlimited. Control spending with `maxTotalChargeUsd` to set your budget.

**Q: Is email always available?**
A: No. Contact email is only available when users have made it public.

**Q: What's the difference between verified and is_partner?**
A: `verified` means the account has a blue checkmark. `is_partner` means they're a Pinterest content partner.

**Q: Can I get profile image URLs?**
A: Yes! Multiple sizes are provided: `avatar_url` (75x75), `image_medium_url` (400x400), and `profile_cover`.

***

### ⚠️ Troubleshooting

**Profile not found?**

- Verify the URL format (pinterest.com/username/)
- Check if the profile exists and is public
- Try accessing the profile in a browser first

**Missing data fields?**

- Some fields like `contact_email` are optional and may not be available
- Business accounts have more data than personal accounts
- This is a Pinterest limitation, not a scraper issue

**Rate limiting?**

- Enable Apify Proxy in the input (recommended)
- Add delays between requests if scraping many profiles
- Set a `maxTotalChargeUsd` limit for controlled spending

**Need help?** Contact us through Apify Console or check our documentation.

# Actor input Schema

## `startUrls` (type: `array`):

Add Pinterest profile URLs to scrape (e.g., https://www.pinterest.com/username/)

## `proxyConfig` (type: `object`):

Configure proxy rotation. Using SHARED_PROXY is recommended for Pinterest.

## `maxTotalChargeUsd` (type: `number`):

Set a spending limit for this run. The actor will stop when this amount is reached.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.pinterest.com/nike/"
    }
  ],
  "maxTotalChargeUsd": 10
}
```

# Actor output Schema

## `allResults` (type: `string`):

Complete dataset with all profile data

## `overview` (type: `string`):

Pinterest user profiles optimized for influencer marketing and lead generation - verification status, follower counts, contact emails, business data

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.pinterest.com/nike/"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("devcake/pinterest-profile-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://www.pinterest.com/nike/" }] }

# Run the Actor and wait for it to finish
run = client.actor("devcake/pinterest-profile-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.pinterest.com/nike/"
    }
  ]
}' |
apify call devcake/pinterest-profile-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,devcake/pinterest-profile-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/edeEZAPs2wsWyurgl/builds/JZALPr1bNs7BeAd1C/openapi.json
