Scraperize
Twitter / X

Twitter / X Tweet API

To get a single public tweet from Twitter / X, call GET /v1/twitter/tweet?url=… with your API key. You get clean JSON back.

GET/v1/twitter/tweet
curl "https://api.scraperize.com/v1/twitter/tweet?url=https://x.com/honour_can_code/status/2092616549722968274" \
  -H "x-api-key: YOUR_API_KEY"
Cost
1 credit / call
Only successful calls are charged. Errors are free.
Pagination
Single response
Everything comes back in one call.
Caching
0 credits
Set cache_max_age to reuse a recent result for free.
Rate limit
Per team / minute
Over the limit: 429 with a Retry-After header.

Parameters

urlRequired
Public tweet permalink, e.g. https://x.com/user/status/1234567890
trimOptional
Return a trimmed-down response: only the focal tweet with essential fields, and no reply thread (replies/replyCount are omitted).
cache_max_ageOptional
Optional. Return a cached result if one this age or newer exists — served for 0 credits with meta.cached=true and meta.cachedAt. Otherwise a fresh scrape runs (1 credit) and refreshes the cache. Omit to always scrape fresh.One of 5 values.

Send your key in the x-api-key header. Full API reference

Example response

200 OK · application/json
{
  "data": {
    "focalTweet": {
      "id": "2092616549722968274",
      "url": "https://x.com/honour_can_code/status/2092616549722968274",
      "text": "Global talent meets Global market \nand realized they cannot compete\n\nnow they’re back to local market",
      "isLongForm": false,
      "lang": "en",
      "createdAtMs": 1787753639000,
      "createdAt": "2026-08-26T14:13:59.000Z",
      "counts": {
        "likes": 1888,
        "retweets": 361,
        "replies": 83,
        "quotes": 55,
        "bookmarks": 81
      },
      "views": "111232",
      "author": {
        "id": "1551091092468162560",
        "name": "Robinson Honour",
        "screenName": "honour_can_code",
        "url": "https://x.com/honour_can_code",
        "bio": "building @pxxl_space",
        "avatarUrl": "https://pbs.twimg.com/profile_images/1930817536863375361/OWkQS_oM_normal.jpg",
        "avatarUrlHd": "https://pbs.twimg.com/profile_images/1930817536863375361/OWkQS_oM_400x400.jpg",
        "followers": 13121,
        "following": 1930,
        "tweetCount": 16262,
        "verified": true,
        "protected": false,
        "profileImageShape": "Circle",
        "professionalCategory": null
      },
      "media": [],
      "mentions": [],
      "urls": [],
      "hashtags": [],
      "cashtags": [],
      "card": null,
      "communityNote": null,
      "article": null,
      "isReply": false,
      "replyToTweetId": null,
      "replyToUserId": null,
      "isQuote": false,
      "quotedTweetId": null,
      "quotedTweet": null,
      "conversationControl": null,
      "editTweetIds": [
        "2092616549722968274"
      ],
      "place": null
    },
    "replies": [
      {
        "id": "2092648660848783643",
        "url": "https://x.com/jayhemz/status/2092648660848783643",
        "text": "@honour_can_code I go lie for you?",
        "isLongForm": false,
        "lang": "en",
        "createdAtMs": 1787761294000,
        "createdAt": "2026-08-26T16:21:34.000Z",
        "counts": {
          "likes": 85,
          "retweets": 2,
          "replies": 6,
          "quotes": 0,
          "bookmarks": 1
        },
        "views": "6566",
        "author": {
          "id": "1625981691058704384",
          "name": "Johnmark Obiefuna",
          "screenName": "jayhemz",
          "url": "https://x.com/jayhemz",
          "bio": null,
          "avatarUrl": "https://pbs.twimg.com/profile_images/2062452288128442368/mEjipPZ9_normal.jpg",
          "avatarUrlHd": "https://pbs.twimg.com/profile_images/2062452288128442368/mEjipPZ9_400x400.jpg",
          "followers": 11876,
          "following": 2746,
          "tweetCount": 17000,
          "verified": true,
          "protected": false,
          "profileImageShape": "Circle",
          "professionalCategory": null
        },
        "media": [],
        "mentions": [
          {
            "screenName": "honour_can_code",
            "id": "1551091092468162560",
            "indices": [
              0,
              16
            ]
          }
        ],
        "urls": [],
        "hashtags": [],
        "cashtags": [],
        "card": null,
        "communityNote": null,
        "article": null,
        "isReply": true,
        "replyToTweetId": "2092616549722968274",
        "replyToUserId": "1551091092468162560",
        "isQuote": false,
        "quotedTweetId": null,
        "quotedTweet": null,
        "conversationControl": null,
        "editTweetIds": [
          "2092648660848783643"
        ],
        "place": null
      }
    ],
    "replyCount": 3,
    "fetchedAt": "2026-10-05T14:42:24.932Z"
  },
  "meta": {
    "requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
    "creditsCharged": 1,
    "creditsRemaining": 4999,
    "cached": false
  }
}

A real response, shortened to one item per list.

FAQ

Twitter / X Tweet API questions

How much does the Twitter / X Tweet API cost?

1 credit per successful call. Errors and cached results are free, and new accounts start with 100 free credits, no card required. See pricing.

Do I need a Twitter / X account or API key?

No. You only need a Scraperize API key, sent in the x-api-key header. Scraperize returns publicly available data. No Twitter / X login or developer app is needed.

How fresh is the data?

Each call fetches the data live. To trade freshness for cost, pass cache_max_age (e.g. 1h, 1d) to get a recent cached result instantly for 0 credits.

Where are the full parameters and response fields?

In the API reference, with every parameter, field and error.

Try the Twitter / X Tweet API

Grab your key and 100 free credits, no card required, and run this call in minutes.