Skip to main content
POST
Batch public profiles
Pass 1–50 objects in items, each with platform, handle, and optional custom_id. Results retain input order and caller IDs. Handles may be bare, begin with @, or be canonical HTTPS profile URLs. URLs must match the selected platform; redirects, credentials, query strings and fragments are rejected. Supported platforms: Instagram, TikTok, YouTube, Twitter, Threads, Twitch, Snapchat, Truth Social, Bluesky, Kwai, LinkedIn and Facebook. Social profiles use ScrapeCreators, YouTube uses its official API, Bluesky uses its public API, and LinkedIn uses ScrapeBadger. Other platform values return unsupported, with no final charge. Truth Social is limited to prominent publicly accessible accounts. Facebook gated pages are rejected. LinkedIn’s id is the returned public profile slug (ext.id_kind: public_id), not a numeric member ID. Twitch partnership and Twitter blue-verification flags remain separate from canonical verification. Kwai counts reflect the public source even when surprisingly small; no values are inferred. Truth Social’s HTML biography remains in ext.bio_html, with canonical bio null. Provider access and available allowance determine whether a live lookup succeeds. Posts, since, per-item stop_at_id, and SSE are not implemented. Supplied enrichment options or SSE requests return 422 before spending. The JSON-serialized items array must fit the 16,000-character parameter limit. Every ok row contains a canonical Author in data. The returned identity must match the input. Unknown follower, verification or location fields remain null; hidden YouTube subscriber counts remain null. Provider errors are not treated as nonexistent accounts. A definitive source miss returns not_found. The request holds one credit per input, or five for a LinkedIn input, then refunds every not_found, unsupported, error and deferred row. Each successful profile costs one credit, or five for LinkedIn. Repeated input rows are separate lookups. Include the summed hold in X-Max-Credits. At most four source calls run concurrently, each with a twelve-second timeout. No new source work starts after twenty-eight seconds. Rows left unstarted return deferred and cost zero. A provider authentication or quota failure stops new calls to that provider while other providers continue. The response is never cached. Replay the same Idempotency-Key for zero-cost replay, or retry only failed/deferred rows with a new key. For MCP use execute_endpoint. The Python skill requires --allow-mutation, the batch budget and an idempotency key. Both clients calculate the complete hold before sending the batch.

Authorizations

x-api-key
string
header
required

Headers

Cache-Control
string
Idempotency-Key
string
X-Max-Credits
integer

Optional nonnegative integer cap on the maximum request hold. A live request whose hold exceeds this cap returns 422 CREDIT_BUDGET_EXCEEDED before spending. Metered holds use the requested limit; cache hits and successful idempotent replays cost zero.

Required range: x >= 0

Body

application/json
items
object[]
required
Required array length: 1 - 50 elements
Example:
include
enum<string>

Not implemented in this release; returns 422 before spending.

Available options:
posts
since
string

Not implemented in this release; returns 422 before spending.

Response

Batch public profile lookup in input order, preserving custom_id. Supported platforms: instagram, tiktok, youtube, bluesky, threads, truthsocial, twitch, snapchat, kwai, facebook, twitter, linkedin. Source identities are checked before returning canonical Author objects. Missing fields remain null. Reserve one credit per input (five for LinkedIn), then charge only successful profiles at that rate and refund all other rows. Public source access and provider allowances apply; Truth Social is limited to prominent publicly accessible accounts. Unsupported platforms return an unbilled row. JSON only: posts, since, stop_at_id and SSE are not implemented. Four bounded source workers; unstarted rows are deferred and unbilled. No response cache; idempotent replay is free. The serialized items array must fit the 16,000-character parameter limit.

success
boolean
required
platform
string
required
endpoint
string
required
credits_used
integer
required
Required range: x >= 0
credits_remaining
integer | null
required
request_id
string
required
cached
boolean
required
data
object
required

The selected operation determines the resource fields in this object. Source data can omit a metric or report it as null.