Pinterest API

Get Pinterest data with one API

The Pinterest API returns public Pinterest data — pins, boards, profiles and search — as clean JSON.

P
/pinterest/v1

13 active endpoints. Every call is 1 credit.

  • POST/pinterest/v1/search_pins
  • POST/pinterest/v1/search_videos
  • POST/pinterest/v1/search_users
  • POST/pinterest/v1/search_boards
  • POST/pinterest/v1/suggestions
  • POST/pinterest/v1/pin
  • POST/pinterest/v1/pin_comments
  • +6 more

What Pinterest endpoints does ReefAPI ship?

13 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

13 endpoints

search_pins

1 cr

Search Pinterest pins by keyword.

required
query
optional
limit, bookmark

search_videos

1 cr

Search Pinterest video pins (Idea Pins / video) by keyword.

required
query
optional
limit, bookmark

search_users

1 cr

Search Pinterest users/creators by keyword.

required
query
optional
limit, bookmark

search_boards

1 cr

Search Pinterest boards by keyword.

required
query
optional
limit, bookmark

suggestions

1 cr

Autocomplete / typeahead search suggestions for a partial query.

required
query
optional

pin

1 cr

Full detail for one pin.

required
optional
pin_id, pin_url, id

pin_comments

1 cr

Public comments & 'Tried it' notes on a pin.

required
optional
pin_id, pin_url, id, limit, bookmark

related_pins

1 cr

'More like this' pins related to a source pin.

required
optional
pin_id, pin_url, id, limit, bookmark

profile

1 cr

Public profile for a username.

required
username
optional

user_boards

1 cr

Public boards owned by a username.

required
username
optional

user_pins

1 cr

Pins created by a username (their feed).

required
username
optional
limit, bookmark

board

1 cr

Board metadata.

required
optional
board_url, username, board, board_slug

board_pins

1 cr

Pins inside a board.

required
optional
board_url, username, board, board_slug, limit, bookmark

Every parameter, every allowed value →

Pinterest API

3 of 13 endpoints, ready to run

View docs ↗

Search Pinterest pins by keyword.

1 credit1 required · 1 optional
POST/pinterest/v1/search_pins
idle
// Press "Try it" and this pane shows exactly what the
// live site returned this second — including an empty
// result, if that is the truth. No key, no account.

How the Pinterest API works

Pinterest is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 185 engines.

02
Call
POST /pinterest/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 credit per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

Pin ids, board slugs, image sizes and which fields only the pin action carries

The two things that catch people out here are that a save count is not on a search row, and that the pin timestamp is not ISO 8601. Everything below came off live calls on 2026-08-27: search_pins for "minimalist home office", pin 99360735500167749, and the nike profile with its boards.

ThingMeasured shapeWhich action returns it
pin_id99360735500167749, the digits in pinterest.com/pin/<id>/pin, comments and related_pins all accept pin_id or pin_url
board id99360804217844427, the same numeric space as pins but a different objectboard.id on a full pin row, or user_boards and board
board slugnike-running, the path segment after the usernameboard and board_pins, combined with username, or pass board_url
full-size imagehttps://i.pinimg.com/originals/a7/66/56/....jpgpin.image_url and full search_pins rows
avatar and board coveri.pinimg.com/75x75_RS/... and i.pinimg.com/200x150/...pinner.avatar_url and board.cover_image_url
created_at"Thu, 04 Oct 2012 21:50:37 +0000", RFC 2822 rather than ISO 8601pin and full search_pins rows
repin_count, comment_count, share_count4838, 35 and 23 on pin 99360735500167749pin only. Search rows carry none of the three
source linklink "http://www.flickr.com/photos/kentbrew/6851755809/" plus domain "flickr.com"pin, and the search rows that have an outbound link (3 of 11 measured)
aggregated_pin_id4793404135709870511pin only. It groups every save of the same underlying image

search_pins mixes Pinterest's own interstitial cards into the result list. On a measured "minimalist home office" call with limit 10, eleven rows came back and four of them carried only id, url and is_video, with no image_url, description, board or created_at. Filter on the presence of image_url if you only want real pins, and treat limit as approximate rather than exact.

What people build with Pinterest

The jobs this data is most often used for.

13

endpoints

1

credit per call

01

Content and trend teams call search_pins to find top-performing pins and rising visual themes.

02

Brand-monitoring tools use search_pins by domain to see which of a site's pages get repinned.

03

Social-marketing tools use profile and user_boards to study a competitor's Pinterest strategy.

What Pinterest data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 185 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/pinterest/v1/search_pins \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"minimalist home office","limit":10}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/pinterest/v1/search_pins",
    headers={"x-api-key": REEF_KEY},
    json={
  "query": "minimalist home office",
  "limit": 10
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Pinterest.

Get a free key →
Why do some search_pins rows have no image, title or description?

They are not pins. Pinterest injects module cards into its own search feed, and they come through as rows with only id, url and is_video, sometimes plus a stray title like "Explore featured boards". A live call for "minimalist home office" returned 11 rows of which 4 were these thin cards. A full pin row always has image_url, description, board, domain, dominant_color and created_at, so test for image_url and drop the rest.

Where do I get a pin's save or repin count?

From the pin action, not from search. A live pin read of 99360735500167749 returned repin_count 4838, comment_count 35 and share_count 23, none of which appear on any search_pins or board_pins row. If you need engagement for a list of pins, collect the ids from search and then call pin for each one.

Is created_at ISO 8601?

No. Pinterest returns it in RFC 2822 form, for example "Thu, 04 Oct 2012 21:50:37 +0000", which most ISO date parsers will refuse. Use an RFC 2822 or email-date parser, or convert once at ingest. The offset is always +0000 in the responses measured, so the value is effectively UTC.

Does the outbound source link come through?

Yes, when the pin has one. A pin that points somewhere returns both link, the full destination URL, and domain, the host on its own. Measured examples: link http://www.flickr.com/photos/kentbrew/6851755809/ with domain flickr.com, and a shopping pin with domain link.amazon. Plenty of pins have no destination at all, and on those two fields are simply absent from the object rather than null, so use a key check.

Why does a profile report pin_count 0 when the account clearly has pins?

pin_count on a profile is Pinterest's created-pins counter for that account, and brand accounts that only save into boards read 0. A live profile read of nike on 2026-08-27 returned pin_count 0, board_count 10 and follower_count 1,088,703, while user_boards for the same account returned 9 public boards holding 61, 114, 194 pins and more. board_count can also exceed the number of boards user_boards returns, because it counts boards that are not on the public profile grid. Sum board.pin_count if you want a real total.

What image sizes does the API return?

Three, each on a different field, and each a different host path on i.pinimg.com. image_url on a pin is the /originals/ path, the full-resolution file. board.cover_image_url is the /200x150/ thumbnail. pinner.avatar_url is the /75x75_RS/ square. The paths are stable enough to swap by hand, but only the originals path is guaranteed to exist for every pin.

What is reaction_counts, and why is it usually empty?

It is Pinterest's per-reaction breakdown, keyed by reaction id. On every search_pins row measured it came back as an empty object {}, and on the pin action it returned {"1": 4} for a pin with four reactions of type 1. Empty means nobody reacted, not that the field failed, so read it as zero rather than as missing.

Can I use this for Pinterest keyword research?

That is what suggestions is for. It returns the typeahead dropdown for a partial query, so "home off" returned 12 rows on 2026-08-27, each shaped {term, display, type}, with type "query" on all of them and terms including "home office", "home office ideas", "home office inspiration" and "home office setup". There is no volume figure attached; the ordering is Pinterest's own ranking.

What is the Pinterest API?

Pinterest API is a ReefAPI endpoint group for pinterest It returns live JSON through POST requests under /pinterest/v1.

Is the Pinterest API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Pinterest calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Pinterest login or account?

No login to Pinterest is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Pinterest data?

The page example is captured from a live search_pins call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Pinterest API use?

Pinterest actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Pinterest from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call pinterest actions with the same key, credit pool and JSON envelope used by normal REST requests.

10 Social Media APIs on the same key

One key, one credit pool, one response envelope. If you are pulling Pinterest, you are one call away from the rest of the category — no second contract, no second integration.

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 184 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts.