Catalog / Social, content & reviews
SOCIAL, CONTENT & REVIEWS
Pinterest: Pins, Boards, Profiles & Search
Collect Pinterest pins by keyword search, from boards and from profiles, or by pin link.
About this data
Collect Pinterest pins by keyword search, from boards and from profiles, or by pin link. Each pin has its title, description, link, images, video, saves, repins and comments where shown, board, pinner and date. Add board and profile details. Failed links are reported and not charged.
From the actor’s Apify Store listing. The per-call endpoint may return a bounded subset; its own description is below.
Buy per call over x402
One endpoint at api.ssh.autos. Each call is one JSON POST, paid in USDC with no account or API key, and answered in the same HTTP response.
POST /v1/pinterest/merchant-pins
Fields include pin ID, title, merchant link/domain, images/dimensions, video metadata, public reaction count, color and creation date where published.
One first-page Pinterest search for a selected merchant and keyword.
Examines at most 20 pins and returns up to three whose outbound URL belongs to the selected IKEA, Amazon, Walmart, Target, Etsy or Wayfair domain.
Pinner identities, personal profiles, board information and descriptions are excluded.
No matching merchant pins in this bounded page is an empty answer.
Input
Send a JSON body to POST https://api.ssh.autos/v1/pinterest/merchant-pins.
| Field | Type | Required | Notes |
|---|---|---|---|
query | string | required | 1–150 characters |
merchant | string | optional | one of ikea.com, amazon.com, walmart.com, target.com, etsy.com, wayfair.com; default "ikea.com" |
maxResults | integer | optional | 1–3; default 3 |
Returned fields
The answer is JSON: records, a list of up to 3, and summary, the run status and counts. Each record has these 19 fields; a field the source does not publish comes back null.
19 fields per record
| Field | Type | Notes |
|---|---|---|
recordType | string | always pin |
id | string | Pinterest id. Pins found by search or on a board can carry a long text id instead of a number. |
url | string | Link to the pin, board or profile. Empty for pins whose id is not a number. |
link | string | The outside web page the pin links to. |
domain | string | Domain of the pin's outside link. |
imageUrl | string | Largest pin image, or the profile picture. |
imageWidth | integer | Pin image width in pixels. |
imageHeight | integer | Pin image height in pixels. |
thumbnailUrl | string | Small pin image. |
isVideo | boolean | True for video pins. |
videoUrl | string | Video file for video pins. |
videoDurationSeconds | integer | Video length in seconds. |
reactionCount | integer | Total reactions on the pin. |
dominantColor | string | Main colour of the pin image (hex). |
createdAt | string | When the pin, board or profile was created (UTC, ISO 8601). |
source | string | What produced the row: search, board, profile or pin. one of search, board, profile, pin |
sourceInput | string | The keyword or link you entered. |
searchQuery | string | Search keyword, for search results. |
scrapedAt | string | When the row was collected (UTC, ISO 8601). |
Example call
npx agentcash@latest fetch https://api.ssh.autos/v1/pinterest/merchant-pins -m POST -b '{"query": "sofa", "merchant": "ikea.com", "maxResults": 3}'
The example values come from the API spec or the actor’s own sample input. Running it is a paid call.
What is and isn’t charged
You pay the call price for
- An answer, including a definitive “not found” or an empty result.
- Confirmed no matches returns records: [] (charged: it is an answer).
Free
- Invalid input (422), busy (503), source failure (502), timeout (504) and calls whose client hung up are never charged.
- Invalid input and source failures are not charged.
Prefer a subscription? Run it on Apify
This data source is a public actor on the Apify Store: Pinterest Scraper: Pins, Boards, Profiles & Search. Run it with your Apify account and plan for larger, scheduled or exported runs; it may offer more input options than the per-call endpoint.
How x402 payment works
- Your client sends the request. The API answers
402 Payment Requiredwith the price and where to pay. - The client pays from its own wallet: USDC on Base or Solana over x402, or over MPP on Tempo. No account, sign-up or API key.
- The client retries with the payment attached and gets the JSON answer in the same call. You are only charged for answers.
The AgentCash CLI in the example does all three steps for you and pays from your AgentCash wallet. Any x402 or MPP client works the same way.
Machine-readable: openapi.json · llms.txt