X (Twitter) User Tweets Scraper avatar

X (Twitter) User Tweets Scraper

Pricing

from $3.00 / 1,000 tweet scrapeds

Go to Apify Store
X (Twitter) User Tweets Scraper

X (Twitter) User Tweets Scraper

Scrape public tweets from X (Twitter) user profiles by handle or URL, with text, engagement, media and hashtags. No login or cookies needed.

Pricing

from $3.00 / 1,000 tweet scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

2

Monthly active users

a day ago

Last modified

Share

X (Twitter) User Tweets Scraper

This Apify Actor helps analysts, operators, and AI agents collect public tweets from X/Twitter user profiles by handle or profile URL. It accepts an array of usernames, where each item can be a handle such as apify or a profile URL such as https://x.com/openai. Each returned record represents one tweet, so one dataset item maps to one tweet from one source profile. The most useful fields are the tweet URL, author handle, tweet text, engagement counts, creation time, and provider name. The outcome is a structured dataset of public tweets that can feed monitoring, research, enrichment, and agent workflows through Apify and Apify MCP.

Best fit and connected workflows

This Actor fits workflows centered on specific X/Twitter accounts and time-bounded tweet collection. It is a natural choice when the starting point is a known handle, a profile URL, or a short list of accounts that need tweet-level extraction.

Common routing patterns include:

  • Account monitoring for marketing, product, or competitive research
  • Lead and prospect review before outreach
  • Content analysis for post format, tone, and engagement patterns
  • Agent workflows that need a tool for public profile tweet retrieval through Apify MCP
  • Dataset enrichment pipelines that join tweet content with CRM, notes, or analytics

Focused standalone workflow

X (Twitter) User Tweets Scraper is designed as a focused standalone workflow.

Practical scenario

Maya, a research analyst, has a list of two public X profiles from a launch watchlist. She enters the handles, limits the scrape to recent tweets, and keeps replies excluded for a cleaner view of main posts. The returned dataset includes each tweet's URL, author handle, text, likes, retweets, replies, creation time, and provider. Maya uses those fields to identify which post formats attracted the strongest engagement and then passes the dataset to a reporting step for internal review.

Inputs

FieldTypeDefaultDescription
usernamesarray of strings-X/Twitter handles or full profile URLs, one item per profile
maxTweetsPerUserinteger50Maximum tweets to scrape per profile, up to 500
includeRetweetsbooleantrueInclude retweets in the returned dataset
includeRepliesbooleantrueInclude reply tweets in the returned dataset
startDatestring-Return tweets on or after this YYYY-MM-DD date
endDatestring-Return tweets on or before this YYYY-MM-DD date
minimumLikesinteger0Keep tweets with at least this many likes
minimumRetweetsinteger0Keep tweets with at least this many retweets
providerOrderstringThe default provider orderProvider routing order: the routing options listed in the input schema

Example input

{
"usernames": ["apify", "https://x.com/openai"],
"maxTweetsPerUser": 20,
"includeRetweets": false,
"includeReplies": true,
"startDate": "2026-01-01",
"minimumLikes": 10,
"minimumRetweets": 2
}

Output

The Actor writes tweet records to the default dataset. The dataset view is centered on these fields.

FieldTypeDescription
urlstringCanonical tweet URL
author_handlestringAuthor handle
textstringTweet text
like_countintegerLike count
retweet_countintegerRetweet count
reply_countintegerReply count
created_atstringTweet creation time
providerstringData provider that returned the record

Example record

{
"url": "https://x.com/apify/status/1825000000000000000",
"author_handle": "apify",
"text": "Announcing our new MCP-ready Actor suite for social data workflows.",
"like_count": 312,
"retweet_count": 48,
"reply_count": 21,
"created_at": "Tue Aug 19 12:00:00 +0000 2026"
}

How it works

This Actor uses provider-backed retrieval for public tweet data from X/Twitter profiles. The live contract shows two provider routes, the primary and fallback data providers, with a configurable providerOrder input that sets which provider is tried first. The manifest also lists cookieless operation with no login and no cookies required. The dataset view stores one tweet per row and exposes a table shaped around tweet URL, author, text, engagement counts, creation time, and provider.

Pricing

Startup billing and empty runs

The apify-actor-start event costs $0.00005 per startup unit. Apify charges one startup unit per GB of allocated memory, with a minimum of one unit, so a 2 GB run incurs two units. This startup charge still applies when input is invalid, no results are found, or an upstream request fails. Statements about free, unbilled, or skipped results refer only to the corresponding result event; they do not waive the startup charge. Apify platform usage is included in the event prices and is not passed through as an additional customer charge. Check the live Pricing tab for current events, tiers, and rates. Result limits cap result events, not the entire run cost.

X (Twitter) User Tweets Scraper uses Pay per event with Apify platform usage included. Tweet collection is billed as events, with Apify platform usage included. For live pricing details, open the Pricing tab on the Apify Store page.

Example: a run that scrapes one hundred tweets adds one hundred tweet-scraped events, with Apify platform usage included.

Use with AI agents (MCP)

This Actor is available as an Apify Actor usable through Apify MCP. The tool exposes tweet retrieval for public X/Twitter profiles and returns structured dataset items that agents can read, filter, and summarize.

Exact Actor identity: khadinakbar/x-user-tweets-scraper

Prompt example:

Collect recent public tweets from apify and openai, exclude retweets, keep replies, and return the dataset items with tweet URL, author handle, text, likes, retweets, replies, created time, and provider.

Output interpretation:

  • Each dataset item is one tweet record.
  • url identifies the tweet.
  • author_handle shows the source profile.
  • like_count, retweet_count, and reply_count are the engagement fields available in the live dataset view.
  • provider identifies which upstream source returned the record.

Provenance and scope:

  • The Actor targets public profile tweets.
  • It is cookieless and requires no login.
  • It is profile-based rather than keyword-search-based.

Pagination and cost guidance:

  • Use maxTweetsPerUser to control how many tweets are collected per profile.
  • Lowering the per-user maximum also reduces the number of billed tweet events.
  • Provider order can be switched between the routing options listed in the input schema when you want to control routing priority.

Apify API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/x-user-tweets-scraper').call({
usernames: ['apify', 'https://x.com/openai'],
maxTweetsPerUser: 10,
includeRetweets: false
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Best results and outcome guidance

Use profile handles or profile URLs that point to public accounts. Keep the account list small when you want fast, targeted review. Set includeRetweets and includeReplies based on whether you want only original posts or a fuller conversation view. If you are comparing performance across accounts, combine startDate, endDate, minimumLikes, and minimumRetweets to narrow the output to the tweets most relevant to your analysis. When using the Actor in an agent workflow, ask for the exact fields you need so the downstream step can remain simple.

Design note

I found that the live dataset view exposes only eight fields in the table transformation: url, author_handle, text, like_count, retweet_count, reply_count, created_at, and provider. That makes the output contract straightforward to document around row-level tweet records.

FAQ

This Actor is profile-based. It accepts X/Twitter handles or profile URLs and returns tweets from those accounts.

Can I route between data providers?

Yes. The providerOrder input lets you choose whether the primary or fallback data provider is tried first.

Is this Actor usable in Apify MCP workflows?

Yes. It is an Apify Actor usable through Apify MCP and can be called by agents that need public tweet data from a profile.

What kind of rows appear in the dataset?

Each row represents one tweet, with the live dataset view centered on tweet URL, author handle, text, engagement counts, creation time, and provider.

Can I limit the time range or engagement level?

Yes. The input schema includes startDate, endDate, minimumLikes, and minimumRetweets for focused collection.

Responsible use

X and Twitter is a trademark of its owner. This independent Actor is not affiliated with, associated with, or endorsed by X and Twitter.

Use public-profile data in line with X and Twitter's Terms of Service and applicable law. Keep collection focused on legitimate research, monitoring, enrichment, and automation workflows that respect user privacy and the context of the source content.