Scrape a user's profile tweets
curl --request GET \
--url https://api.scraperize.com/v1/twitter/user-tweets \
--header 'x-api-key: <api-key>'import requests
url = "https://api.scraperize.com/v1/twitter/user-tweets"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.scraperize.com/v1/twitter/user-tweets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.scraperize.com/v1/twitter/user-tweets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.scraperize.com/v1/twitter/user-tweets"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scraperize.com/v1/twitter/user-tweets")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scraperize.com/v1/twitter/user-tweets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"tweets": [
{
"id": "2010751592346030461",
"url": "https://x.com/thedankoe/status/2010751592346030461",
"text": "https://t.co/7l7Jef99QZ",
"isLongForm": false,
"lang": null,
"createdAtMs": 1768235512000,
"createdAt": "2026-01-12T16:31:52.000Z",
"counts": {
"likes": 352382,
"retweets": 56145,
"replies": 9229,
"quotes": null,
"bookmarks": 927581
},
"views": "239906974",
"media": [],
"mentions": [],
"urls": [
{
"url": "https://t.co/7l7Jef99QZ",
"expandedUrl": "http://x.com/i/article/2010742786430021632",
"displayUrl": "x.com/i/article/2010…"
}
],
"hashtags": [],
"cashtags": [],
"card": {
"legacy": null,
"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 lives in the completely wrong way. They create these resolutions because everyone",
"coverImage": {
"url": "https://pbs.twimg.com/media/G-efypCbQAEEi8a.jpg",
"width": 1456,
"height": 582
},
"fullText": null,
"raw": {
"article_results": {
"result": {
"title": "How to fix your entire life in 1 day",
"preview_text": "If you're anything like me, you think new years resolutions are stupid.\nBecause most people go about changing their lives in the completely wrong way. They create these resolutions because everyone",
"cover_media_results": {
"result": {
"media_info": {
"original_img_height": 582,
"original_img_url": "https://pbs.twimg.com/media/G-efypCbQAEEi8a.jpg",
"original_img_width": 1456
},
"id": "QXBpTWVkaWE6DAAFCgABG+efypCbQAEKAAIAAAAAD0o7MAAA"
},
"id": "QXBpTWVkaWFSZXN1bHRzOgwABQoAARvnn8qQm0ABCgACAAAAAA9KOzAAAA=="
},
"id": "QXJ0aWNsZUVudGl0eToyMDEwNzQyNzg2NDMwMDIxNjMy",
"rest_id": "2010742786430021632"
},
"id": "QXJ0aWNsZUVudGl0eVJlc3VsdHM6MjAxMDc0Mjc4NjQzMDAyMTYzMg=="
}
}
},
"isReply": false,
"replyToTweetId": null,
"replyToUserId": null,
"isQuote": false,
"quotedTweetId": null,
"quotedTweet": null,
"possiblySensitive": false,
"conversationControl": null,
"editTweetIds": null,
"place": null,
"isPinned": true
},
{
"id": "2099154092153008400",
"url": "https://x.com/thedankoe/status/2099154092153008400",
"text": "You don't need a PhD in a topic before you can start doing it. You don't need to watch 10 YouTube videos, 20 podcasts, and read 5 books before you start.\n\nThat only gets you stuck in a cycle of mental masturbation and feeling like you never know enough.\n\nMost people should start learning only after they've started doing the thing.",
"isLongForm": true,
"lang": null,
"createdAtMs": 1789312310000,
"createdAt": "2026-09-13T15:11:50.000Z",
"counts": {
"likes": 5897,
"retweets": 675,
"replies": 290,
"quotes": null,
"bookmarks": 2106
},
"views": "235284",
"media": [],
"mentions": [],
"urls": [],
"hashtags": [],
"cashtags": [],
"card": null,
"communityNote": null,
"article": null,
"isReply": false,
"replyToTweetId": null,
"replyToUserId": null,
"isQuote": false,
"quotedTweetId": null,
"quotedTweet": null,
"possiblySensitive": null,
"conversationControl": null,
"editTweetIds": null,
"place": null,
"isPinned": false
},
{
"id": "2098813973714149757",
"url": "https://x.com/thedankoe/status/2098813973714149757",
"text": "https://t.co/LalU5XENsk",
"isLongForm": false,
"lang": null,
"createdAtMs": 1789231220000,
"createdAt": "2026-09-12T16:40:20.000Z",
"counts": {
"likes": 20250,
"retweets": 3140,
"replies": 427,
"quotes": null,
"bookmarks": 29483
},
"views": "4495696",
"media": [],
"mentions": [],
"urls": [
{
"url": "https://t.co/LalU5XENsk",
"expandedUrl": "https://x.com/i/article/2098813570234613760",
"displayUrl": "x.com/i/article/2098…"
}
],
"hashtags": [],
"cashtags": [],
"card": {
"legacy": null,
"id": "Q2FyZDpodHRwczovL3QuY28vTGFsVTVYRU5zaw=="
},
"communityNote": null,
"article": {
"id": "2098813570234613760",
"title": "You need to be delusional if you want to succeed",
"previewText": "Tell me if any of these sound like you:\n1) You feel like you’ve been lied to about what a good life looks like.\nYou’re pursuing a goal that sounds nice when you mention it at dinner with grandma. Or a",
"coverImage": {
"url": "https://pbs.twimg.com/media/HSB74qJbAAA1Cb5.jpg",
"width": 1920,
"height": 768
},
"fullText": null,
"raw": {
"article_results": {
"result": {
"title": "You need to be delusional if you want to succeed",
"preview_text": "Tell me if any of these sound like you:\n1) You feel like you’ve been lied to about what a good life looks like.\nYou’re pursuing a goal that sounds nice when you mention it at dinner with grandma. Or a",
"cover_media_results": {
"result": {
"media_info": {
"original_img_height": 768,
"original_img_url": "https://pbs.twimg.com/media/HSB74qJbAAA1Cb5.jpg",
"original_img_width": 1920
},
"id": "QXBpTWVkaWE6DAAFCgABHSB74qJbAAAKAAIAAAAAD0o7MAAA"
},
"id": "QXBpTWVkaWFSZXN1bHRzOgwABQoAAR0ge+KiWwAACgACAAAAAA9KOzAAAA=="
},
"id": "QXJ0aWNsZUVudGl0eToyMDk4ODEzNTcwMjM0NjEzNzYw",
"rest_id": "2098813570234613760"
},
"id": "QXJ0aWNsZUVudGl0eVJlc3VsdHM6MjA5ODgxMzU3MDIzNDYxMzc2MA=="
}
}
},
"isReply": false,
"replyToTweetId": null,
"replyToUserId": null,
"isQuote": false,
"quotedTweetId": null,
"quotedTweet": null,
"possiblySensitive": false,
"conversationControl": null,
"editTweetIds": null,
"place": null,
"isPinned": false
}
],
"tweetCount": 5,
"fetchedAt": "2026-09-14T12:12:54.089Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key required — pass it in the `x-api-key` header.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "This request costs 1 credit, but your balance is 0. Top up to continue.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "The requested content was not found (it may not exist, be deleted, or be private).",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"details": [
{
"path": "url",
"message": "Required"
}
]
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded — max 100 requests per 60s. Retry in ~30s.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "UPSTREAM_BLOCKED",
"message": "The source was temporarily unavailable. Please try again shortly.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}Twitter
Scrape a user's profile tweets
Fetches a public profile (https://x.com/<handle>, logged-out) and returns the user’s tweets in display order (pinned first, then newest → oldest). Strictly tweet details — no user/author objects. Returns the batch present on the initial profile load. Set trim=true for a lightweight response.
GET
/
v1
/
twitter
/
user-tweets
Scrape a user's profile tweets
curl --request GET \
--url https://api.scraperize.com/v1/twitter/user-tweets \
--header 'x-api-key: <api-key>'import requests
url = "https://api.scraperize.com/v1/twitter/user-tweets"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.scraperize.com/v1/twitter/user-tweets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.scraperize.com/v1/twitter/user-tweets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.scraperize.com/v1/twitter/user-tweets"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scraperize.com/v1/twitter/user-tweets")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scraperize.com/v1/twitter/user-tweets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"tweets": [
{
"id": "2010751592346030461",
"url": "https://x.com/thedankoe/status/2010751592346030461",
"text": "https://t.co/7l7Jef99QZ",
"isLongForm": false,
"lang": null,
"createdAtMs": 1768235512000,
"createdAt": "2026-01-12T16:31:52.000Z",
"counts": {
"likes": 352382,
"retweets": 56145,
"replies": 9229,
"quotes": null,
"bookmarks": 927581
},
"views": "239906974",
"media": [],
"mentions": [],
"urls": [
{
"url": "https://t.co/7l7Jef99QZ",
"expandedUrl": "http://x.com/i/article/2010742786430021632",
"displayUrl": "x.com/i/article/2010…"
}
],
"hashtags": [],
"cashtags": [],
"card": {
"legacy": null,
"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 lives in the completely wrong way. They create these resolutions because everyone",
"coverImage": {
"url": "https://pbs.twimg.com/media/G-efypCbQAEEi8a.jpg",
"width": 1456,
"height": 582
},
"fullText": null,
"raw": {
"article_results": {
"result": {
"title": "How to fix your entire life in 1 day",
"preview_text": "If you're anything like me, you think new years resolutions are stupid.\nBecause most people go about changing their lives in the completely wrong way. They create these resolutions because everyone",
"cover_media_results": {
"result": {
"media_info": {
"original_img_height": 582,
"original_img_url": "https://pbs.twimg.com/media/G-efypCbQAEEi8a.jpg",
"original_img_width": 1456
},
"id": "QXBpTWVkaWE6DAAFCgABG+efypCbQAEKAAIAAAAAD0o7MAAA"
},
"id": "QXBpTWVkaWFSZXN1bHRzOgwABQoAARvnn8qQm0ABCgACAAAAAA9KOzAAAA=="
},
"id": "QXJ0aWNsZUVudGl0eToyMDEwNzQyNzg2NDMwMDIxNjMy",
"rest_id": "2010742786430021632"
},
"id": "QXJ0aWNsZUVudGl0eVJlc3VsdHM6MjAxMDc0Mjc4NjQzMDAyMTYzMg=="
}
}
},
"isReply": false,
"replyToTweetId": null,
"replyToUserId": null,
"isQuote": false,
"quotedTweetId": null,
"quotedTweet": null,
"possiblySensitive": false,
"conversationControl": null,
"editTweetIds": null,
"place": null,
"isPinned": true
},
{
"id": "2099154092153008400",
"url": "https://x.com/thedankoe/status/2099154092153008400",
"text": "You don't need a PhD in a topic before you can start doing it. You don't need to watch 10 YouTube videos, 20 podcasts, and read 5 books before you start.\n\nThat only gets you stuck in a cycle of mental masturbation and feeling like you never know enough.\n\nMost people should start learning only after they've started doing the thing.",
"isLongForm": true,
"lang": null,
"createdAtMs": 1789312310000,
"createdAt": "2026-09-13T15:11:50.000Z",
"counts": {
"likes": 5897,
"retweets": 675,
"replies": 290,
"quotes": null,
"bookmarks": 2106
},
"views": "235284",
"media": [],
"mentions": [],
"urls": [],
"hashtags": [],
"cashtags": [],
"card": null,
"communityNote": null,
"article": null,
"isReply": false,
"replyToTweetId": null,
"replyToUserId": null,
"isQuote": false,
"quotedTweetId": null,
"quotedTweet": null,
"possiblySensitive": null,
"conversationControl": null,
"editTweetIds": null,
"place": null,
"isPinned": false
},
{
"id": "2098813973714149757",
"url": "https://x.com/thedankoe/status/2098813973714149757",
"text": "https://t.co/LalU5XENsk",
"isLongForm": false,
"lang": null,
"createdAtMs": 1789231220000,
"createdAt": "2026-09-12T16:40:20.000Z",
"counts": {
"likes": 20250,
"retweets": 3140,
"replies": 427,
"quotes": null,
"bookmarks": 29483
},
"views": "4495696",
"media": [],
"mentions": [],
"urls": [
{
"url": "https://t.co/LalU5XENsk",
"expandedUrl": "https://x.com/i/article/2098813570234613760",
"displayUrl": "x.com/i/article/2098…"
}
],
"hashtags": [],
"cashtags": [],
"card": {
"legacy": null,
"id": "Q2FyZDpodHRwczovL3QuY28vTGFsVTVYRU5zaw=="
},
"communityNote": null,
"article": {
"id": "2098813570234613760",
"title": "You need to be delusional if you want to succeed",
"previewText": "Tell me if any of these sound like you:\n1) You feel like you’ve been lied to about what a good life looks like.\nYou’re pursuing a goal that sounds nice when you mention it at dinner with grandma. Or a",
"coverImage": {
"url": "https://pbs.twimg.com/media/HSB74qJbAAA1Cb5.jpg",
"width": 1920,
"height": 768
},
"fullText": null,
"raw": {
"article_results": {
"result": {
"title": "You need to be delusional if you want to succeed",
"preview_text": "Tell me if any of these sound like you:\n1) You feel like you’ve been lied to about what a good life looks like.\nYou’re pursuing a goal that sounds nice when you mention it at dinner with grandma. Or a",
"cover_media_results": {
"result": {
"media_info": {
"original_img_height": 768,
"original_img_url": "https://pbs.twimg.com/media/HSB74qJbAAA1Cb5.jpg",
"original_img_width": 1920
},
"id": "QXBpTWVkaWE6DAAFCgABHSB74qJbAAAKAAIAAAAAD0o7MAAA"
},
"id": "QXBpTWVkaWFSZXN1bHRzOgwABQoAAR0ge+KiWwAACgACAAAAAA9KOzAAAA=="
},
"id": "QXJ0aWNsZUVudGl0eToyMDk4ODEzNTcwMjM0NjEzNzYw",
"rest_id": "2098813570234613760"
},
"id": "QXJ0aWNsZUVudGl0eVJlc3VsdHM6MjA5ODgxMzU3MDIzNDYxMzc2MA=="
}
}
},
"isReply": false,
"replyToTweetId": null,
"replyToUserId": null,
"isQuote": false,
"quotedTweetId": null,
"quotedTweet": null,
"possiblySensitive": false,
"conversationControl": null,
"editTweetIds": null,
"place": null,
"isPinned": false
}
],
"tweetCount": 5,
"fetchedAt": "2026-09-14T12:12:54.089Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key required — pass it in the `x-api-key` header.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "This request costs 1 credit, but your balance is 0. Top up to continue.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "The requested content was not found (it may not exist, be deleted, or be private).",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"details": [
{
"path": "url",
"message": "Required"
}
]
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded — max 100 requests per 60s. Retry in ~30s.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "UPSTREAM_BLOCKED",
"message": "The source was temporarily unavailable. Please try again shortly.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}Authorizations
Your API key. Send it in the x-api-key header (or Authorization: Bearer <key>). Create and manage keys from your dashboard.
Query Parameters
User handle WITHOUT the @ symbol, e.g. thedankoe.
Return trimmed-down tweets (essential fields only).
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.
Available options:
1d, 3d, 7d, 14d, 30d