Claude.ai & Claude Desktop
Settings → Connectors → Add custom connector.
Name it PinPinterest, paste https://api.pinpinterest.com/mcp and leave the OAuth fields empty.
Press Connect, sign in to PinPinterest (or create your account) and press Allow.
Ask your assistant how competitive a Pinterest keyword is, what ranks for it and what is rising, and it answers from pins we actually measured. 15 lookups a month free, and a keyword we do not hold costs nothing.
Claude, ChatGPT, Claude Code, Cursor and VS Code can connect with just the server URL. They open a PinPinterest sign-in, you press Allow, and the app gets its own key (it shows in Settings → API as “connected”; revoke it there to disconnect).
Settings → Connectors → Add custom connector.
Name it PinPinterest, paste https://api.pinpinterest.com/mcp and leave the OAuth fields empty.
Press Connect, sign in to PinPinterest (or create your account) and press Allow.
Settings → Apps & Connectors → Advanced settings → turn on Developer mode.
Create a connector with https://api.pinpinterest.com/mcp and choose OAuth as the authentication.
Sign in to PinPinterest in the window it opens and press Allow.
Run this once, then type /mcp in Claude Code, pick pinpinterest and choose Authenticate.
Sign in to PinPinterest in the browser tab it opens and press Allow.
claude mcp add --transport http pinpinterest https://api.pinpinterest.com/mcpAdd the server with only its URL, https://api.pinpinterest.com/mcp (no headers).
Press the sign-in button the app shows beside it, sign in to PinPinterest and press Allow.
Server URL: https://api.pinpinterest.com/mcp. An app that cannot sign in (n8n, a script) uses a key, below.
Create an account, then open Settings → API in the dashboard and press Create key. The same key works for the REST API and here, and both draw on one monthly allowance.
Server URL: https://api.pinpinterest.com/mcp
Run this once in your terminal, then ask Claude Code a Pinterest question.
claude mcp add --transport http pinpinterest https://api.pinpinterest.com/mcp \
--header "Authorization: Bearer pp_live_YOUR_KEY_HERE"Settings → Connectors → Add custom connector.
Name it PinPinterest and paste this URL (with your key in place of the placeholder). Leave the OAuth fields empty.
https://api.pinpinterest.com/mcp?key=pp_live_YOUR_KEY_HERESettings → Apps & Connectors → Advanced settings → turn on Developer mode.
Create a connector, paste this URL (with your key), and choose "No authentication" — the key in the URL is the authentication.
https://api.pinpinterest.com/mcp?key=pp_live_YOUR_KEY_HEREAdd this to the file, then reload Cursor.
File: ~/.cursor/mcp.json
{
"mcpServers": {
"pinpinterest": {
"url": "https://api.pinpinterest.com/mcp",
"headers": {
"Authorization": "Bearer pp_live_YOUR_KEY_HERE"
}
}
}
}Add this to the file in your workspace, then start the server from the file.
File: .vscode/mcp.json
{
"servers": {
"pinpinterest": {
"type": "http",
"url": "https://api.pinpinterest.com/mcp",
"headers": {
"Authorization": "Bearer pp_live_YOUR_KEY_HERE"
}
}
}
}Add an MCP Client Tool node to your AI Agent and fill in these three fields.
Endpoint: https://api.pinpinterest.com/mcp
Server Transport: HTTP Streamable
Authentication: Bearer Auth → pp_live_YOUR_KEY_HEREReplace pp_live_YOUR_KEY_HERE with your key. Keep a URL with your key in it private — anyone holding it can spend your lookups. You can revoke a key and make a new one at any time.
| Tool | What it answers |
|---|---|
keyword_lookup | Pinterest data for one keyword: how many ranking pins we analysed, their average and total saves, competition (low/medium/high) and an opportunity score, plus its niche. est_clicks is an ESTIMATE derived from saves (Pinterest does not publish clicks or impressions for pins you do not own); pins_analysed, saves and competition are measured from the pins we crawled. On Pro and above: demand is our high/medium/low word from average saves (the word the app shows); google_monthly_searches is GOOGLE's average monthly US searches for the exact term (null until read), never Pinterest's — Pinterest publishes no monthly search counts. pinterest_search_count is Pinterest's own search count for the exact phrase, from its public interest page (read at pinterest_search_count_at; Pinterest does not say what period it covers, so use it to compare phrases, never as searches per month); null when Pinterest has no interest for the phrase. A keyword we do not hold returns tracked:false with close suggestions and does not use a lookup. Its crawl field says what happens next: on a paid plan we have already started crawling it (crawl.status queued or crawling) — tell the person to ask again in crawl.retry_after_minutes, or that we e-mail them when it is in. When several keywords come back tracked:false, offer request_keywords to queue them all in one call. |
request_keywords | Ask PinPinterest to crawl Pinterest for keywords it has no data for yet — offer this after keyword_lookup answers tracked:false, especially for a list. Pass up to 25 terms; each comes back with a request_id and a status (queued, crawling, ready, failed). Crawls usually land within 10–40 minutes and the person gets ONE e-mail when they are in; asking keyword_lookup again after crawl.retry_after_minutes returns the data. Asking twice for the same term is the same request. Uses no lookup; up to 25 new keywords a day per account. Needs the Starter plan or above. |
related_keywords | Keywords that appear on the same ranking pins as yours, strongest overlap first — the ones worth targeting next. Each comes with how many pins it shares and its own competition. Needs the Starter plan or above. |
keyword_top_pins | The best-performing pins ranking for a keyword, by saves, with their titles, links and save counts — what is winning that search right now. est_clicks is an ESTIMATE derived from saves (Pinterest does not publish clicks or impressions for pins you do not own); pins_analysed, saves and competition are measured from the pins we crawled. Needs the Pro plan or above. |
niche_top_pins | The best-performing pins across a whole niche (use list_niches for the slugs), sorted and paged. Pass next_cursor back as cursor for the next page. There is no impressions sort: Pinterest does not publish impressions for pins you do not own, so we do not invent them. Needs the Pro plan or above. |
trending | Topics rising in a niche right now, read from the pins people are publishing this month, with example pins. Use list_niches for the slugs. |
list_niches | The niche slugs the other tools accept (niche_top_pins, trending). Free — uses no lookup. |
my_quota | Your PinPinterest plan, how many lookups you have used this month and when they reset. Free — uses no lookup. |
Each tool is a REST endpoint underneath, with the same numbers, the same plan rules and the same meter — see the allowance on each plan. When the month runs out, the assistant tells you, along with the plan that lifts the limit.
A keyword we have not crawled yet costs nothing. On a paid plan we start crawling it the moment you ask, and request_keywords queues a whole list in one go — you get one e-mail when they are in, and asking your assistant again then answers with the data. How the crawl works.
Create an account, open Settings → API, press Create key. The free allowance never expires.