# Pinterest Public Profile Follower Metrics Scraper (`w3crawler/pinterest-followers-scraper`) Actor

Collect one source-backed public Pinterest profile metrics record, including the follower count and related profile fields. This Actor does not collect follower identities or a paginated follower relationship list and accepts no credentials.

- **URL**: https://apify.com/w3crawler/pinterest-followers-scraper.md
- **Developed by:** [w3crawler](https://apify.com/w3crawler) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 public profile metrics records

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

### What does Pinterest Public Profile Follower Metrics Scraper do?

Pinterest Public Profile Follower Metrics Scraper reads the public profile page at [Pinterest](https://www.pinterest.com/) and returns **one source-backed profile metrics record** for the requested username. It includes the public follower count when Pinterest exposes it, together with useful profile metadata and provenance.

This Actor does **not** collect follower identities, follower profile URLs, or a paginated follower relationship list. A public profile can be visible while the relationship list requires sign-in, so the Actor reports that boundary instead of inventing rows or treating an unavailable list as zero followers.

The Actor accepts no credentials, passwords, cookies, private profile data, login automation, CAPTCHA solving, stealth, or fingerprint evasion. Proxy settings change transport only; they do not bypass authentication or other access controls.

### Why use Pinterest Public Profile Follower Metrics Scraper?

Use it when you need a small, auditable snapshot of a public Pinterest profile for research, monitoring, or enrichment. Each successful run produces at most one normal row tied to the requested username and canonical profile URL. If Pinterest does not expose a stable public profile object, the Actor emits a bounded diagnostic and writes the reason to `OUTPUT_SUMMARY`.

For a true follower relationship list, use an explicitly authorized Pinterest API/OAuth integration with the required account, app approval, access token, and `user_accounts:read` permission. This Actor intentionally does not implement that credentialed path.

### What data can Pinterest Public Profile Follower Metrics Scraper extract?

| Field | Type | Description |
| --- | --- | --- |
| `id` | string | Stable Pinterest profile ID from public profile state |
| `username` | string | Requested public username |
| `fullName` | string | Public profile name, when available |
| `profileUrl` | string | Canonical public profile URL |
| `followerCount` | number | Public follower count, when exposed |
| `followingCount` | number | Public following count, when exposed |
| `pinCount` / `boardCount` | number | Public profile totals, when exposed |
| `isVerified` / `isVerifiedMerchant` | boolean | Public verification flags, when exposed |
| `about`, `website`, `domainUrl`, `country`, `locale` | string | Public profile metadata |
| `sourceUrl`, `scrapedAt` | string | Provenance and ISO 8601 collection time |

### How to scrape Pinterest

1. Open the Actor in Apify Console.
2. Enter one Pinterest username without `@`, such as `nasa`.
3. Leave the default direct connection in place, or configure `proxyConfiguration` when your run needs it.
4. Start the run and inspect the singleton dataset row and `OUTPUT_SUMMARY`.

### How much will it cost to scrape Pinterest?

The run visits one public profile page and normally writes one dataset item. Cost depends on Apify compute, browser time, retries, storage, and any proxy traffic or plan-specific dataset charges. There is no relationship-list pagination, large result array, or detail-enrichment fan-out in this Actor, so input size does not scale the run into hundreds of profile rows.

### Input

See the input tab for the complete configuration. Supported fields are:

| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `username` | string | none | Required public Pinterest username; one leading `@` is removed. |
| `proxyConfiguration` | object | direct | Optional Apify or custom proxy configuration. It changes transport only. |
| `fixtureFile` | string | none | Repository-relative JSON fixture for deterministic local validation; not needed for a normal Cloud run. |

There is no `maxItems`, page-count, sorting, filtering, login, cookie, or relationship-list input. The Actor is intentionally a single-profile metrics scraper.

#### Minimal public run

```json
{
  "username": "nasa"
}
```

#### Optional proxy run

```json
{
  "username": "nasa",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

#### Deterministic local fixture

```json
{
  "username": "skyreader",
  "fixtureFile": "fixtures/sample.json"
}
```

### Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

A normal run returns one `pinterest_profile_metrics` record. The requested `metricFocus` is `followers`; the same row may also contain the public following count and other profile fields.

```json
{
  "recordType": "pinterest_profile_metrics",
  "entityType": "pinterest_profile",
  "id": "142567281862381039",
  "type": "profile",
  "metricFocus": "followers",
  "username": "nasa",
  "fullName": "NASA",
  "profileUrl": "https://www.pinterest.com/nasa/",
  "followerCount": 556450,
  "followingCount": 5,
  "isVerified": true,
  "sourceUrl": "https://www.pinterest.com/nasa/",
  "scrapedAt": "2026-09-10T00:00:00.000Z"
}
```

If no stable public profile object is available, the Actor emits a diagnostic instead of a fake normal row.

```json
{
  "recordType": "run_diagnostic",
  "url": "https://www.pinterest.com/example/",
  "error": "Pinterest exposed no public profile metrics for this profile.",
  "errorCode": "NO_DATA",
  "scrapedAt": "2026-09-10T00:00:00.000Z"
}
```

`OUTPUT_SUMMARY` records `normalRecords`, `diagnosticRecords`, `profileCollected`, `metricFocus`, `accessStatus`, `proxyUsed`, `source`, and the target username. A fixture is deterministic test data and does not qualify as live public access.

### Tips and advanced options

Use the canonical username rather than a relationship URL. The Actor reads the public profile route only; it does not paginate, sort, filter, or expand a follower list. `PUBLIC_PROFILE` means that Pinterest supplied a stable public profile object. `AUTH_REQUIRED`, `BLOCKED`, `NOT_FOUND`, and `NO_DATA` are explicit access outcomes, not empty-list success. Direct access is the recommended default when it works.

### FAQ, support, and responsible use

**Why did I receive a diagnostic?** Pinterest may redirect the request, challenge the transport, hide the profile, or omit a stable public user object. Check the run log and `OUTPUT_SUMMARY`; do not interpret the diagnostic as zero followers.

**How do I request a feature or report a bug?** Use the Actor's Issues tab or API tab and include the run ID, input shape, access status, and a short summary. Do not include credentials or cookies.

This Actor extracts only information Pinterest makes public and is not affiliated with Pinterest. Use results for a legitimate purpose, respect Pinterest terms, robots guidance, rate limits, privacy law, and other applicable law. Public profile data can still be personal data; obtain appropriate advice when required.

# Changelog

This Actor's version history is a separate document: https://apify.com/w3crawler/pinterest-followers-scraper/changelog.md

# Actor input Schema

## `username` (type: `string`):

Public Pinterest username whose single profile metrics record to inspect, without @. This is not a request for follower identities.

## `proxyConfiguration` (type: `object`):

Optional Apify or custom proxy settings. A proxy changes transport only and does not bypass authentication or other access controls.

## `fixtureFile` (type: `string`):

Optional repository-relative JSON file containing public profile data for deterministic local validation; it still produces profile metrics only, never relationship identities.

## Actor input object example

```json
{
  "username": "nasa",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `keyValueStore` (type: `string`):

No description

# 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 = {
    "username": "nasa"
};

// Run the Actor and wait for it to finish
const run = await client.actor("w3crawler/pinterest-followers-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 = { "username": "nasa" }

# Run the Actor and wait for it to finish
run = client.actor("w3crawler/pinterest-followers-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 '{
  "username": "nasa"
}' |
apify call w3crawler/pinterest-followers-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,w3crawler/pinterest-followers-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/mYbWhFL9gR9eJlbCZ/builds/VtJVdjcNqJn0dC9sB/openapi.json
