POST
Fetch an X profile by username or URL

Authorizations

Authorization
string
header
default:tok_public_demo
required

Send a workspace API token in the Authorization: Bearer <token> header.

Keys carry the satk_ prefix and spend your organization's credit balance. GET /v1/public/balance reports what is left.

Test-mode keys (satk_test_), which drew on a separate self-refilling allowance, have been retired and no longer authenticate.

Headers

Idempotency-Key
string

Optional deduplication key, scoped to your organization. Re-sending a request with a key that was already used returns the original job instead of creating and charging for a second one.

Supersedes the idempotencyKey body field, which remains supported as a deprecated alias. If both are present, this header wins.

Maximum string length: 255

Body

application/json
username
string
required
wait
boolean
default:true

Wait for a terminal response before falling back to async job polling.

waitTimeoutMs
integer

Optional client-requested sync wait timeout, bounded by the server maximum.

webhookUrl
string<uri>

Optional public callback URL for terminal job delivery. Available to every organization.

Naming a URL here registers it as a webhook endpoint if it is not registered already, so the signing secret exists before the first delivery does. Fetch it from GET /v1/public/webhooks/endpoints/{endpointId}/secret, or register the endpoint up front with POST /v1/public/webhooks/endpoints to have the secret in hand before you run anything.

Deliveries carry X-Scrapebento-Signature, an HMAC-SHA256 over "<timestamp>.<body>" under that endpoint's own secret, so the secret you need to verify your deliveries cannot forge anyone else's. Every attempt is recorded in GET /v1/public/webhooks/deliveries and can be re-sent from there.

idempotencyKey
string
deprecated

Deprecated alias for the Idempotency-Key header, which is the conventional transport and takes precedence when both are sent. Still honoured so existing integrations keep working.

Maximum string length: 255
cacheTtlSec
integer

How long this result may be reused, in seconds. Capped at 7 days (604800); larger values are clamped.

Omit it to accept the per-kind server default. Slow-moving kinds cache by default — infra and brand for 6h, seo, sitemap, site, and producthunt for 1h, and hn_search, hn_post, and rss for 5m. Everything else defaults to no caching.

A cached result is charged at the same rate as a fresh scrape, so the TTL is how stale an answer you can be billed for. Send 0 to prevent this result being cached, and fresh: true to bypass an existing cache entry on read.

Required range: 0 <= x <= 604800
fresh
boolean

Bypass cache and force a new scrape or search execution.

url
string<uri>
deep
boolean

Legacy single-job deep crawl. Prefer timelineMode for resumable history. Requires the extended-ceiling entitlement; ignored without it (and ignored alongside timelineMode), so a request always returns a bounded page rather than an error.

timelineMode
enum<string>

Incremental starts at the newest page; backfill resumes the supplied cursor.

Available options:
incremental,
backfill
cursor
string

Opaque nextCursor returned by the previous bounded timeline page.

Maximum string length: 4096
maxPages
integer
default:3

Incremental timelines accept at most 5 pages; backfills accept at most 10.

Required range: 1 <= x <= 10
limit
integer

Items per page, and the quantity the call is billed on. Callers needing more paginate with cursor; extended per-call ceilings are available to entitled organizations. When omitted, the route's own page size is used and billed: 20, or 120 with timelineMode, or 200 for an entitled deep crawl, never above the caller's ceiling. A value above what the chosen route can return (100 without timelineMode or deep, 200 with timelineMode) is refused.

Required range: 1 <= x <= 100
knownTweetIds
string[]

IDs already stored by an incremental caller; a wholly known page ends the sync.

Maximum array length: 1000

Response

X profile scrape completed and returned a terminal response.

data
object
required