How to Get a Pinterest API Key: Trial vs Standard Access
To get a Pinterest API key, log in with a Pinterest business account at developers.pinterest.com, open My apps, accept the terms, click Connect app and submit the form for trial access. Once approved, My apps shows your app ID and app secret, which you use for OAuth tokens that last 30 days. Trial access is capped at 1,000 requests a day and its Pins and boards are sandbox-only; Standard access needs a video demo of your OAuth flow.
A Pinterest API key is your app ID and app secret, issued only after Pinterest approves your app for trial access. Your code exchanges them for an OAuth access token, which is what each v5 API call sends. The catch is the two-stage review: trial first, then Standard. For costs, see Is the Pinterest API free?, and for a wider look at your options, Pinterest API options.
What you need
- A Pinterest business account. It administers the app.
- A verified email on that account.
- Two-factor authentication, if you want client credentials tokens.
- An HTTPS redirect URI for OAuth.
- For Standard access, a screen recording of your OAuth flow and integration.
How to get a Pinterest API key, step by step
- Log in with your business account, or create one, and verify your email.
- Open My apps at developers.pinterest.com/apps and accept the Developer Terms of Service.
- Click Connect app and fill in the request form. The name needs at least 3 Latin letters or numbers and cannot contain "Pinterest".
- Submit for trial access. Pinterest reviews it and emails you a decision (getting started).
- Copy the app ID and app secret from My apps once approved.
- Add the redirect URI. My apps > Manage > Configure > Redirect URIs, enter it, click Add. It must match
redirect_uriexactly.
Pinterest gives no review time. In August 2026 it posted a known issue on its developer forum about delays for trial and Standard requests and a backlog it is working through (known issue). If you are stuck, open a Help Center ticket, and never post your app ID or tokens in the forum.
Pinterest trial vs standard access
| Trial | Standard | |
|---|---|---|
| Rate limit | 1,000 requests a day for all calls | Per minute, per user, per app (100 a second universal) |
| Pins and boards you create | Visible only to their creator, as sandbox entities | Public |
| Meant for | Building and testing | Production |
| How to get it | Connect app form | Upgrade on the app card, with a video demo |
From Pinterest's access tiers page. The demo must show the user authorization flow and the live integration. Pinterest says it still requires a recording of the OAuth flow even if you are the only intended user; a terminal or Postman recording is accepted.
Test without OAuth: generate an access token
In My apps > Manage > Configure, the Generate Access Token section gives you a test token. A product-limited token covers pins:read, boards:read and user_accounts:read; a sandbox token covers every scope but only on https://api-sandbox.pinterest.com and lasts 30 days (quickstart tools, sandbox). Sandbox and production tokens are not interchangeable.
Get a Pinterest access token with OAuth
Send the user to the authorize URL with at least one scope (auth docs):
https://www.pinterest.com/oauth/?client_id=APP_ID&redirect_uri=https://example.com/pinterest/callback&response_type=code&scope=boards:read,pins:read,user_accounts:read&state=RANDOM
Exchange the code with Basic auth, which is base64 of app_id:app_secret:
curl -X POST "https://api.pinterest.com/v5/oauth/token" \
-u "APP_ID:APP_SECRET" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=authorization_code&code=CODE&redirect_uri=https://example.com/pinterest/callback"
Pinterest token lifetime and refresh
| Token | Prefix | Lifetime |
|---|---|---|
| Access token | pina | 30 days (expires_in 2592000) |
| Continuous refresh token | pinr | 60 days, renewed on each refresh, so it can last indefinitely |
| Client credentials token | pinc | 30 days, no refresh token, owner's account only |
Refresh with grant_type=refresh_token and the refresh_token. Apps created before 25 September 2025 must add continuous_refresh=true; newer apps get continuous tokens by default. The old 365-day refresh tokens are no longer supported. Refresh before day 60, or the user must log in again.
First request in curl and Python
curl "https://api.pinterest.com/v5/user_account" -H "Authorization: Bearer ACCESS_TOKEN"
import os
import requests
TOKEN = os.environ["PINTEREST_TOKEN"]
API = "https://api.pinterest.com/v5" # use https://api-sandbox.pinterest.com/v5 for sandbox tokens
H = {"Authorization": f"Bearer {TOKEN}"}
me = requests.get(f"{API}/user_account", headers=H, timeout=30)
print(me.status_code, me.headers.get("x-ratelimit-remaining"))
me.raise_for_status()
print(me.json().get("username"))
boards, bookmark = [], None
while True:
params = {"page_size": 25, **({"bookmark": bookmark} if bookmark else {})}
r = requests.get(f"{API}/boards", headers=H, params=params, timeout=30).json()
boards += r["items"]
bookmark = r.get("bookmark")
if not bookmark:
break
print(len(boards), "boards")
On trial access, this loop's calls count against the 1,000 a day. A user with 200 boards uses 8 calls.
Pinterest API rate limits
| Category | Trial, per day | Standard, per minute per user per app |
|---|---|---|
org_read (users, boards, Pins) | 1,000 | 1,000 |
org_write | 300 | 100 |
org_analytics | 1,000 | 60 |
ads_read | 1,000 | 1,000 |
ads_write | 300 | 400 |
trends_read | 1,000 | 60 |
Watch x-ratelimit-limit, x-ratelimit-remaining and x-ratelimit-reset (rate limits).
Common Pinterest API errors
| Response | Cause | Fix |
|---|---|---|
| 401, code 2 | Access token expired or invalid | Refresh it |
| Redirect error at login | Redirect URI not registered exactly | Add it under Configure > Redirect URIs |
403 PINNER_DATA_ACCESS_DENIED | Apps registered on or after 14 September 2026 asking for a non-business user's board or Pin without Pinterest's authorization | Request the access from Pinterest, or read business accounts only |
| Token works in sandbox only | Sandbox token sent to production | Use a production token on api.pinterest.com |
| Calls stop for the day | Trial's 1,000 daily requests used | Wait, or apply for Standard |
If you just need public data
The API is built for managing your own or your users' Pinterest accounts. If you need public pins, boards or search results, ScrapeIO reads them without an app or review: the Pinterest pin API, board API, search API and user boards API, at 1 credit a call. Compare tools in best Pinterest scrapers, or connect an agent with the Pinterest MCP server.
curl "https://scrapeio.com/v1/pinterest/search?query=kitchen+ideas" \
-H "x-api-key: YOUR_KEY"
FAQ
Does Pinterest have an API key?
Not a single static key. You get an app ID and app secret after trial approval and use them to get OAuth access tokens.
How long does Pinterest API approval take?
Pinterest gives no fixed time and has acknowledged a backlog in 2026. Use a sandbox token while you wait.
What can I do with Pinterest trial access?
Read and create most resources, up to 1,000 requests a day, but Pins and boards you create stay visible only to you.
How long does a Pinterest access token last?
30 days. Refresh tokens last 60 days and renew when you use them.
Do I need a business account for the Pinterest API?
Yes. Pinterest asks you to administer your app from a business account.
Sources
Checked on 9 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.
- https://developers.pinterest.com/docs/getting-started/
- https://developers.pinterest.com/docs/key-concepts/access-tiers/
- https://developers.pinterest.com/docs/getting-started/set-up-authentication-and-authorization/
- https://developers.pinterest.com/docs/developer-tools/quickstart-tools/
- https://developers.pinterest.com/docs/developer-tools/sandbox/
- https://developers.pinterest.com/docs/reference/rate-limits.md
- https://community.pinterest.biz/t/known-issue-support-for-trial-access-pending-or-denied-access/50249
100 free credits, no card. Credits never expire.
Get API key