Social Dash Scraper
Documentation v0.1OpenAPI

Visual discovery API

Pinterest

Live private service · production acceptance passed

Search public pins, retrieve pin details, browse user boards, and read board pins.

Four authenticated endpoints for public Pinterest discovery and metadata. Follow source pagination and choose full or compact responses. Availability depends on Pinterest’s logged-out access; private and restricted resources fail explicitly.

Base URLhttp://localhost:3014

Local development example. Replace with your service origin.

Search Pinterest pins

GET/v1/pinterest/search

Discover public pins for a keyword. Retrieves one page with a requested page size of 25; Pinterest controls the actual result count and ranking. Pass cursor to continue. Full records retain available image, destination, board, author, counter and media fields. Trimmed pins contain id, url, description, created_at, pinner and images when supplied.

Query parameters

FieldTypeDescription
querystringRequired keyword, 1–500 characters after trimming.
cursorstringOptional source bookmark returned by the previous response. Reuse with the same query, handle, or board. Null means end of results unless coverage warns pagination_unavailable. Source cursors can expire. Maximum 16,384 characters.
trimstringOptional true or false (default false). True selects the documented compact fields; false preserves the public source record and nested extensions. Missing source fields remain absent.

Response fields

FieldTypeDescription
successbooleanTrue when usable supported data was retrieved.
statusstringsuccess, partial, failed, or challenged. Partial results carry coverage warnings.
requestIdstringOpaque operation identifier for correlation.
sourceUrlstringCanonical public source page. This field can contain the requested search query.
fetchedAtstringUTC retrieval time. Every call makes fresh upstream requests; Pinterest may serve its own cached data.
coverageobjectCompleteness of this supported response page, not the entire account or search corpus. Check restricted_records, malformed_records, record_limit, pagination_unavailable, and missing_pin_counts. Some pin pages omit share/reaction counts; these remain absent with explicit partial coverage.
accountingobjectUpstream attempts, total decoded response bytes, and elapsed milliseconds. No competitor credits are synthesized.
pinsarrayOrdered public pin records. Source nulls and nested attributes are preserved. Maximum 100 records; over-limit or malformed results produce explicit partial coverage.
cursorstring | nullOptional source bookmark returned by the previous response. Reuse with the same query, handle, or board. Null means end of results unless coverage warns pagination_unavailable. Source cursors can expire. Maximum 16,384 characters.

Nested fields and every response variant are in the OpenAPI specification.

Get a Pinterest pin

GET/v1/pinterest/pin

Read a public pin’s page data without executing page scripts. Full responses expose Pinterest’s camelCase fields at the top level, preserving nested media and author data. imageSpec_orig aliases images_orig when needed. Trimmed fields: entityId, seoAltText, originPinner, pinner, imageSpec_orig, description, shareCount, nativeCreator, createdAt, repinCount and totalReactionCount. Counts are never guessed; missing required pin fields fail explicitly. cache_max_age is unsupported.

Query parameters

FieldTypeDescription
urlstringRequired HTTPS pinterest.com or www.pinterest.com pin URL (/pin/<numeric-id>/). No credentials, explicit ports, short links, regional domains or encoded path segments. Tracking query parameters and fragments are removed.
trimstringOptional true or false (default false). True selects the documented compact fields; false preserves the public source record and nested extensions. Missing source fields remain absent.

Response fields

FieldTypeDescription
entityIdstringAlways included.
descriptionstring | nullAlways included.
pinnerobject | nullAlways included.
imageSpec_origobjectAlways included.
createdAtstringAlways included.
repinCountnumberAlways included.
shareCountnumberOptional.
totalReactionCountnumberOptional.
successbooleanTrue when usable supported data was retrieved.
statusstringsuccess, partial, failed, or challenged. Partial results carry coverage warnings.
requestIdstringOpaque operation identifier for correlation.
sourceUrlstringCanonical public source page. This field can contain the requested search query.
fetchedAtstringUTC retrieval time. Every call makes fresh upstream requests; Pinterest may serve its own cached data.
coverageobjectCompleteness of this supported response page, not the entire account or search corpus. Check restricted_records, malformed_records, record_limit, pagination_unavailable, and missing_pin_counts. Some pin pages omit share/reaction counts; these remain absent with explicit partial coverage.
accountingobjectUpstream attempts, total decoded response bytes, and elapsed milliseconds. No competitor credits are synthesized.

Nested fields and every response variant are in the OpenAPI specification.

Get a user’s boards

GET/v1/pinterest/user/boards

List one page of public boards, preserving order, source counts and nested metadata. Requests 25 boards. Cursor input is supported as an extension to the competitor’s documented request contract. Trimmed boards retain id, url, description, follower_count, pin_count, name, image_cover_hd_url and created_at when present. Pinterest does not supply every field for every board; absent timestamps and cover fields are not invented.

Query parameters

FieldTypeDescription
handlestringRequired Pinterest username, 1–60 letters, digits or underscores; normalized to lowercase.
cursorstringOptional source bookmark returned by the previous response. Reuse with the same query, handle, or board. Null means end of results unless coverage warns pagination_unavailable. Source cursors can expire. Maximum 16,384 characters.
trimstringOptional true or false (default false). True selects the documented compact fields; false preserves the public source record and nested extensions. Missing source fields remain absent.

Response fields

FieldTypeDescription
successbooleanTrue when usable supported data was retrieved.
statusstringsuccess, partial, failed, or challenged. Partial results carry coverage warnings.
requestIdstringOpaque operation identifier for correlation.
sourceUrlstringCanonical public source page. This field can contain the requested search query.
fetchedAtstringUTC retrieval time. Every call makes fresh upstream requests; Pinterest may serve its own cached data.
coverageobjectCompleteness of this supported response page, not the entire account or search corpus. Check restricted_records, malformed_records, record_limit, pagination_unavailable, and missing_pin_counts. Some pin pages omit share/reaction counts; these remain absent with explicit partial coverage.
accountingobjectUpstream attempts, total decoded response bytes, and elapsed milliseconds. No competitor credits are synthesized.
boardsarrayOrdered public board records with canonical URLs. Maximum 100 records. Nested source fields are preserved by default.
cursorstring | nullOptional source bookmark returned by the previous response. Reuse with the same query, handle, or board. Null means end of results unless coverage warns pagination_unavailable. Source cursors can expire. Maximum 16,384 characters.

Nested fields and every response variant are in the OpenAPI specification.

Get pins from a board

GET/v1/pinterest/board

Resolve a public board and retrieve one page of its pins, requesting 25 items. Each returned pin’s board ID must match. All board sections are included where Pinterest supplies them. Pass cursor for the next page. Full records preserve source fields; trim=true uses the same compact pin fields as search. Media files and destination links are never downloaded.

Query parameters

FieldTypeDescription
urlstringRequired HTTPS pinterest.com or www.pinterest.com board URL (/<handle>/<slug>/). Board slugs currently accept ASCII letters, digits, underscores and hyphens. No credentials, explicit ports, short links, regional domains or encoded path segments. Tracking query parameters and fragments are removed.
cursorstringOptional source bookmark returned by the previous response. Reuse with the same query, handle, or board. Null means end of results unless coverage warns pagination_unavailable. Source cursors can expire. Maximum 16,384 characters.
trimstringOptional true or false (default false). True selects the documented compact fields; false preserves the public source record and nested extensions. Missing source fields remain absent.

Response fields

FieldTypeDescription
successbooleanTrue when usable supported data was retrieved.
statusstringsuccess, partial, failed, or challenged. Partial results carry coverage warnings.
requestIdstringOpaque operation identifier for correlation.
sourceUrlstringCanonical public source page. This field can contain the requested search query.
fetchedAtstringUTC retrieval time. Every call makes fresh upstream requests; Pinterest may serve its own cached data.
coverageobjectCompleteness of this supported response page, not the entire account or search corpus. Check restricted_records, malformed_records, record_limit, pagination_unavailable, and missing_pin_counts. Some pin pages omit share/reaction counts; these remain absent with explicit partial coverage.
accountingobjectUpstream attempts, total decoded response bytes, and elapsed milliseconds. No competitor credits are synthesized.
pinsarrayOrdered public pin records. Source nulls and nested attributes are preserved. Maximum 100 records; over-limit or malformed results produce explicit partial coverage.
cursorstring | nullOptional source bookmark returned by the previous response. Reuse with the same query, handle, or board. Null means end of results unless coverage warns pagination_unavailable. Source cursors can expire. Maximum 16,384 characters.

Nested fields and every response variant are in the OpenAPI specification.

Coverage & limits

  • Four concurrent operations; one 20-second deadline per operation.
  • At most three upstream HTTP attempts, including one shared transient retry. Board retrieval uses two ordinary requests; other operations use one.
  • At most 4 MiB of combined decoded successful response data, JSON depth 24 and 40,000 parsed JSON nodes.
  • Lists request 25 records per page and return at most 100. One cursor page per request; no automatic enumeration.
  • Logged-out HTTPS to www.pinterest.com only. No Pinterest account, cookies, proxy, browser execution, media download or destination visits.
  • Dedicated PINTEREST_API_KEY in x-api-key. Process health confirms local readiness, not upstream availability.
  • No result retention, shared database, cache_max_age, competitor credits or customer billing.
  • Collection completeness applies only to the returned page. Missing optional source fields are omitted; source ordering and null values are retained.

Errors & partial results

HTTPCode / statusMeaning
200partialSome records were restricted, malformed or capped, or pagination was unavailable. Inspect coverage.warnings.
400invalid_requestMissing, duplicate, unsupported or invalid parameters or URL.
401unauthorizedMissing or invalid service key.
403restricted_pageAccess-gated pin/board or no usable public records.
404not_foundPinterest explicitly reported a missing resource, or the route is unknown.
429upstream_rate_limitedPinterest rate limited retrieval.
502upstream_challengedPinterest challenged the request.
502unsupported_page / upstream_errorIncomplete, changed or mismatched source data, or retrieval failure.
502response_too_large / payload_too_complex / request_limitA byte, parsing or request bound was exceeded.
502unsafe_redirectUpstream redirected; redirects are not followed.
503busyAll worker slots are occupied.
504timeoutThe shared deadline expired.