X (Twitter)

X (Twitter) Profile & Tweets Scraper

Extracts public X (Twitter) timelines by username — tweet text, URL, creation time, retweet, like and reply counts, retweet and reply flags, and the author’s profile including display name, verification status and follower and following counts.

Run on Apify1,177 userson Apify, measured 2026-08-24

What it extracts

Every field below comes from the Actor’s published dataset schema.

FieldDescriptionType
usernameUsernametext
profile_urlProfile URLlink
tweet_urlTweet URLlink
textTweettext
created_atDatedate
idTweet IDtext
retweet_countRetweetsnumber
favorite_countLikesnumber
reply_countRepliesnumber
is_retweetIs Retweetboolean
is_replyIs Replyboolean
user.screen_nameUser Handletext
user.nameUser Nametext
user.verifiedVerifiedboolean
user.followers_countFollowersnumber
user.following_countFollowingnumber
mediaMediaarray

Input parameters

Generated from the Actor’s input schema — the same fields the Apify console shows.

ParameterTypeRequiredDescription
usernamesarrayRequiredTwitter usernames (without @) or profile URLs whose timelines you want to retrieve
countintegerOptionalMaximum number of tweets to retrieve (default: 20)
includeRepliesbooleanOptionalWhether to include replies in the timeline
includeRetweetsbooleanOptionalWhether to include retweets in the timeline
proxyConfigurationobjectOptionalProxy settings for avoiding rate limits

API access

Run this Actor from your own code over the Apify API.

Inputjson
{
  "usernames": [
    "elonmusk",
    "https://x.com/puma"
  ]
}
REST — run and get resultsbash
curl -X POST \
  "https://api.apify.com/v2/acts/logical_scrapers~x-twitter-user-profile-tweets-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"usernames":["elonmusk","https://x.com/puma"]}'
JavaScript — apify-clientjavascript
import { ApifyClient } from 'apify-client'

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' })

const run = await client.actor('logical_scrapers~x-twitter-user-profile-tweets-scraper').call({
  "usernames": [
    "elonmusk",
    "https://x.com/puma"
  ]
})

const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
Python — apify-clientpython
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("logical_scrapers~x-twitter-user-profile-tweets-scraper").call(run_input={
    "usernames": [
        "elonmusk",
        "https://x.com/puma",
    ],
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

Runs are executed on Apify. Create an API token in your Apify account, then call the Actor over REST or with the official client for your language. The same input object works in the Apify console, so you can test interactively before automating.

Use cases

Competitor and brand monitoring

Track what a set of accounts is posting and how much engagement each post attracts.

Influencer evaluation

Assess an account by follower count, verification and actual per-post engagement rather than follower count alone.

Trend and topic research

Collect timelines across a set of accounts to study how a topic is discussed.

Dataset building

Assemble structured timeline data for analysis, with configurable inclusion of replies and retweets.

Pricing

Pay per event — you are charged for each successfully scraped result item.

Current rates are published on the Apify listing and can change, so they are not duplicated here. See pricing on Apify

Reliability

99.4% run success rate

Measured across all public Goldmine Actors on Apify, 2026-08-24. This is an account-level figure, not a per-Actor benchmark — per-Actor speed and completeness benchmarks are not yet published. Source.

Limitations

What this Actor does not do, so you can tell before you run it whether it fits.

  • Public accounts only, and it operates in guest mode — protected accounts return nothing.
  • Up to 100 tweets per user per run (`count`, default 20).
  • Returns timeline posts by user. It does not run keyword or hashtag search.
  • Guest-mode access is rate-limited; `batchSize` and `delayBetweenRequests` exist to pace runs, and raising throughput raises the failure rate.

Frequently asked questions

Does it need X API keys or a login?

No. It works in guest mode without authentication, so no API key or account credentials are required.

What input does it take?

An array of usernames or profile URLs. Bare handles, @handles, and full x.com or twitter.com URLs are all accepted.

Can I exclude replies and retweets?

Yes. `includeReplies` defaults to false and `includeRetweets` defaults to true; set either to control what lands in the dataset.

Used for

Workflows this Actor is part of, and the other scrapers it chains with.

Field and input tables are generated from this Actor's published schemas. Usage figures measured 2026-08-24 from the Apify listing.