Pinterest User Pins API
Pins from a Pinterest profile — offset cursor, pidgets window ~100.
GET request to /v1/pinterest/user-pins that responds with clean JSON and costs ~13 credits (0.5/result). Pass cache=true for a free 24h cache hit; default is always fresh. Start with 100 free credits — no credit card.What is the Pinterest User Pins API?
Pass a Pinterest profile URL or username and get that profile's public pins as clean JSON. Cursor pagination via nextCursor + hasMore (numeric offset); a null nextCursor means the end of the retrievable window. The envelope names requested / listingHits / totalReturned / truncatedReason=pidgets-window. Native pidgets returns one dump (~25–100 pins) — that is the ceiling, not the board's full pinCount. ~0.5 credits/result (min 2). timings{nativeMs,enrichMs,totalMs} name which stage ran.
What you get
- nextCursor + hasMore (pidgets window ~100)
- requested / listingHits / truncatedReason=pidgets-window
- saves, link, imageOriginal, images{}, originAuthor
Try it
Fill in the parameters below and copy a ready-to-run request, or open the live Playground to run it against your account (no API key paste).
Parameters
curl "https://api.captapi.com/v1/pinterest/user-pins?url=https%3A%2F%2Fwww.pinterest.com%2Fnasa" \
-H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."Edit the parameters and the code updates instantly. Switch languages and hit copy.
Example response
{
"success": true,
"data": {
"username": "potterybarn",
"totalReturned": 2,
"pins": [
{
"platform": "pinterest",
"id": "264938390611768286",
"url": "https://www.pinterest.com/pin/264938390611768286/",
"description": "Our Rockport Metal Rectangular Outdoor Dining Table is the perfect table to gather around, share everyday meals, and create everlasting memories. Layer with your favorite dinnerware, table linens, and decor. Tap to shop our table.",
"image": "https://i.pinimg.com/564x/c5/3c/d8/c53cd8cbf2c9ac113541297716ea4f79.jpg",
"board": {
"name": "Rustic Lodge Lookbook",
"url": "https://www.pinterest.com/potterybarn/rustic-lodge-lookbook/"
},
"author": {
"username": "potterybarn",
"displayName": "Pottery Barn",
"followers": 1122723
},
"link": "https://www.potterybarn.com/pages/lookbook/fall/rustic-lodge/?cm_ven=OrganicSocial&cm_cat=Pinterest&cm_pla=stpin&cm_ite=rusticlodgeoutdoordining",
"imageOriginal": "https://i.pinimg.com/originals/c5/3c/d8/c53cd8cbf2c9ac113541297716ea4f79.jpg",
"images": {
"564x": {
"url": "https://i.pinimg.com/564x/c5/3c/d8/c53cd8cbf2c9ac113541297716ea4f79.jpg"
},
"originals": {
"url": "https://i.pinimg.com/originals/c5/3c/d8/c53cd8cbf2c9ac113541297716ea4f79.jpg"
}
},
"saves": 2,
"repinCount": 1,
"originAuthor": {
"id": "264938527987338255"
},
"dominantColor": "#3f2712",
"isVideo": false,
"domain": "Uploaded by user",
"title": "Rockport Metal Rectangular Outdoor Dining Table"
},
{
"platform": "pinterest",
"id": "264938390611768285",
"url": "https://www.pinterest.com/pin/264938390611768285/",
"description": "Turn your home into a cozy retreat with our Faux Fur Mink Throw Blankets. Available in over 10 colors, this soft throw blanket is perfect for cozying up on the couch, layering on a bed, or adding warmth and texture to any living room or bedroom. Tap to shop!",
"image": "https://i.pinimg.com/564x/92/11/09/92110909d4268cb415bfb10ae6281f50.jpg",
"board": {
"name": "Rustic Lodge Lookbook",
"url": "https://www.pinterest.com/potterybarn/rustic-lodge-lookbook/"
},
"author": {
"username": "potterybarn",
"displayName": "Pottery Barn",
"followers": 1122723
},
"link": "https://www.potterybarn.com/pages/lookbook/fall/rustic-lodge/?cm_ven=OrganicSocial&cm_cat=Pinterest&cm_pla=stpin&cm_ite=rusticlodgeblankets",
"imageOriginal": "https://i.pinimg.com/originals/92/11/09/92110909d4268cb415bfb10ae6281f50.jpg",
"images": {
"564x": {
"url": "https://i.pinimg.com/564x/92/11/09/92110909d4268cb415bfb10ae6281f50.jpg"
},
"originals": {
"url": "https://i.pinimg.com/originals/92/11/09/92110909d4268cb415bfb10ae6281f50.jpg"
}
}
}
],
"requested": 5,
"listingHits": 5,
"hasMore": false,
"nextCursor": null,
"truncatedReason": "pidgets-window"
}
}Billing metadata is returned in response headers: X-Captapi-Credits (credits charged), X-Captapi-Cache (hit or miss), and X-Captapi-Source. Failed requests (4xx/5xx) are never charged. See the full list of error codes in the error reference.
Response structure
A successful call returns success and a data object with the following fields:
Top-level fields
usernameAccount username / handle.totalReturnedNumber of items returned in this response.requestedlimit you asked for.listingHitsPins in this pidgets window (may be larger than the page).hasMoretrue when nextCursor is set. Pass that value as cursor for the next page.nextCursorNumeric offset cursor (e.g. 25). Null means the end of the pidgets window (~100).truncatedReasonpidgets-window when the native dump is exhausted.
Pins
Each item in pins contains:
platformPlatform identifier for this response (matches the endpoint's platform).idId of this pins item.urlCanonical URL of the item.descriptionDescription of this pins item.imageImage URL.boardObject with name, url.authorAuthor name or handle.linkOutbound link on the pin (product/article URL). There is no destinationUrl twin.imageOriginalImage original URL.imagesAttached image URL list for this item.savesHow many times the pin was saved/repinned — Pinterest's primary engagement metric.repinCountRepin count. Example: 1.originAuthorObject with id.dominantColorDominant color. Example: "#3f2712".isVideoWhether the item is a video.domainDomain. Example: "Uploaded by user".titleTitle of this pins item.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Pinterest profile URL or username. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble. |
| limit | integer | No | Max items to return (default 25, max 200). Billed per result. |
| cursor | string | No | Pagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response (numeric offset, e.g. 25). A null nextCursor means the end of the retrievable window (pidgets ~100). |
| cache | boolean | No | Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. |
Authentication: send your key as Authorization: Bearer capt_live_.... A typical call costs ~13 credits (0.5/result) — billed per result, so the exact amount scales with how many items you request. Pass cache=true for a free 24h cache hit; default is always fresh (metrics refresh within ~1 hour).
How it works
- 1. Sign up — get 100 free credits, no card required.
- 2. Create a key from your dashboard.
- 3. Send one request to
/v1/pinterest/user-pinsand parse the JSON response.
Use cases
Content Pipelines
Ingest a channel's catalog in bulk.
Monitoring
Detect new uploads automatically.
Archiving
Snapshot a creator's library — metadata plus CDN media URLs (re-fetch before mediaUrlsExpireAt).
Analytics
Aggregate performance across many videos.
Frequently asked questions
What does the Pinterest User Pins API do?+
The Pinterest User Pins API lets you list items in bulk with metadata from a public Pinterest pin using one GET request to /v1/pinterest/user-pins. It returns clean JSON — no OAuth or infrastructure setup required.
How many credits does the Pinterest User Pins API cost?+
At the default limit this endpoint costs 13 credits (0.5 per result). Billing scales with how many results you request. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.
Do I need a Pinterest API key or OAuth?+
No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.
Is the Pinterest User Pins API suitable for production use?+
Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.
More Pinterest APIs
Ready to use the Pinterest User Pins API?
Sign up, grab your key, and make your first call in 60 seconds.