X (Twitter) Profile & Post Scraper – Bio, Followers, Posts avatar

X (Twitter) Profile & Post Scraper – Bio, Followers, Posts

Under maintenance

Pricing

$1.50 / 1,000 result scrapeds

Go to Apify Store
X (Twitter) Profile & Post Scraper – Bio, Followers, Posts

X (Twitter) Profile & Post Scraper – Bio, Followers, Posts

Under maintenance

X (Twitter) Scraper for public profiles and posts without login or API key: bio, follower/following/post counts, avatar, banner, plus the latest posts X shows (likes, reposts, replies, views) and single posts with visible replies. Pay per result; failed sources are free error rows.

Pricing

$1.50 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Ani Björkström

Ani Björkström

Maintained by Community

Actor stats

1

Bookmarked

79

Total users

1

Monthly active users

18 days ago

Last modified

Share

X (Twitter) Profile & Post Scraper – Bio, Followers, Latest Posts

X (Twitter) Scraper for public profiles and posts, with no X account, no login and no developer API key. Give it usernames, profile URLs or post URLs and get clean JSON rows: profile bio, follower and following counts, post count, avatar and banner, plus the latest posts X shows publicly, with likes, reposts, replies, quotes, bookmarks and views. You pay only for rows delivered. Sources that fail produce a free error row explaining why.

What this X (Twitter) Scraper does today

X (formerly Twitter) shows logged-out visitors less than it used to. This scraper only claims what works without a login right now:

SourceExampleWhat you get
Profilehttps://x.com/NASA or NASA in usernames1 profile row + the latest posts X shows on the public profile (typically about 5, including a pinned post)
Single posthttps://x.com/paulg/status/2106663759221543263The post + the replies X displays under it to logged-out visitors
Search / hashtagsearchQueries, https://x.com/hashtag/AINeeds an X login. You get a free error row, not tweets
Followers / following / lists / likeshttps://x.com/NASA/followersNeeds an X login. You get a free error row

x.com and twitter.com links both work. /with_replies profile URLs are treated as profiles.

Output fields

Profile rows (type: "profile")

FieldDescription
userId, username, nameX account ID, handle and display name
bio, location, websiteProfile text, with t.co links expanded
followerCount, followingCount, tweetCountPublic counters
verified, blueVerified, isPrivateAccount flags
createdAtAccount creation date (ISO 8601, UTC)
avatarUrl, bannerUrl, profileUrlImages and the canonical x.com URL

Post rows (type: "tweet")

FieldDescription
tweetId, tweetUrl, text, createdAt, languageThe post itself; long posts include their full text
likeCount, retweetCount, replyCount, quoteCount, bookmarkCount, viewCountEngagement
isReply, inReplyToTweetId, inReplyToUser, isQuote, quotedTweetThread and quote context
media, urls, hashtags, mentionsPhoto and video URLs, expanded links, entities
authorusername, name, blueVerified, followersCount, followingCount, avatarUrl, userId
scrapedAtWhen the row was collected

Error rows (type: "error") contain source, sourceType and a plain-English error. They are not charged.

Input

ParameterDescriptionDefault
directUrlsProfile URLs or post URLs[{"url": "https://x.com/elonmusk"}] (demo, ignored when you pass usernames or searchQueries)
usernamesHandles, with or without @[]
searchQueriesKept for compatibility. X requires login for search, so each query returns an error row[]
resultsLimitMaximum total rows (profiles + posts) per run100
tweetsPerSourceMaximum posts per profile50 (X usually shows fewer logged-out)
includeRepliesKeep reply posts from profilesfalse
minLikes, minRetweets, minViews, postedAfter, postedBefore, excludeReplies, excludeRetweetsPost filtersoff
proxyConfigurationOptional proxy. Residential is used automatically when availableauto

Example: several profiles

{
"usernames": ["NASA", "OpenAI", "paulg"],
"resultsLimit": 50
}

Example: a post and its visible replies

{
"directUrls": [{ "url": "https://x.com/paulg/status/2106663759221543263" }]
}

Use cases

  • Marketing & growth teams – track follower counts and the latest posts of competitors and partners every day
  • Influencer research – vet creators by bio, audience size and engagement on recent posts
  • PR & comms – monitor what executives and brands posted most recently
  • Investors & analysts – log official company and founder accounts on a schedule
  • AI / RAG builders – feed fresh profile and post data into agents and LLM pipelines (flat JSON, MCP-ready)
  • Researchers – build longitudinal datasets of public account statistics

Pricing

Pay per event: you are charged per profile or post row delivered. Error rows are free. If a run delivers nothing, it ends as FAILED with the reason, so an empty run never looks successful. The current per-result price is shown on the Pricing tab.

Integrations

Use the Apify API, scheduled runs, webhooks, n8n, Make, Zapier, or the Apify MCP server for AI agents.

Python

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("nourishing_courier/x-scraper-pro").call(run_input={"usernames": ["NASA"]})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["type"], item.get("username") or item.get("text"))

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<APIFY_TOKEN>' });
const run = await client.actor('nourishing_courier/x-scraper-pro').call({ usernames: ['NASA'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

curl

curl -X POST "https://api.apify.com/v2/acts/nourishing_courier~x-scraper-pro/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \
-H "Content-Type: application/json" -d '{"usernames":["NASA"]}'

Limits & fair use

  • Logged-out view only. Profiles return about 5 latest posts, not the full timeline. Search, hashtags, followers, following, lists and likes need an X login, which this scraper does not use.
  • X can block individual IPs. A blocked or non-existent account becomes a free error row, and the run continues with the next source.
  • Only public data is collected. Respect X's terms and privacy law (e.g. GDPR) when you store or process personal data.

FAQ

Can I scrape X (Twitter) without login?

Yes, for public profiles and individual posts. Search, hashtags, followers and lists require login on X today, so they return an error row.

How many tweets do I get per profile?

As many as X shows logged-out visitors, which is typically about 5 recent posts (including a pinned post). For a deeper history, run the scraper on a schedule and collect posts over time.

Can I scrape X search results or hashtags?

Not without login. X redirects logged-out search and hashtag pages to its sign-in screen. Each query returns a free error row explaining this.

Can I get a user's followers list?

No. Follower and following pages require login. Follower and following counts are included in every profile row.

What happens if an account does not exist?

You get a free error row for that source and the run continues. If no source delivers anything, the run fails with a clear status message.

Does it work with n8n, Make or Zapier?

Yes. Use the Apify integration in those tools or call the API endpoint above.

Do I need an X API key or proxies?

No API key. Residential proxy is used automatically when your Apify plan has it. You can also set your own proxy.

What format is the output?

Flat JSON rows that you can export as JSON, CSV, Excel or XML from Apify.