# Pinterest Media Downloader (`crawlerbros/pinterest-media-downloader`) Actor

Download images and videos from Pinterest pins in bulk. Provide Pinterest pin URLs or search keywords to save all media files directly to your storage with download links.

- **URL**: https://apify.com/crawlerbros/pinterest-media-downloader.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Social media, Videos, Automation
- **Stats:** 35 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 Media Downloader

Download images and videos from Pinterest pins in bulk. Provide Pinterest pin URLs or search keywords to save all media files directly to your storage with download links.

### What does Pinterest Media Downloader do?

Pinterest Media Downloader lets you bulk download images and videos from Pinterest. It supports two input modes:

- **Pinterest URLs** - Provide direct pin URLs to download specific images or videos
- **Search Terms** - Enter keywords to search Pinterest and download media from all matching pins

All downloaded media files (images and videos) are stored in the Apify Key-Value Store. Each file gets a direct download URL in the dataset output, so you can easily access or integrate them into your workflow.

### Input

| Field | Type | Description | Default |
|-------|------|-------------|---------|
| `pinterestUrls` | Array of strings | List of Pinterest pin URLs to download media from | - |
| `searchTerms` | Array of strings | Keywords to search on Pinterest and download media | - |
| `maxItems` | Integer | Maximum number of media items to download per search term (0 = unlimited) | 50 |
| `proxy` | Object | Optional proxy configuration | - |

At least one of `pinterestUrls` or `searchTerms` must be provided.

#### Input example

```json
{
    "pinterestUrls": [
        "https://www.pinterest.com/pin/123456789/",
        "https://www.pinterest.com/pin/987654321/"
    ],
    "searchTerms": [
        "aesthetic wallpapers",
        "cute cats"
    ],
    "maxItems": 50
}
```

### Output

Each downloaded media item produces a dataset entry with the following fields:

| Field | Type | Description |
|-------|------|-------------|
| `pinterest_url` | String | Original Pinterest pin URL |
| `media_type` | String | Type of media - `image` or `video` |
| `saved_as` | String | Filename in the Key-Value Store |
| `download_url` | String | Direct URL to download the media file from the API |

#### Output example

```json
{
    "pinterest_url": "https://www.pinterest.com/pin/123456789/",
    "media_type": "image",
    "saved_as": "123456789.jpg",
    "download_url": "https://api.apify.com/v2/key-value-stores/<store-id>/records/123456789.jpg"
}
```

```json
{
    "pinterest_url": "https://www.pinterest.com/pin/987654321/",
    "media_type": "video",
    "saved_as": "987654321.mp4",
    "download_url": "https://api.apify.com/v2/key-value-stores/<store-id>/records/987654321.mp4"
}
```

### How to download Pinterest images

1. Go to [Pinterest Media Downloader](https://apify.com/valuable_harmonium/pinterest-media-downloader) on Apify
2. Add Pinterest pin URLs or enter search terms in the input
3. Click **Start** to run the actor
4. Once finished, download your media files from the **Key-Value Store** tab or use the direct download links provided in the dataset

### How to download Pinterest videos

The actor automatically detects whether a Pinterest pin contains a video or an image. Videos are downloaded in MP4 format at the highest available quality (up to 720p). Images are saved in their original format (typically JPG or PNG). Simply provide the pin URL and the actor handles the rest.

### How to bulk download Pinterest media by keyword

Enter one or more keywords in the `searchTerms` input field. The actor searches Pinterest for matching pins and downloads all images and videos from the results. Use `maxItems` to control how many items are downloaded per search term.

### Supported Pinterest URL formats

The actor supports standard Pinterest pin URLs including:

- `https://www.pinterest.com/pin/123456789/`
- `https://pinterest.com/pin/123456789/`
- Country-specific domains like `https://uk.pinterest.com/pin/123456789/`, `https://de.pinterest.com/pin/123456789/`

### Proxy configuration

This actor works without a proxy from datacenter IPs. If you experience rate limiting, you can configure Apify Proxy or custom proxies in the input settings.

### Integrations

Pinterest Media Downloader can be connected with other apps and services using Apify integrations. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and many more. You can also use webhooks to trigger actions when the actor finishes running.

### FAQ

#### Can I download both images and videos?

Yes, the actor automatically detects the media type for each pin and downloads both images and videos. Videos are saved as MP4 files and images in their original format (JPG, PNG).

#### What image quality is downloaded?

The actor downloads the highest resolution available for each pin, typically the original upload resolution.

#### What video quality is downloaded?

Videos are downloaded at the best available direct quality, typically 720p MP4. The actor prioritizes downloadable MP4 files over streaming formats.

#### How many Pinterest images can I download at once?

You can download as many images as needed. Use the `maxItems` setting to control the number of downloads per search term. Set it to 0 for unlimited downloads.

#### Where are the downloaded files stored?

All media files are stored in the Apify Key-Value Store associated with the actor run. Each file gets a direct download URL accessible via the Apify API or Console. Files are named using the Pinterest pin ID (e.g., `123456789.jpg` or `987654321.mp4`).

#### Can I search for specific types of content?

Yes, use the `searchTerms` input to search for any keyword on Pinterest. You can provide multiple search terms to download media from different searches in a single run.

#### Do I need a Pinterest account?

No, this actor works without any Pinterest account or login credentials. It only accesses publicly available content.

#### Is there a limit on file size?

There is no specific file size limit. The actor downloads the full original media file for each pin, whether it's a small image or a large video.

#### Can I use this actor with the Apify API?

Yes, you can start runs, retrieve datasets, and download individual media files from the Key-Value Store using the Apify API. Each dataset entry includes a `download_url` field for direct API access to the media file.

#### What happens with NSFW content?

Pinterest enforces SafeSearch by default for unauthenticated access. Explicit search terms will return no results as Pinterest filters this content at the platform level.

# Actor input Schema

## `pinterestUrls` (type: `array`):

List of Pinterest pin URLs to download media from (e.g. https://www.pinterest.com/pin/123456789/).

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

List of keywords to search on Pinterest. All media (images and videos) from search results will be downloaded.

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

Maximum number of media items to download per search term. Set to 0 for unlimited.

## `proxy` (type: `object`):

Optional proxy settings. Not required — works without proxy from datacenter IPs.

## Actor input object example

```json
{
  "pinterestUrls": [
    "https://www.pinterest.com/pin/176625616640104896/"
  ],
  "searchTerms": [],
  "maxItems": 50
}
```

# Actor output Schema

## `mediaDataset` (type: `string`):

Dataset containing metadata for all downloaded Pinterest media files

## `mediaFiles` (type: `string`):

Key-Value Store containing downloaded images and videos

# 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 = {
    "pinterestUrls": [
        "https://www.pinterest.com/pin/176625616640104896/"
    ],
    "searchTerms": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/pinterest-media-downloader").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 = {
    "pinterestUrls": ["https://www.pinterest.com/pin/176625616640104896/"],
    "searchTerms": [],
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/pinterest-media-downloader").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 '{
  "pinterestUrls": [
    "https://www.pinterest.com/pin/176625616640104896/"
  ],
  "searchTerms": []
}' |
apify call crawlerbros/pinterest-media-downloader --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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