# Pinterest Keyword Research: Top Pins, Saves & Websites (`precious_bathmat/pinterest-keyword-research`) Actor

See who wins any Pinterest search: the websites and creators behind the top pins, their save counts, how fresh they are, related searches and Pinterest's own topic tags, plus every pin as a row. No login, no API key.

- **URL**: https://apify.com/precious\_bathmat/pinterest-keyword-research.md
- **Developed by:** [Mariam Ahmed](https://apify.com/precious_bathmat) (community)
- **Categories:** Social media, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 keyword reports

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 Keyword Research: Top Pins, Saves & Websites

**See who wins any Pinterest search.** Enter a keyword and get the websites and creators behind the top pins, how many times those pins were saved, how fresh they are, what Pinterest suggests next, and the topics Pinterest itself tags them with. Every pin comes back as a row too.

No login, no API key, no proxy.

### What does this do?

Most Pinterest scrapers hand you a pile of pins. If you blog, sell or manage a brand on Pinterest, you need the answers behind the pile: **who ranks for this keyword, do their pins actually get saved, and can a new account still get in?**

This Actor searches Pinterest the way a visitor does, opens every pin for its save count, and rolls the results up into one report per keyword.

```mermaid
flowchart LR
    A[Your keywords] --> B[Pinterest search,<br/>up to 500 pins each]
    B --> C[Each pin opened<br/>for its save count]
    C --> D[One report per keyword:<br/>websites, creators, saves,<br/>freshness, related searches]
    C --> E[Every pin as a row]
```

### Who is it for?

| You are | You use it to |
|---|---|
| **Bloggers and content creators** | Find keywords where small accounts and fresh pins still rank, and see which sites you are up against |
| **Pinterest marketers and agencies** | Report who owns a client's keywords, and which competitor pins get saved |
| **E-commerce and Etsy sellers** | See whether shoppers on a keyword land on Amazon, Etsy or independent stores |
| **Affiliate marketers** | Measure how many ranking pins already use affiliate links, and which ones get saved |
| **SEO and content teams** | Mine related searches, refinements and title words for article and pin ideas |

### What data do you get?

One row per keyword:

| Field | Meaning |
|---|---|
| `topWebsite`, `topWebsiteSharePercent`, `websiteCount` | The site with the most ranking pins, its share of all pins read, and how many sites appear |
| `mostSavedWebsite`, `mostSavedWebsiteSaves` | The site whose pins were saved the most, which is often **not** the one with the most pins |
| `topWebsites` | The top 10 sites with pins, share and total saves |
| `pinsWithoutWebsitePercent` | Pins that link nowhere (uploads and collages). High means the keyword is inspiration, not traffic |
| `affiliateLinkPercent` | Pins that link through an affiliate or tracking link, including tagged Amazon links |
| `topCreators`, `creatorCount` | Accounts with the most ranking pins, with follower counts and profile links |
| `smallCreatorPercent`, `medianCreatorFollowers` | Share of ranking pins from accounts under 1,000 followers. High means small accounts can rank |
| `totalSaves`, `medianSaves`, `topPins` | How much the ranking pins are saved, and the 10 most saved pins |
| `medianPinAgeDays`, `freshPinPercent`, `newestPinAt` | How old the ranking pins are, and the share under 90 days old. High freshness means new pins get in |
| `imagePinPercent`, `ideaPinPercent`, `videoPinPercent` | Which pin formats rank |
| `pinterestTopics` | The topic tags Pinterest itself attached to the ranking pins |
| `titleWords` | Words the ranking pin titles use most, apart from your keyword |
| `relatedSearches`, `refinements` | What Pinterest suggests as people type, and the refinement chips it shows above the results |

Plus, with **Also return every pin as a row** on (the default), a second table with each pin's rank, title, description, link, website, saves, reactions, format, date, creator, board, image and topic tags.

### Example: six keywords, September 2026

200 pins per keyword, read from Apify's servers on 19 September 2026:

| Keyword | Top website (share of pins) | Most saved website | Pins with no link | From small accounts | Median saves | Median pin age |
|---|---|---|---|---|---|---|
| christmas crafts | playpartygame.com (8.5%) | thebestideasforkids.com (514,073 saves) | 5.5% | 72.5% | 2,987 | 66 days |
| wedding hairstyles | loveyouwedding.com (10.5%) | instagram.com (148,657 saves) | 40.5% | 91.5% | 2,030 | 53 days |
| nail art | etsy.com (12.5%) | instagram.com (95,005 saves) | 53.5% | 82% | 1,020 | 23 days |
| small bathroom ideas | apartmentabc.com (6%) | instagram.com (38,231 saves) | 29.5% | 86.5% | 189 | 64 days |
| living room decor | amazon.com (5.5%) | sixpenny.com (48,939 saves) | 61.5% | 91% | 70 | 22 days |
| kitchen organization | amazon.com (2%) | thetarnishedjewelblog.com (206,854 saves) | 82.5% | 89.5% | 21 | 38 days |

What it tells you:

- **Having the most pins is not winning.** On "christmas crafts", playpartygame.com had 17 ranking pins with 306 saves between them, while thebestideasforkids.com had 4 pins with 514,073 saves. On "wedding hairstyles", snippetandink.com had 20 pins and 63 saves.
- **Some keywords send almost no traffic.** 82.5% of "kitchen organization" pins link nowhere and 75.5% are Idea Pins: people save ideas there, they do not click out.
- **Small accounts rank everywhere.** Between 72.5% and 91.5% of ranking pins came from accounts with under 1,000 followers.
- **Freshness varies a lot.** Half the "nail art" and "living room decor" pins were about three weeks old or newer (23 and 22 days), so a new pin can get in quickly.

### How to use it

1. Add your **keywords**, one per line, the way people type them into Pinterest.
2. Choose how many **pins per keyword** to read. 100 is the default; up to 500 for a fuller picture.
3. Leave **Look up save counts** on unless you need speed over saves.
4. Run it, then open the **Keyword reports** tab, or export to CSV, Excel or JSON.

Schedule it weekly with the same keywords to watch who moves in and out of the top pins.

### Popular searches

Ready-to-run keyword research, one page per niche:

- [Home Decor Pinterest Keywords: Top Pins, Saves & Websites](https://apify.com/precious_bathmat/pinterest-keyword-research/examples/pinterest-home-decor-keywords) — "home decor ideas" and "living room decor"
- [Recipe Pinterest Keywords: Top Pins, Saves & Websites](https://apify.com/precious_bathmat/pinterest-keyword-research/examples/pinterest-recipe-keywords) — "easy dinner recipes" and "healthy recipes"
- [Outfit Pinterest Keywords: Top Pins, Saves & Websites](https://apify.com/precious_bathmat/pinterest-keyword-research/examples/pinterest-fashion-keywords) — "fall outfits" and "outfit ideas"
- [Wedding Pinterest Keywords: Top Pins, Saves & Websites](https://apify.com/precious_bathmat/pinterest-keyword-research/examples/pinterest-wedding-keywords) — "wedding ideas" and "wedding hairstyles"
- [Nail Art Pinterest Keywords: Top Pins, Saves & Websites](https://apify.com/precious_bathmat/pinterest-keyword-research/examples/pinterest-nail-art-keywords) — "nail art" and "nail designs"
- [DIY Craft Pinterest Keywords: Top Pins, Saves & Websites](https://apify.com/precious_bathmat/pinterest-keyword-research/examples/pinterest-diy-craft-keywords) — "diy crafts" and "christmas crafts"
- [Hairstyle Pinterest Keywords: Top Pins, Saves & Websites](https://apify.com/precious_bathmat/pinterest-keyword-research/examples/pinterest-hairstyle-keywords) — "hairstyles" and "easy hairstyles"
- [Travel Pinterest Keywords: Top Pins, Saves & Websites](https://apify.com/precious_bathmat/pinterest-keyword-research/examples/pinterest-travel-keywords) — "travel tips" and "travel destinations"
- [Workout Pinterest Keywords: Top Pins, Saves & Websites](https://apify.com/precious_bathmat/pinterest-keyword-research/examples/pinterest-fitness-keywords) — "workout routines" and "home workout"
- [Garden Pinterest Keywords: Top Pins, Saves & Websites](https://apify.com/precious_bathmat/pinterest-keyword-research/examples/pinterest-garden-keywords) — "garden ideas" and "backyard ideas"
- [Halloween Pinterest Keywords: Top Pins, Saves & Websites](https://apify.com/precious_bathmat/pinterest-keyword-research/examples/pinterest-halloween-keywords) — "halloween costume ideas" and "halloween decor"
- [Tattoo Pinterest Keywords: Top Pins, Saves & Websites](https://apify.com/precious_bathmat/pinterest-keyword-research/examples/pinterest-tattoo-keywords) — "tattoo ideas" and "small tattoos"
- [Makeup Pinterest Keywords: Top Pins, Saves & Websites](https://apify.com/precious_bathmat/pinterest-keyword-research/examples/pinterest-makeup-keywords) — "makeup looks" and "makeup tips"
- [Kids Activity Pinterest Keywords: Top Pins, Saves & Websites](https://apify.com/precious_bathmat/pinterest-keyword-research/examples/pinterest-kids-activity-keywords) — "kids activities" and "toddler activities"
- [Small Business Pinterest Keywords: Top Pins, Saves & Websites](https://apify.com/precious_bathmat/pinterest-keyword-research/examples/pinterest-small-business-keywords) — "small business ideas" and "side hustle ideas"

Each page is this Actor with different keywords. Open one, put your own keywords in, and run it.

### Pricing

Pay per result: **$0.02 per keyword report** plus **$0.002 per pin row** ($2 per 1,000). A keyword with the default 100 pins costs **$0.22**. Turn off **Also return every pin as a row** to pay only for the reports: 10 keywords for $0.20.

Save counts, related searches and topic tags cost nothing extra.

### Where the data comes from

Pinterest's public web search, the same requests pinterest.com makes for a visitor who is not logged in: search results, each pin's own page for its save count, and the search box suggestions. Nothing behind a login is read.

### FAQ

**Do I need a Pinterest account or API key?**
No.

**Which country are the results from?**
Pinterest shows results for the visitor's location, and Apify's servers are in the United States, so results match what a US visitor sees.

**How deep can it go?**
Up to 500 pins per keyword. In testing, Pinterest started repeating pins after about 800, and the Actor stops early whenever two pages in a row bring nothing new.

**Why do some pins have no title?**
Many pins, especially outfit photos and Idea Pins, have no title at all. When search leaves a title out, the Actor takes it from the pin's own page or its short description; the rest are left empty rather than invented.

**What is the difference between the creator and `attributedTo`?**
The creator (`creatorUsername`) is the account that saved the pin to Pinterest. When Pinterest credits someone else as the original source, for example a brand whose content a user re-pinned, that account is in `attributedTo`.

**Are promoted pins included?**
No. Ads are skipped so the report reflects organic ranking; `promotedPinsSkipped` says how many were left out.

**Is there search volume?**
No. Pinterest only shares search volume inside its logged-in advertising tools, so this Actor does not guess at it. The related searches and refinements come from Pinterest itself, which is the best public signal of what people search for.

# Actor input Schema

## `keywords` (type: `array`):

What people type into Pinterest search, one per line. Each keyword gets its own report.

## `maxPinsPerKeyword` (type: `integer`):

How far down the results to read. 100 covers what almost everyone scrolls past; go deeper for a fuller picture of who ranks.

## `lookUpSaves` (type: `boolean`):

Search results do not show how many times a pin was saved, so this opens each pin to read it. It makes runs a little slower and costs nothing extra.

## `includeRelatedSearches` (type: `boolean`):

What Pinterest suggests as people type the keyword. Free.

## `includePins` (type: `boolean`):

A second table with every pin behind the report: title, link, website, saves, creator, board, image and date. Charged per pin; turn it off to pay for the reports only.

## Actor input object example

```json
{
  "keywords": [
    "fall outfits",
    "small bathroom ideas",
    "wedding hairstyles"
  ],
  "maxPinsPerKeyword": 100,
  "lookUpSaves": true,
  "includeRelatedSearches": true,
  "includePins": true
}
```

# Actor output Schema

## `reports` (type: `string`):

Top websites, creators, saves, freshness, related searches and topics for each keyword.

## `pins` (type: `string`):

Every pin behind the reports, when that option is on.

## `summary` (type: `string`):

Pins found per keyword and anything that failed.

# 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 = {
    "keywords": [
        "vegan dinner recipes",
        "living room decor"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("precious_bathmat/pinterest-keyword-research").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 = { "keywords": [
        "vegan dinner recipes",
        "living room decor",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("precious_bathmat/pinterest-keyword-research").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 '{
  "keywords": [
    "vegan dinner recipes",
    "living room decor"
  ]
}' |
apify call precious_bathmat/pinterest-keyword-research --silent --output-dataset

```

## MCP server setup

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

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/U7XYa3dzlKdDBtpQn/builds/fp9sfs17hGlmVyZsC/openapi.json
