X (Twitter) Scraper avatar

X (Twitter) Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
X (Twitter) Scraper

X (Twitter) Scraper

Scrapes public X (Twitter) profiles and tweets: follower, following and post counts, bios, recent tweets with engagement, media, hashtags and links — from profile URLs, handles or tweet IDs.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

Anyx Solutions

Anyx Solutions

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

banner

X (Twitter) Scraper

Turn public X (Twitter) profiles and posts into structured data — followers, bios, recent tweets, engagement and media.

The X (Twitter) Scraper reads public X profile pages and individual posts and returns clean JSON: account bios, follower/following/post counts, join dates, plus each account's most recent tweets with like, repost and reply counts, language, media, hashtags, mentions and links. Feed it profile URLs, handles or tweet IDs — no login, no API keys. Built for brand monitoring, influencer research, competitive analysis and social-listening pipelines.

⚡ Quick start

{
"startUrls": [{ "url": "https://x.com/vercel" }, { "url": "https://x.com/vercel/status/1683920951807971329" }],
"maxItems": 5
}

Handles and tweet IDs work without URLs:

{
"handles": ["nasa", "@vercel"],
"tweetIds": ["1683920951807971329"],
"maxItems": 5
}

🧩 Input

FieldTypeRequiredDefaultDescription
startUrlsarrayno—Public X (Twitter) profile or tweet URLs, e.g. https://x.com/vercel or https://x.com/vercel/status/1683920951807971329. twitter.com links work too.
handlesarrayno—Account handles to scrape as profiles, with or without the @. Each handle counts as its own start URL.
tweetIdsarrayno—Numeric tweet IDs to scrape individually. Full status URLs are accepted as well.
maxItemsintegerno5Maximum number of items (the profile plus its recent tweets) per start URL, handle or tweet ID.
proxyConfigurationobjectno{ "useApifyProxy": false }Apify proxy settings used for the run. Public pages load without a proxy by default.

At least one of startUrls, handles or tweetIds must be provided.

📤 Output

Every dataset item carries an itemType of profile or tweet. A profile URL or handle yields one profile item followed by the account's most recent tweets as tweet items (up to maxItems in total). A tweet URL or ID yields a single tweet item. Missing values are null.

Fields

FieldTypeDescription
itemTypestringprofile or tweet.
idstringProfile: opaque account ID. Tweet: the numeric tweet ID.
rest_idstringProfile only — numeric account ID.
namestringProfile only — display name.
screen_namestringProfile only — handle without the @.
descriptionstringProfile only — bio text.
locationstringProfile only — free-text location from the bio.
websitestringProfile only — website link from the bio.
profile_image_urlstringProfile only — avatar image URL.
created_atstringISO 8601 date the account joined (profile) or the tweet was posted (tweet).
followers_countnumberProfile only — follower count.
friends_countnumberProfile only — number of accounts followed.
statuses_countnumberProfile only — total number of posts.
urlstringCanonical x.com URL of the profile or tweet.
textstringTweet only — full post text.
langstringTweet only — ISO language code detected by X.
reply_countnumberTweet only — number of replies.
retweet_countnumberTweet only — number of reposts.
favorite_countnumberTweet only — number of likes.
view_countnumberTweet only — view count when X exposes it, otherwise null.
isReplybooleanTweet only — true when the post replies to another post.
inReplyToIdstringTweet only — ID of the post being replied to.
quotedTweetIdstringTweet only — ID of the quoted post, if any.
mediaarrayTweet only — attached media as { type, url, width, height } where type is photo or video.
hashtagsarrayTweet only — hashtags without the #.
mentionsarrayTweet only — mentioned handles without the @.
urlsarrayTweet only — expanded links in the post.
userobjectTweet only — author as { id, name, screen_name, url, profile_image_url, verified }.

💡 Use cases

  • Brand and competitor monitoring — track follower growth and what competitor accounts post, on a schedule.
  • Influencer research — pull bios, audience size and recent engagement for a list of handles in one run.
  • Social listening — archive specific posts with their like, repost and reply counts as they evolve.
  • Content analytics — collect an account's recent tweets with media, links and hashtags for reporting.
  • Lead enrichment — attach website, location and audience size to a list of X handles.

❓ FAQ

  • Does it need an X account or API key? No. It reads only what X serves publicly to logged-out visitors.
  • Can it scrape a full timeline, search results or hashtags? No. X shows logged-out visitors a profile's roughly 20 most recent posts; search, hashtag pages, replies, likes and followers lists require a login and are not supported.
  • Why does a profile return fewer tweets than maxItems? maxItems covers the profile item plus its recent tweets, and X exposes at most ~20 recent posts per account publicly. Protected (private), suspended and post-less accounts have no public timeline and return no items.
  • Why is view_count often null? X exposes view counts only on some server-rendered pages; when they are not available the field is null rather than a guess.
  • Which URLs are supported? https://x.com/<handle> (also twitter.com) and https://x.com/<handle>/status/<id>. Anything else is rejected at start.
  • Do I need a proxy? Not by default. If runs start failing with blocked responses, enable Apify Proxy in proxyConfiguration.

🔗 More scrapers by Anyx

🤝 Anyx Solutions

We build custom scrapers and data-extraction pipelines.