# Pinterest Scraper - Search, Pins & Profiles (`swerve/pinterest-scraper`) Actor

Scrape Pinterest without login: search pins by keyword, pull any pin full details (image, outbound link, saves, comments), and read profile stats (followers, verified, website). No API key. Pay only for the results you get.

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

## Pricing

from $5.00 / 1,000 results

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 Scraper - Search, Pins & Profiles

Scrape **Pinterest** in one run: search pins by keyword, pull any pin's full details, and read profile stats. **No login and no API key.** One tool instead of the usual three.

### What you can do with it

- Search a keyword and export every matching pin (title, image, outbound link, domain, saves)
- Find products and the sites they link to for a niche (e.g. "home decor", "wedding invitations")
- Pull a pin's full detail: save count, comments, board, and the person who pinned it
- Read profile stats for creators and brands (followers, pin count, verified, website)

### Input

| Field | What it does | Example |
|-------|--------------|---------|
| **Search terms** | Find pins by keyword. | `home decor`, `tattoo ideas` |
| **Pin or profile URLs** | A pin URL returns that pin's full detail; a profile URL returns the account's stats. | `https://www.pinterest.com/pin/225039312627881892/`, `https://www.pinterest.com/nike/` |
| **Pins per search term** | How many pins to collect per term. | `100` |
| **Full pin details for search results** | Add save and comment counts to each search pin (slower). | off |

### Output

Each row has a `type` of `pin` or `profile`.

Pin:

```json
{
  "type": "pin",
  "pinId": "225039312627881892",
  "url": "https://www.pinterest.com/pin/225039312627881892/",
  "title": "Cozy Reading Nook",
  "description": "...",
  "link": "https://sixpenny.com/products/neva-round-daybed",
  "domain": "sixpenny.com",
  "imageUrl": "https://i.pinimg.com/originals/...jpg",
  "isVideo": false,
  "saveCount": 34798,
  "commentCount": 0,
  "dominantColor": "#b8a99a",
  "pinnerUsername": "erinturnage",
  "boardName": "Reading Room Inspo",
  "scrapedAt": "2026-07-13T10:00:00.000Z"
}
```

Profile:

```json
{
  "type": "profile",
  "username": "nike",
  "url": "https://www.pinterest.com/nike/",
  "fullName": "Nike",
  "followerCount": 1090485,
  "boardCount": 10,
  "verified": true,
  "websiteUrl": "http://www.nike.com",
  "imageUrl": "https://i.pinimg.com/...jpg",
  "scrapedAt": "2026-07-13T10:00:00.000Z"
}
```

### How it works

Pinterest's website loads its data from an internal JSON API. This actor calls that same API directly, so it is fast and needs no browser and no login. Search results paginate automatically to the count you ask for.

### Limits

- Public data only. Search returns results from Pinterest's logged-out index; some non-English queries return fewer or no results there.
- Search pins carry the core fields; turn on "Full pin details" to add save and comment counts to each one.

### Export formats

Results download as JSON, CSV, Excel or XML, or pull them straight from the Apify API into your own app, spreadsheet or database.

### Frequently asked questions

**Do I need a Pinterest API key or login?** No. This Pinterest scraper needs no API key and no account. It reads Pinterest's public data directly.

**Can I search Pinterest and export the pins?** Yes. Give it a keyword and it returns matching pins with title, image, the website each pin links to, board and pinner, paginated to the count you ask for.

**Can I download Pinterest images?** Yes. Every pin row includes the full-resolution image URL, so you can collect or download images for a keyword, board or profile.

**Can I get a pin's outbound link and save count?** Yes. Paste a pin URL for full detail, or turn on "Full pin details" for search results, to get the destination link, saves and comments.

**Can I scrape a Pinterest profile?** Yes. Paste a profile URL or username to get followers, board count, pin count, website and verified status.

**Is scraping Pinterest legal?** This tool collects only public data. You are responsible for how you use it. Review Pinterest's terms and your local laws before large-scale use.

### Pricing

Pay per result. You only pay for the pins and profiles you actually get.

# Actor input Schema

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

Find pins by keyword. Each term is searched and its pins are returned. Examples: home decor, healthy recipes, tattoo ideas.

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

Paste Pinterest pin URLs or profile URLs (or a bare username). A pin URL returns that pin's full detail; a profile URL returns the account's stats. Examples: https://www.pinterest.com/pin/225039312627881892/ , https://www.pinterest.com/nike/ , nike

## `resultsPerSearch` (type: `integer`):

How many pins to collect for each search term. Default 100.

## `enrichPins` (type: `boolean`):

Fetch each search pin's full detail to add save and comment counts. More complete, but slower (one extra request per pin). Off by default.

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

Optional overall cap on rows returned. Leave blank for everything your inputs point to.

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

Optional. Pinterest answers without a proxy; add one only for very large runs to avoid rate limits.

## Actor input object example

```json
{
  "searchTerms": [
    "home decor"
  ],
  "startUrls": [],
  "resultsPerSearch": 100,
  "enrichPins": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "searchTerms": [
        "home decor"
    ],
    "startUrls": [],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("swerve/pinterest-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 = {
    "searchTerms": ["home decor"],
    "startUrls": [],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("swerve/pinterest-scraper").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 '{
  "searchTerms": [
    "home decor"
  ],
  "startUrls": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call swerve/pinterest-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/X3w8Ng4am8DHfe0q3/builds/Q84RPy5BT8DksPd7y/openapi.json
