# Pinterest Data Extractor — Pins, Boards, Profiles, Keywords (`khadinakbar/pinterest-data-extractor`) Actor

Extract Pinterest data from any URL or search term. Auto-detects pins, boards, profiles, and keyword trends. Returns typed records with image/video download URLs, creator stats, and board metadata. No login. PAY\_PER\_EVENT. MCP/API-ready.

- **URL**: https://apify.com/khadinakbar/pinterest-data-extractor.md
- **Developed by:** [Khadin Akbar](https://apify.com/khadinakbar) (community)
- **Categories:** Social media, MCP servers, SEO tools
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 pin extracteds

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Pinterest Data Extractor — Pins, Boards, Profiles & Keywords

Extract **structured Pinterest data from any URL or search term** in one actor. Paste a pin, board, or profile URL — or a keyword — and the extractor auto-detects the input and returns clean, typed JSON records. Built for marketers, SEO and content researchers, e-commerce teams, and AI agents.

No login. No cookies. Residential-proxy backed. **MCP-ready.**

### What it does

One input → any Pinterest data. The actor classifies each input automatically and returns **typed records** discriminated by a `dataType` field:

| `dataType` | From | Key fields |
|---|---|---|
| `pin` | searches, boards, profiles, pin URLs | title, description, **download\_image\_url**, **download\_video\_url**, save\_count, hashtags, link, price, board, creator |
| `board` | board URLs | name, description, pin\_count, follower\_count, section\_count, cover image, owner |
| `profile` | profile URLs | username, full\_name, bio, follower/following/pin/board counts, verified, website |
| `keyword` | search terms | query, related\_queries, top\_pin\_ids, result\_count |

Every pin record includes ready-to-use **image and video download URLs**, so this doubles as a Pinterest image/video downloader.

### When to use it

- **Content & SEO research** — find top-performing pins, related keywords, and trends for a niche.
- **Competitor analysis** — pull a brand's profile stats, boards, and pins.
- **Image / video harvesting** — collect downloadable media URLs in bulk.
- **Creator discovery** — extract profile metrics (followers, pins, verification).
- **AI agents** — a single tool call: URL or keyword in, structured JSON out.

> Need **pin-only** bulk scraping at the lowest price? Use the companion [Pinterest Pins, Boards & Profiles Scraper](https://apify.com/khadinakbar/pinterest-scraper). This Data Extractor adds typed board/profile/keyword records, auto-detection, and media-download URLs.

### Pricing (Pay-Per-Event)

| Event | Price |
|---|---|
| Actor start | $0.00005 |
| **Pin extracted** | **$0.004** per pin record |
| **Entity extracted** | **$0.01** per board / profile / keyword record |

You pay only for records returned. A 50-pin search ≈ $0.20. A profile or board record ≈ $0.01. Pay-Per-Usage (compute + proxy) is also available — pick at run time.

### Input

| Field | Type | Description |
|---|---|---|
| `startUrls` | string\[] | Pinterest pin / board / profile URLs — type auto-detected. |
| `searchTerms` | string\[] | Keywords to search; each returns pins + a keyword record. |
| `resultsType` | enum | `auto` (default), `pins`, `boards`, `profiles`, `keywords`. |
| `maxItems` | integer | Max records per input (default 50, range 1–10000). |
| `includeRelatedPins` | boolean | For pin URLs, also return "More like this" pins. |
| `proxyConfiguration` | object | Defaults to Apify residential proxies. |

#### Example input

```json
{
  "searchTerms": ["home office decor"],
  "startUrls": [
    "https://www.pinterest.com/nike/",
    "https://www.pinterest.com/nike/nike-running/",
    "https://www.pinterest.com/pin/241294492639523463/"
  ],
  "resultsType": "auto",
  "maxItems": 50
}
```

This returns: pin records for the search, a `profile` record for `nike`, a `board` record for `nike-running` (plus its pins), and a single `pin` record — all in one dataset, each tagged by `dataType`.

### Output sample

```json
{
  "dataType": "pin",
  "pin_id": "241294492639523463",
  "title": "Modern Minimalist Home Office",
  "description": "Clean white desk setup with natural wood accents.",
  "pin_url": "https://www.pinterest.com/pin/241294492639523463/",
  "image_url": "https://i.pinimg.com/originals/ab/cd/ef/abcdef.jpg",
  "download_image_url": "https://i.pinimg.com/originals/ab/cd/ef/abcdef.jpg",
  "is_video": false,
  "save_count": 4821,
  "hashtags": ["homeoffice", "decor"],
  "link": "https://example.com/office-ideas",
  "source_domain": "example.com",
  "board_name": "Home Inspiration",
  "pinner_username": "designerjane",
  "scraped_at": "2026-06-14T10:30:00.000Z"
}
```

```json
{
  "dataType": "profile",
  "username": "nike",
  "full_name": "Nike",
  "follower_count": 1200000,
  "pin_count": 2450,
  "board_count": 18,
  "is_verified": true,
  "website": "https://nike.com",
  "scraped_at": "2026-06-14T10:30:00.000Z"
}
```

### How auto-detection works

| URL shape | Detected as |
|---|---|
| `/pin/<id>/` | pin |
| `/<username>/` | profile |
| `/<username>/<board>/` | board |
| `/search/pins/?q=...` | search |

Set `resultsType` to force a single output type (e.g. `profiles` to keep only profile records).

### Use with AI agents (MCP)

This actor is exposed via the Apify MCP server as `apify--pinterest-data-extractor`. Tool description, input descriptions, and output are written for LLM consumption — narrow input, structured output, predictable per-record pricing. Connect at `https://mcp.apify.com`.

### FAQ

**Do I need a Pinterest login or cookies?** No. The actor extracts public data without authentication.

**Why residential proxies?** Pinterest blocks datacenter IPs. Residential proxies (default) keep the success rate high.

**Can it download images and videos?** Yes — every pin record includes `download_image_url` and `download_video_url`.

**What if a board is anti-bot blocked?** Board inputs fall back to a server-side provider for pins, so board extraction stays reliable.

**How is this different from the other Pinterest scraper?** The companion actor returns pin-only records at a lower price. This one adds typed board/profile/keyword records, auto-detection, and media-download URLs.

### Related actors

- [Pinterest Pins, Boards & Profiles Scraper](https://apify.com/khadinakbar/pinterest-scraper) — pin-focused, lowest price.
- [Instagram Profile Scraper](https://apify.com/khadinakbar/instagram-profile-scraper), [TikTok Profile Scraper](https://apify.com/khadinakbar/tiktok-profile-scraper) — same structured-social cluster.

### Legal

This actor extracts only publicly available Pinterest data. You are responsible for complying with Pinterest's Terms of Service, applicable laws (including GDPR/CCPA), and for using scraped data lawfully. Do not collect personal data without a lawful basis. This tool is provided for legitimate research, analytics, and archival use.

# Actor input Schema

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

Use this when you have specific Pinterest URLs to extract — pins, boards, or profiles. The actor auto-detects each URL's type (e.g. 'https://www.pinterest.com/pin/241294492639523463/', 'https://www.pinterest.com/nike/', or a board URL 'https://www.pinterest.com/nike/shoes/'). Leave empty if you only use Search terms. NOT for keyword searches — put keywords in 'searchTerms'.

## `searchTerms` (type: `array`):

Use this when you want to search Pinterest by keyword, topic, or niche (e.g. 'home office decor'). Each term returns matching pins, plus one keyword-discovery record with related queries. Leave empty if you only use Pinterest URLs. NOT a URL — paste links into 'startUrls' instead.

## `resultsType` (type: `string`):

Which record types to return. 'auto' (default) returns the natural type for each input — pins for searches, the pin/board/profile for URLs, plus keyword records for searches. Set to a specific type to force/filter output to only pins, boards, profiles, or keywords. Use 'auto' unless you need exactly one type.

## `maxItems` (type: `integer`):

Maximum records to return per input (per search term or per URL). For example 50 returns up to 50 pins for each search term. Defaults to 50; valid range 1–10000. Higher values cost more (charged per record) and take longer.

## `includeRelatedPins` (type: `boolean`):

When extracting a single pin URL, also return Pinterest's 'More like this' related pins. Off by default to keep single-pin runs cheap and focused. Only affects pin URLs — ignored for boards, profiles, and searches. Turning this on increases the number of charged pin records.

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

Proxy settings. Pinterest blocks datacenter IPs, so residential proxies are strongly recommended and used by default. Leave as-is unless you have a specific proxy requirement. Requires Apify Proxy access on your account.

## Actor input object example

```json
{
  "startUrls": [],
  "searchTerms": [
    "home office decor"
  ],
  "resultsType": "auto",
  "maxItems": 50,
  "includeRelatedPins": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All extracted Pinterest records as structured JSON. Export as JSON, CSV, or Excel.

# 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": [],
    "searchTerms": [
        "home office decor"
    ],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("khadinakbar/pinterest-data-extractor").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": [],
    "searchTerms": ["home office decor"],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("khadinakbar/pinterest-data-extractor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": [],
  "searchTerms": [
    "home office decor"
  ],
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call khadinakbar/pinterest-data-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=khadinakbar/pinterest-data-extractor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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