Pinterest APIau.pinterest.com ↗
Fetch the newest pins created by any Pinterest user via one endpoint. Returns image, title, creation date, engagement stats, and board per pin.
What is the Pinterest API?
This API provides one endpoint — get_user_created_pins — that returns up to the full list of original pins authored by a given Pinterest user, ordered newest first. Each pin object includes 6 data points: image URL, title, creation date, engagement stats, board association, and resolved username. Pass any public Pinterest username and get back a structured array of that user's created pins without needing to interact with Pinterest's own interfaces.
curl -X GET 'https://api.parse.bot/scraper/c6b7ed20-0ff7-43cf-85d6-0871797bf35a/get_user_created_pins?limit=10&username=heidibyrne_' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace au-pinterest-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Pinterest User Pins API — bounded, re-runnable; every call capped."""
from parse_apis.au_pinterest_com_api import Pinterest, ParseError
client = Pinterest()
# Fetch newest created pins for a user, capped at 3 items.
for pin in client.pins.list_by_user(username="heidibyrne_", limit=3):
print(pin.title, pin.created_at, pin.image_url)
# Drill-down: get just the first pin for inspection.
first = client.pins.list_by_user(username="heidibyrne_", limit=1).first()
if first:
print(first.id, first.board_name, first.save_count, first.reaction_count)
# Typed error handling around a fallible call.
try:
for pin in client.pins.list_by_user(username="nonexistent_user_xyz_99", limit=1):
print(pin.title)
except ParseError as e:
print(f"error: {e.code}")
print("exercised: pins.list_by_user")
Retrieves pins created (uploaded/authored) by the specified Pinterest user, ordered newest first. Each pin includes its image, title, creation date, engagement stats, and board. Results are auto-iterated across pages; no cursor param to pass.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of pins to return. |
| usernamerequired | string | Pinterest username (e.g. 'heidibyrne_'). A leading '@' is stripped automatically. |
{
"type": "object",
"fields": {
"pins": "Array of created pin objects, newest first",
"count": "Number of pins returned",
"username": "The resolved username"
},
"sample": {
"data": {
"pins": [
{
"id": "627900373097389228",
"link": null,
"title": "Bikinis with low back | Low back swim suit aesthetic, Low back bikinis aesthetic",
"domain": "Uploaded by user",
"seo_url": "/pin/627900373097389228/",
"is_video": false,
"image_url": "https://i.pinimg.com/originals/25/59/7c/25597c1718a97ad70d126c5b74a72809.jpg",
"board_name": "Pins by you",
"created_at": "Sun, 15 Mar 2026 08:22:44 +0000",
"save_count": 1,
"description": "",
"repin_count": 0,
"comment_count": 0,
"reaction_count": 1
}
],
"count": 1,
"username": "heidibyrne_"
},
"status": "success"
}
}About the Pinterest API
What get_user_created_pins Returns
The get_user_created_pins endpoint accepts a required username string and an optional limit integer. It resolves the username automatically — a leading @ is stripped if present — and returns a pins array ordered from newest to oldest. Each pin object includes the pin image, title, creation timestamp, engagement statistics, and the board it belongs to. The count field in the response confirms how many pins were returned.
Pagination and Filtering
Results are auto-iterated across all pages internally, so you receive a single flat array without needing to manage cursors or page tokens. Use the limit parameter to cap the result set if you only need the most recent N pins from a user's history.
Coverage Scope
The endpoint covers publicly visible created pins for any Pinterest account. The data reflects content the user has directly uploaded or authored — not repins or saved content from other creators. Engagement stats included per pin (such as saves and reactions) give a signal of how individual pieces of original content perform.
The Pinterest API is a managed, monitored endpoint for au.pinterest.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when au.pinterest.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official au.pinterest.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor a brand account's newest Pinterest uploads to track content cadence and creative direction.
- Aggregate a designer or artist's latest pins by creation date to build a portfolio feed.
- Analyze engagement stats across a user's created pins to identify which content formats perform best.
- Feed a content calendar tool with creation timestamps from a Pinterest account to benchmark posting frequency.
- Compare board associations across a user's pins to understand how they organize original content.
- Track a competitor's newest pins in real time to observe product or campaign launches.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Pinterest have an official developer API?+
What does each pin object in the response actually contain?+
pins array includes the pin image URL, title, creation date, engagement stats (such as saves), and the board the pin belongs to. The username field at the top level reflects the resolved account handle used for the query.Does the API return repins or only content the user originally created?+
Can I retrieve pins from a private or login-protected Pinterest account?+
Is there a way to filter pins by board or by a date range?+
limit (number of pins to return). Filtering by board name or creation date range is not exposed. You can fork this API on Parse and revise it to add those filtering parameters.