Scraperize
Twitter / X

Twitter / X User tweets API

To get a profile's tweets in display order from Twitter / X, call GET /v1/twitter/user-tweets?handle=… with your API key. You get clean JSON back.

GET/v1/twitter/user-tweets
curl "https://api.scraperize.com/v1/twitter/user-tweets?handle=thedankoe" \
  -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

handleRequired
User handle WITHOUT the @ symbol, e.g. thedankoe.
trimOptional
Return trimmed-down tweets (essential fields only).
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": {
    "tweets": [
      {
        "id": "2010751592346030461",
        "url": "https://x.com/thedankoe/status/2010751592346030461",
        "text": "https://t.co/7l7Jef99QZ",
        "isLongForm": false,
        "lang": "zxx",
        "createdAtMs": 1768235512000,
        "createdAt": "2026-01-12T16:31:52.000Z",
        "counts": {
          "likes": 357792,
          "retweets": 57448,
          "replies": 9317,
          "quotes": 15941,
          "bookmarks": 940591
        },
        "views": "246051197",
        "media": [],
        "mentions": [],
        "urls": [
          {
            "url": "https://t.co/7l7Jef99QZ",
            "expandedUrl": "http://x.com/i/article/2010742786430021632",
            "displayUrl": "x.com/i/article/2010…"
          }
        ],
        "hashtags": [],
        "cashtags": [],
        "card": {
          "id": "Q2FyZDpodHRwczovL3QuY28vN2w3SmVmOTlRWg=="
        },
        "communityNote": null,
        "article": {
          "id": "2010742786430021632",
          "title": "How to fix your entire life in 1 day",
          "previewText": "If you're anything like me, you think new years resolutions are stupid.\nBecause most people go about changing their live…",
          "coverImage": {
            "url": "https://pbs.twimg.com/media/G-efypCbQAEEi8a.jpg",
            "width": 1456,
            "height": 582
          },
          "fullText": null,
          "raw": {
            "article_results": {
              "id": "QXJ0aWNsZUVudGl0eVJlc3VsdHM6MjAxMDc0Mjc4NjQzMDAyMTYzMg==",
              "result": {
                "__isArticleResult": "ArticleEntity",
                "cover_media_results": {
                  "id": "QXBpTWVkaWFSZXN1bHRzOgwABQoAARvnn8qQm0ABCgACAAAAAA9KOzAAAA==",
                  "result": {
                    "id": "QXBpTWVkaWE6DAAFCgABG+efypCbQAEKAAIAAAAAD0o7MAAA",
                    "media_info": {
                      "original_img_height": 582,
                      "original_img_url": "https://pbs.twimg.com/media/G-efypCbQAEEi8a.jpg",
                      "original_img_width": 1456
                    }
                  }
                },
                "id": "QXJ0aWNsZUVudGl0eToyMDEwNzQyNzg2NDMwMDIxNjMy",
                "preview_text": "If you're anything like me, you think new years resolutions are stupid.\nBecause most people go about changing their live…",
                "rest_id": "2010742786430021632",
                "title": "How to fix your entire life in 1 day"
              }
            }
          }
        },
        "isReply": false,
        "replyToTweetId": null,
        "replyToUserId": null,
        "isQuote": false,
        "quotedTweetId": null,
        "quotedTweet": null,
        "possiblySensitive": false,
        "conversationControl": null,
        "editTweetIds": [
          "2010751592346030461"
        ],
        "place": null,
        "isPinned": true
      }
    ],
    "tweetCount": 5,
    "fetchedAt": "2026-10-05T14:42:27.369Z"
  },
  "meta": {
    "requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
    "creditsCharged": 1,
    "creditsRemaining": 4999,
    "cached": false
  }
}

A real response, shortened to one item per list.

More Twitter / X endpoints

FAQ

Twitter / X User tweets API questions

How much does the Twitter / X User tweets 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 User tweets API

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