How to Get Pinterest Keyword Search Volume Through the API
Key takeaways
- Does Pinterest have a keyword search volume API? Yes. The v5 endpoint
GET /ad_accounts/{ad_account_id}/keywords/metricsreturns search volume for up to 2,000 keywords per call, for one country, aggregated across all of Pinterest. - Is the number exact? No. The API returns
keyword_query_volumeas a bucketed string such as"5M+". Store the raw label and parse a lower bound; do not treat it as a count. - Do I need partner access? No partner program is involved. You need a Pinterest developer app with the
ads:readscope and an ad account the token can see. New apps start on Trial access; production use needs a Standard access review. - Can I get long tails without scraping? Yes.
/terms/suggestedreturns popular searches that start with your term, and/terms/relatedreturns related terms. Feed both into the metrics call. - What about trends?
/trends/keywords/{region}/top/{trend_type}returns up to 50 trending keywords with growth percentages and a weekly 0 to 100 series. It is relative interest, never a search count.
What you can get in code
Pinterest exposes search demand in four different shapes, and only some of them are reachable from code. Knowing which shape you are holding matters more than which vendor it came from.
| Shape | Where it lives | Reachable from code? |
|---|---|---|
| Bucketed volume (e.g. "5M+") | Keyword metrics endpoint, Ads Manager keyword step | Yes, official API, per country |
| Exact monthly count | Pinterest interest (topic) pages | No official endpoint; shown in the Pinterest interface |
| Relative interest (0 to 100) | Trending keywords endpoint, Pinterest Trends | Yes, official API, by region |
| Modeled estimate | Third-party providers | Yes, through the provider's API |
The practical consequence: the official API tells you which order of magnitude a keyword sits in and lets you filter by country. If your product needs to rank two keywords that land in the same bucket, you need another signal, such as the exact count Pinterest shows on the interest page, or a trend series.
Getting Pinterest API access
Older write-ups, including an earlier version of this one, describe keyword data as "partner access only". In API v5 it is not: the endpoints below are ordinary v5 endpoints, gated on OAuth scopes and your app's access tier.
- Create an app at developers.pinterest.com with a Pinterest business account.
- Request scopes. Keyword metrics, suggested terms and related terms need
ads:read. The trending keywords endpoint needsuser_accounts:read. - Have an ad account. The metrics endpoint lives under
/ad_accounts/{ad_account_id}, so the authorizing user must have access to one. You do not need to run ads; the metrics are aggregated across all of Pinterest, not your campaigns. - Start on Trial access. Approved apps begin with Trial access, which has tighter limits and is meant for building and testing.
- Apply for Standard access before you ship to users. The review asks for a screen recording of your app taking a user through the OAuth flow and calling the API.
All endpoints are served from https://api.pinterest.com/v5 and take a bearer token in the Authorization header.
The keyword metrics endpoint
GET /v5/ad_accounts/{ad_account_id}/keywords/metrics returns search volume for a list of keywords in one country. Pinterest describes it as keyword metrics "aggregated across all of Pinterest".
| Parameter | Required | Notes |
|---|---|---|
ad_account_id | yes (path) | Any ad account the token can read |
country_code | yes | Two-letter ISO 3166-1 alpha-2 code, e.g. US |
keywords | yes | Comma-separated, 1 to 2,000 keywords per call |
Request
curl -G "https://api.pinterest.com/v5/ad_accounts/$AD_ACCOUNT_ID/keywords/metrics" \
-H "Authorization: Bearer $PINTEREST_TOKEN" \
--data-urlencode "country_code=US" \
--data-urlencode "keywords=bedroom ideas,small bedroom ideas,attic bedroom ideas"
Response
{
"data": [
{
"keyword": "bedroom ideas",
"metrics": { "keyword_query_volume": "5M+" }
}
]
}
Each requested keyword comes back as one item in data with the same shape. The value is a string, and "5M+" is the example Pinterest's own API specification gives. The specification does not list every bucket label, so parse defensively and keep the raw string next to whatever number you derive:
// "5M+" -> 5000000. Returns null for any
// label it does not recognise, so an unknown format never
// turns into a wrong number silently.
function bucketLowerBound(label) {
const m = /^([\d.]+)\s*([KMB])?\+?$/i.exec(String(label).trim().replace(/,/g, ''));
if (!m) return null;
const mult = { K: 1e3, M: 1e6, B: 1e9 }[(m[2] || '').toUpperCase()] || 1;
return Math.round(parseFloat(m[1]) * mult);
}
Long tails: suggested and related terms
Volume for a seed is only half the job; the opportunity usually sits in the longer phrases around it. Two official endpoints generate those phrases, both under the ads:read scope:
GET /v5/terms/suggested?term=...returns popular searches that begin with your term, as a plain array of strings. Pinterest's example: sport returns sports bar and sportswear, but not motor sports.limitdefaults to 4 and tops out at 10.GET /v5/terms/related?terms=...returns terms logically related to each input, in any word order. Pinterest's example: workout returns yoga workout and workout motivation.
curl -G "https://api.pinterest.com/v5/terms/suggested" \
-H "Authorization: Bearer $PINTEREST_TOKEN" \
--data-urlencode "term=bedroom ideas" \
--data-urlencode "limit=10"
Suggested terms give you prefix expansions and related terms give you lateral ones. Union both lists, dedupe, and send the result to the metrics endpoint. That is a complete seed-to-volume loop on official endpoints, with no autocomplete scraping.
The trending keywords endpoint
GET /v5/trends/keywords/{region}/top/{trend_type} returns the top trending searches for a region, ordered from the number one trend down.
trend_type:growing(high growth over the last quarter),monthly(high volume last month),yearly(high volume last year) orseasonal(recent growth with a recurring annual pattern).region: 18 values, from single countries such asUS,CA,DE,FRandBRto groups such asGB+IE,SE+DK+FI+NOandAU+NZ.- Filters:
interests,gendersandages, pluslimit(maximum 50).
curl -G "https://api.pinterest.com/v5/trends/keywords/US/top/seasonal" \
-H "Authorization: Bearer $PINTEREST_TOKEN" \
--data-urlencode "limit=50"
Each item carries the keyword, week-over-week, month-over-month and year-over-year growth (pct_growth_wow, pct_growth_mom, pct_growth_yoy) and a weekly time_series for the past year normalised to 0 to 100. That scale is relative, so it answers "when" and "how fast", never "how many". Join it to the metrics endpoint when you need both.
Working from a published trend report rather than the endpoint? A phrase in Pinterest Predicts is a reason to investigate, not a measurement; turn it into a keyword watchlist first.
Third-party APIs and exports
If you cannot get an app approved, or you want modeled numbers for a platform mix, these are the options that fit into a pipeline. The rest of the Pinterest SEO tool market is interface-only and belongs in a research workflow, not in your code.
KeywordTool.io (API)
- Generates Pinterest autocomplete suggestions and attaches estimated monthly volume from third-party data.
- Offers a paid API, so it slots in where the official metrics call would.
- keywordtool.io/pinterest
Pin Inspector (desktop export)
- Pulls the monthly counts as displayed inside Pinterest, plus tails, at bulk scale.
- A one-time desktop purchase with no API: export CSVs and import them into your database on a schedule.
- pininspector.com
Interface-only tools
KeySearch, Keywords Everywhere, PinClicks and our own Keyword Explorer are built for people researching by hand. Keyword Explorer reads the counts Pinterest itself reports and, on Extended Pro, exports CSV, so it can seed a dataset, but it is not an API. Full disclosure: Keyword Explorer is ours.
If you are choosing one of these for your own pins rather than for code, our roundup of the best Pinterest keyword research tools compares them by the kind of number each one shows.
Comparison table
| Source | What you get | Country split | From code | Access |
|---|---|---|---|---|
| Keyword metrics endpoint | Official volume, bucketed ("5M+") | Yes, any ISO country code | REST, up to 2,000 keywords per call | App with ads:read and an ad account |
| Suggested and related terms | Official long-tail phrases, no volume | Not documented | REST | App with ads:read |
| Trending keywords endpoint | Top trends, growth %, weekly 0 to 100 series | 18 regions | REST, up to 50 per call | App with user_accounts:read |
| Interest pages | Exact monthly count | Global | No official endpoint | Free, in the Pinterest interface |
| Pinterest Trends site | Relative interest over time | By region | No; use the trends endpoint | Free |
| KeywordTool.io | Suggestions and estimated volume | Per locale (modeled) | Paid API | Subscription |
| Pin Inspector | Counts as displayed in Pinterest | Global | CSV export, then import | One-time desktop app |
| Keyword Explorer (Pin Stats) | Counts Pinterest reports, with tails | Global | CSV export, then import | Browser extension |
Designing the pipeline
- Expand seeds. For each seed, call
/terms/suggested(limit 10) and/terms/related, then union, lowercase, trim and dedupe. - Attach volume. Send the phrases to the metrics endpoint in batches, once per country you care about.
- Store the raw label. Keep
keyword_query_volumeexactly as returned, plus the parsed lower bound. If Pinterest changes a bucket label, you re-parse instead of re-fetching. - Add momentum separately. Pull the trending endpoint per region and join on the keyword. Never overwrite a volume with a trend value; they are different units.
- Refresh on a schedule. Buckets move rarely, so weekly or monthly is plenty for volume. Trends are worth a weekly pull.
- Back off on 429. The metrics endpoint sits in Pinterest's
ads_readrate-limit category. Retry with exponential backoff instead of hammering it.
A table shaped like this keeps every number traceable to its source:
| Column | Example | Why |
|---|---|---|
keyword | small bedroom ideas | Normalised phrase, your join key |
country_code | US | Volumes are per country; never mix them |
volume_label | 5M+ | Raw value, so you can re-parse later |
volume_min | 5000000 | Sortable lower bound, or null if unparsed |
source | pinterest_keywords_metrics | Keeps official and modeled numbers apart |
fetched_at | 2026-09-28T10:00:00Z | Tells you when a number went stale |
Legal note: follow Pinterest's Developer Guidelines and Terms. The endpoints above make scraping unnecessary for this use case; if you use a third-party provider, check how it sources its data.
FAQ
Does Pinterest have a keyword search volume API?
Yes. In API v5, GET /ad_accounts/{ad_account_id}/keywords/metrics returns search volume for up to 2,000 keywords per call in a chosen country, aggregated across all of Pinterest. It needs an app with the ads:read scope and an ad account the token can access.
Why does the API return "5M+" instead of an exact number?
The keyword_query_volume field is a bucketed string, not a count. Store the raw label, parse a lower bound for sorting, and use another signal, such as the exact count on a Pinterest interest page or a trend series, when two keywords share a bucket.
Can I get U.S.-only Pinterest search volume?
Yes. Pass country_code=US to the keyword metrics endpoint. It accepts any two-letter ISO 3166-1 country code. The trending keywords endpoint uses its own list of 18 regions instead.
Do I need Pinterest partner access for keyword data?
No. These are standard v5 endpoints. Apps start on Trial access for building and testing, and need a Standard access review, which includes a recording of your OAuth flow, before shipping to users.
How do I get long-tail keywords with volumes in code?
Call /terms/suggested for popular searches that begin with your seed and /terms/related for related terms, dedupe the results, then send them to the keyword metrics endpoint for volume.
Do I need to scrape Pinterest?
No. Suggested terms, related terms, keyword metrics and trending keywords are all official endpoints. If your app is not approved yet, a third-party API such as KeywordTool.io returns estimates in the meantime.
Next step: create the app, request ads:read, and run the suggested terms to keyword metrics loop on one seed while you are on Trial access. Only need a few numbers today? The free Pinterest keyword tool shows them without any setup. Naming a board? The Pinterest board name generator turns one topic into board names people search, with monthly volumes for the top ones.