Skip to content
scrapeatlas.Dashboard

Get an X (Twitter) tweet

Try in Playground

Retrieve one public tweet by permalink: the raw TweetResultByRestId tweet object with its author, text, entities, media, quoted or retweeted tweet, note text for long posts, engagement counters and views.

GET/v1/twitter/tweetx-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
2
urlstringrequiredquery

x.com or twitter.com status permalink (https://x.com/{handle}/status/{id}, /i/web/status/{id} or /i/status/{id}); the numeric ID identifies the tweet, the handle in the path is not checked. Query strings and fragments are ignored.

max 2048 chars

Examplehttps://x.com/example/status/1000000000000000001
trimenumquery

true returns rest_id, views, source and legacy only.

one of: true, false

Response fields
23
__typenamestring

Always included.

rest_idstring

Always included.

Always included.

Always included.

core.user_results.resultobject

The author's user object as X embeds it in the pinned document (legacy identity layout with screen_name, name, counters and profile image).

Always included.

legacy.full_textstring

Always included.

legacy.id_strstring

Always included.

legacy.created_atstring

Always included.

legacy.user_id_strstring

Always included.

requestIdstring

Request correlation identifier.

HTTP attempts (guest activation plus GraphQL reads, including the shared retry), decoded bytes and duration for the operation.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable data is returned; inspect status and coverage for omissions.

statusenum

success, partial, failed, or challenged. HTTP 200 can be partial.

one of: success, partial

sourceUrlstring

Canonical x.com URL of the profile, tweet or community.

absolute HTTPS URL

fetchedAtstring

UTC retrieval time.

Complete means the pinned GraphQL document was returned without omitted entries; warnings name every skipped entry kind or cap.

coverage.sourcestring

Always included.

coverage.completeboolean

Always included.

coverage.warningsstring[]

Always included.

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
15
HTTPfailure.codeMeaning
400invalid_requestMissing, duplicate, malformed or unsupported parameters, handles or URLs.
401unauthorizedInvalid API key.
404not_foundUnknown handle, tweet or community.
403restricted_pageThe account is suspended or unavailable, or the tweet is withheld, protected or age-restricted for logged-out visitors.
429upstream_rate_limitedX rate limited guest activation or the GraphQL read.
502upstream_challengedX refused the guest token or the request (status challenged).
502operation_unavailableX no longer serves the pinned persisted query for this operation.
502unsafe_redirectX answered the API request with a redirect.
502unsupported_pageThe GraphQL result is missing, mismatched or structurally unsupported.
502response_too_largeThe response exceeded 4 MiB.
502payload_too_complexThe response exceeded the JSON depth or node limits.
502request_limitThe upstream request budget was exhausted.
502upstream_errorNetwork failure or HTTP 5xx after the single retry.
503busyAll retrieval slots are busy.
504timeoutThe 20-second deadline elapsed.