X (Twitter) User Tweets Scraper avatar

X (Twitter) User Tweets Scraper

Pricing

from $0.23 / 1,000 tweet scrapeds

Go to Apify Store
X (Twitter) User Tweets Scraper

X (Twitter) User Tweets Scraper

Export the timeline of any public X (Twitter) account: text, likes, reposts, replies, quotes, bookmarks, views, media, hashtags and links. No login, no cookies, no API key.

Pricing

from $0.23 / 1,000 tweet scrapeds

Rating

0.0

(0)

Developer

MYM

MYM

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Share

X (Twitter) User Tweets Scraper — export tweets from any account (No API Key, No Login)

Apify Actor No API Key required No Login needed No cookies needed Export formats MCP AI agents Pay per result

Scrape tweets from any public X (Twitter) account — no API key, no login, no cookies, no developer account, no X API pricing tier. This X Twitter scraper walks an account's public timeline and returns every post as a clean, structured record: full text, likes, reposts, replies, quotes, bookmarks, views, media with direct MP4 URLs, hashtags, mentions, links, the posting client, pinned status, edit state, link-preview cards, and the complete author profile. Export tweets to JSON, CSV, Excel, or XML, schedule runs through the Apify API, and feed the output straight into an LLM, a dashboard, or a spreadsheet.

Get your first tweets free in under 2 minutes — type a username, click Start, read the data. No configuration, no credit card to try.


Table of contents


What can the X Tweets Scraper do? {#what-can-the-x-tweets-scraper-do}

The X (Twitter) User Tweets Scraper turns any public account's timeline into a structured dataset, with zero setup. Use it to:

  • 🐦 Scrape tweets from any public X account — just a username, @handle, or profile URL.
  • 📜 Walk deep into the timeline — most accounts return up to roughly 1,000–1,200 posts per run, typically well over a year of history.
  • 📊 Get every public engagement metric — likes, reposts, replies, quotes, bookmarks, and view counts on each post.
  • 📝 Read the full text — long posts and Notes are expanded, never truncated at 280 characters.
  • 🖼️ Pull media — photo URLs plus direct MP4 video links and video duration.
  • 🔗 Get clean entitieshashtags, mentions, and expanded (un-shortened) links as plain string arrays.
  • 📱 See the posting clientTwitter for iPhone, Twitter Web App, Sprout Social, Typefully, Sprinklr, Media Studio.
  • 📌 Know what's pinned — pinned posts are flagged so you can spot an account's headline message.
  • 🃏 Capture link previews — card title, description, image, domain, and destination URL.
  • 🔁 Expand reposts and quotes — the original post arrives as a full nested tweet object, not just an ID.
  • ✏️ Track edit stateisEdited and editsRemaining from X's edit control.
  • 👤 Get the author profile with every post — followers, following, bio, website, verified type, join date.
  • 🎯 Filter reposts out with one switch, or fetch only the account's Highlights tab.
  • 🧑‍🤝‍🧑 Queue many accounts in one run — no limitation on how many usernames you add.
  • 📤 Export tweets to JSON, CSV, Excel, or XML, or pull them live through the API.

Go beyond the official X API: no OAuth app, no monthly API tier, no per-request quota — paste a username and collect publicly available tweet data.


Who scrapes tweets? {#who-scrapes-tweets}

  • 📈 Social media & competitor analysts — benchmark a competitor's posting cadence, engagement rate, and best-performing formats.
  • 🧑‍💻 AI & LLM builders — feed timelines into RAG pipelines, summarizers, and sentiment models without writing a scraper.
  • 📰 Researchers & journalists — build reproducible datasets of what an organisation or official account published over time.
  • 🏢 Brand & reputation teams — archive a brand's own messaging and monitor how it evolves.
  • 🤝 Influencer marketers — verify that an account's engagement matches its follower count before you pay for a placement.
  • 💼 Lead generation teams — enrich prospect lists with the author profile attached to every post.
  • 📊 Data teams & dashboards — schedule runs and pipe fresh rows into BI tools, Sheets, or a warehouse.

What data can I scrape from a tweet? {#what-data-can-i-scrape-from-a-tweet}

Each post returns 35 fields. Always populated:

FieldTypeDescription
idstringTweet ID.
urlstringDirect link to the post.
textstringFull post text — long posts and Notes expanded, never truncated.
createdAtstringPost timestamp.
likeCountnumberLikes.
retweetCountnumberReposts (retweets).
replyCountnumberReplies.
quoteCountnumberQuote posts.
bookmarkCountnumberBookmarks.
viewCountnumberViews / impressions.
langstringLanguage code detected by X.
conversationIdstringThe thread the post belongs to.
sourcestringPosting client, e.g. Twitter for iPhone, Sprout Social, Typefully.
isReplybooleanWhether the post is a reply.
isRetweetbooleanWhether the post is a repost.
isQuotebooleanWhether the post quotes another post.
isPinnedbooleanWhether the account pins this post to its profile.
possiblySensitivebooleanX's sensitive-media flag.
isEditedbooleanWhether the post has been edited.
editsRemainingnumberEdits still available on the post.
tweetsModestringfull or limited — how deep the account's public timeline goes (see below).
queriedUsernamestringThe username you asked for, handy when you queue many accounts.
authorobjectFull author profile: username, name, description, followers, following, tweetsCount, likesCount, mediaCount, listedCount, location, website, isVerified, verifiedType, isProtected, createdAt, profileImage, bannerImage, url.

Populated when the post contains them:

FieldTypeDescription
mediaarrayPhotos and videos: type, image, direct MP4 video URL, durationMs.
hashtagsarrayPlain array of hashtags — no nested entity objects to unpack.
mentionsarrayPlain array of mentioned usernames.
linksarrayPlain array of expanded, un-shortened URLs.
cardobjectLink preview / poll / broadcast card: name, url, title, description, image, domain.
quotedTweetobjectThe quoted post as a full nested tweet object.
retweetOfobjectThe original post as a full nested tweet object.
inReplyToIdstringID of the post being replied to.
inReplyToUserIdstringUser ID being replied to.
replyToUsernamestringUsername being replied to.
placeobjectGeotag: name, fullName, country, countryCode, type, boundingBox.
articleobjectLong-form article: title, previewText, coverImage.

Every field name is camelCase and every entity list is a flat array of strings — there is no id_str / screen_name / user_mentions mix to normalise on your side.


How to scrape tweets from an X account {#how-to-scrape-tweets-from-an-x-account}

  1. Open the X (Twitter) User Tweets Scraper on Apify.
  2. Add one or more accounts to X (Twitter) usernamesnasa, @OpenAI, or https://x.com/spacex all work.
  3. (Optional) Set Max tweets per account to cap the run (1–3000).
  4. (Optional) Turn Include reposts off to keep only original posts, or turn Highlights only on to fetch just the account's Highlights tab.
  5. Click ▶ Start.
  6. Export the dataset to JSON, CSV, Excel, or XML, or fetch it through the API.

No login, no cookies, no account, no proxy configuration. Start with one account to see the output shape, then scale the same run to a batch — the fields stay identical, so code written against a test run keeps working.


Input example {#input-example}

{
"usernames": ["nasa", "@OpenAI", "https://x.com/spacex"],
"resultsLimit": 500,
"includeRetweets": true,
"highlightsOnly": false
}
  • usernames — usernames, @handles, or profile URLs. Queue as many as you like.
  • resultsLimit — hard cap on tweets per account (1–3000).
  • includeRetweets — keep reposts (true) or return only the account's own posts (false).
  • highlightsOnly — fetch the account's Highlights tab instead of the timeline.

Output example {#output-example}

{
"id": "2081846100173177313",
"url": "https://x.com/vercel/status/2081846100173177313",
"text": "DeepsecBench evaluates model accuracy, cost, and speed in finding real vulnerabilities.",
"createdAt": "Mon Jul 27 21:18:19 +0000 2026",
"likeCount": 214,
"retweetCount": 31,
"replyCount": 12,
"quoteCount": 3,
"bookmarkCount": 89,
"viewCount": 41207,
"lang": "en",
"conversationId": "2081846100173177313",
"source": "Typefully",
"isReply": false,
"isRetweet": false,
"isQuote": false,
"isPinned": true,
"possiblySensitive": false,
"isEdited": false,
"editsRemaining": 5,
"tweetsMode": "full",
"queriedUsername": "vercel",
"hashtags": [],
"mentions": [],
"links": ["https://vercel.com/blog"],
"media": [
{ "type": "photo", "image": "https://pbs.twimg.com/media/GxxxxxxxxxA.jpg", "video": null, "durationMs": null }
],
"card": {
"name": "summary_large_image",
"url": "https://t.co/DUen0tXEtD",
"title": "DeepsecBench",
"description": null,
"image": "https://pbs.twimg.com/card_img/xxxx.jpg",
"domain": "vercel.com"
},
"place": null,
"article": null,
"inReplyToId": null,
"inReplyToUserId": null,
"replyToUsername": null,
"quotedTweet": null,
"retweetOf": null,
"author": {
"id": "1250773369",
"username": "vercel",
"name": "Vercel",
"description": "Build and deploy the best web experiences with the Frontend Cloud.",
"followers": 452118,
"following": 174,
"tweetsCount": 9421,
"isVerified": true,
"verifiedType": "Business",
"website": "https://vercel.com",
"profileImage": "https://pbs.twimg.com/profile_images/xxxx.jpg",
"url": "https://x.com/vercel"
}
}

How deep into the timeline can it go? {#how-deep-into-the-timeline-can-it-go}

X does not show every account's full archive to logged-out visitors, and honest limits beat surprises:

tweetsModeWhat it meansTypical yield
fullThe account exposes a paginated public timeline and the actor walks it page by page.~1,000–1,200 tweets
limitedThe account only exposes a recent public sample; there is no pagination cursor to follow.~100–130 tweets

Most brand, media, organisation, and normal creator accounts are full. A minority of very large personal accounts are limited — for those, that sample is all any cookie-free tool can return. Every item carries its tweetsMode, so you always know which case you got instead of silently receiving fewer rows.

Complete archives of 10k+ posts require a logged-in X account and are out of scope for this actor.


How accurate is the data? {#how-accurate-is-the-data}

Metrics are read live at run time — no cache, so counts match what a logged-out visitor sees right now.

In a 200-tweet benchmark run, 15 randomly sampled posts were re-checked against a second, independent X endpoint: 15 of 15 matched, with a mean deviation of 0.02%. The only difference was a post published 40 minutes earlier whose like counter was still climbing. The same run contained 0 duplicate rows and no gaps in the timeline.


How much will scraping tweets cost? {#how-much-will-scraping-tweets-cost}

Simple, predictable pay-per-result pricing — you pay for tweets you actually receive, not for compute time.

  • 💸 Pay per tweet — cost scales linearly with results, so you can budget up front: tweets × rate.
  • 📉 Volume discounts — Bronze, Silver, Gold, Platinum, and Diamond Apify plans get progressively lower per-tweet rates.
  • 🆓 Free to try — new Apify accounts include monthly free usage; your first run costs nothing.
  • 🚫 No hidden fees — no proxy add-on, no per-request API charge, no minimum spend.

See the live rate on the Apify store page.


Tips for scraping tweets {#tips-for-scraping-tweets}

  • 🎯 Turn reposts off for engagement analysis. Reposts carry the original author's metrics and will skew per-post averages.
  • 📌 Check isPinned first. A pinned post is the account's chosen headline — useful context before reading the rest.
  • 📱 Group by source. Seeing that a brand posts through Sprout Social or Typefully tells you there is a scheduling workflow behind it.
  • 🃏 Use card.domain for link attribution. It reveals which sites an account drives traffic to, even through t.co shorteners.
  • 🎬 Grab media[].video immediately. X media URLs are signed and expire, so download or re-host what you need in the same session.
  • 🧵 Rebuild threads with conversationId. Group posts by it to reconstruct threads in order.
  • ⏱️ Schedule small, frequent runs for monitoring instead of one huge run — cheaper and fresher.
  • 🔍 Read tweetsMode before assuming a low count is a bug. limited means the account itself restricts what logged-out visitors see.

Want other X (Twitter) data? {#want-other-x-twitter-data}

Timelines are one piece of the picture. Combine this actor with the rest of the X toolkit:

Building a multi-platform social dataset? The same pay-per-result, no-login approach covers the other networks too:

Browse everything on the myagizm store profile.


Use tweet data with AI agents (MCP) {#use-tweet-data-with-ai-agents-mcp}

The X (Twitter) User Tweets Scraper is available through the Apify MCP server, so AI assistants can call it as a tool and pull tweets on demand.

  • 🧩 Claude — add the Apify MCP server and let Claude fetch and analyse tweets.
  • 🤖 ChatGPT — use the actor as a tool inside research and reporting workflows.
  • 🖊️ Cursor — pull tweets straight into your coding and prototyping sessions.

No glue code required: ask your agent in plain language and it runs the actor, reads the structured output, and answers.

Common AI-agent recipes:

  • 🗒️ Summarize an account — "read @OpenAI's last 200 posts and list the product announcements."
  • 📊 Engagement report — "compare average likes and views for @nike vs @adidas over their last 100 posts."
  • 🧭 Topic extraction — "what themes does this account post about most often?"
  • 😀 Sentiment tracking — "score the tone of this brand's posts month by month."
  • ✍️ Content research — "find the five highest-view posts and describe the format each one used."

Integrations & API {#integrations--api}

Connect the actor to the tools you already use: Make, Zapier, n8n, Slack, Airbyte, Gumloop, CrewAI, IFTTT, Lindy, GitHub, Google Sheets, and Google Drive — plus webhooks, Apify Schedules, and the MCP server.

Run synchronously and get the dataset (Apify API)

curl -X POST "https://api.apify.com/v2/acts/myagizm~x-tweets-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "usernames": ["nasa"], "resultsLimit": 100, "includeRetweets": false }'

Start a run asynchronously

curl -X POST "https://api.apify.com/v2/acts/myagizm~x-tweets-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "usernames": ["nasa", "spacex"], "resultsLimit": 500 }'

Fetch dataset items later

$curl "https://api.apify.com/v2/acts/myagizm~x-tweets-scraper/runs/last/dataset/items?token=YOUR_APIFY_TOKEN&format=csv"

Change format to json, csv, xlsx, or xml to export scraped data in your preferred format. The Apify Console also auto-generates ready-to-paste JavaScript, Python, and CLI snippets plus an OpenAPI spec for this actor.


Support {#support}

Questions, feature requests, or something not looking right? Open an issue on the actor's Issues tab. Please include the input you used so we can reproduce and fix it quickly.


FAQ — scraping tweets from X (Twitter) {#faq--scraping-tweets-from-x-twitter}

The actor collects only publicly available posts — the same content X shows to any logged-out visitor. It never logs in and never accesses protected or deleted content. You remain responsible for how you use the data; if it contains personal data, follow GDPR, CCPA, and other applicable rules, and respect X's terms.

Do I need an X API key, developer account, or login?

No. There is no API key, no OAuth app, no X API pricing tier, no login, and no cookies. Paste a username and run.

How many tweets can I scrape per account?

Accounts with a paginated public timeline typically return up to 1,000–1,200 posts. Accounts that only expose a recent public sample return roughly 100–130. The tweetsMode field tells you which case applies to each account.

Can I scrape an account's entire history?

Not without a logged-in X account. Full archives of tens of thousands of posts are not exposed to logged-out visitors, so no cookie-free tool can deliver them. This actor is transparent about the ceiling rather than silently truncating.

Can I search tweets by keyword or hashtag?

Not with this actor — X does not expose keyword search to logged-out clients, so this scraper works per account. For hashtag-style discovery on other networks, see the Instagram and TikTok hashtag scrapers linked above.

Can I scrape replies and threads?

Replies posted by the account appear in its timeline and are flagged with isReply, inReplyToId, and replyToUsername. Group posts by conversationId to rebuild threads. Replies written by other users under a post are not returned.

Does it include view counts?

Yes. viewCount is returned for every post, alongside likes, reposts, replies, quotes, and bookmarks.

Do I get video and image URLs?

Yes. The media array contains photo URLs and direct MP4 video URLs with duration. These URLs are signed by X and expire, so download what you need promptly.

Can I scrape multiple accounts in one run?

Yes. Queue as many usernames as you like in a single run; there is no limit on the number of accounts.

Can I export tweets to CSV, Excel, or JSON?

Yes — JSON, CSV, Excel, or XML from the Console, or via the API format parameter.

Can I use it with the Apify API?

Yes. Use the path myagizm~x-tweets-scraper with the sync or async endpoints shown above.

Is there an MCP server for AI agents?

Yes. The actor is exposed through the Apify MCP server, so Claude, ChatGPT, and Cursor can call it as a tool.

Do I need proxies?

No. Proxy handling is built in and managed for you — nothing to configure or supply.

Can I schedule runs?

Yes. Use Apify Schedules or trigger runs via API and webhooks to keep timelines fresh on your own cadence.

Can I scrape protected or private accounts?

No. Protected accounts are skipped and reported in the run log. The actor never bypasses access controls.

What happens if a username doesn't exist?

It is reported in the run log and the rest of the batch continues normally.

How fresh is the data?

There is no caching. Every run reads the current public timeline, so metrics are live at run time.

Can I filter out reposts?

Yes. Set Include reposts to false and only the account's own posts are returned.

What is the Highlights option?

X lets accounts pin a curated set of posts to a Highlights tab. Turn Highlights only on to fetch that curated set instead of the chronological timeline.

Why is place or article usually null?

Geotagging is rare on X today and long-form articles are a Premium feature, so most posts simply have neither. The fields are populated whenever the post actually carries them.

Can I integrate the output with other apps?

Yes — Make, Zapier, n8n, Slack, Airbyte, Gumloop, CrewAI, IFTTT, Lindy, GitHub, Google Sheets, Google Drive, and webhooks.


twitter scraper · x scraper · scrape tweets · export tweets to csv · export tweets to excel · twitter data export · tweet scraper api · x api alternative · twitter api alternative free · scrape twitter without api · twitter timeline scraper · download tweets from account · twitter archive download · tweet analytics tool · twitter engagement scraper · twitter post scraper · scrape tweets by username · bulk tweet scraper · twitter scraping tool no login · x post scraper · twitter view count scraper · scrape twitter media · twitter video url extractor · twitter dataset for research · twitter sentiment analysis dataset · competitor twitter analysis · twitter monitoring tool · twitter scraper for ai agents


Disclaimer {#disclaimer}

This is an independent tool and is not affiliated with, endorsed by, or sponsored by X Corp., Twitter, or any of their subsidiaries. All product names, logos, and brands are property of their respective owners.

The actor collects only publicly available data — the same content any logged-out visitor can see. It never logs in, never bypasses access controls, and never touches private, protected, or deleted content. You are responsible for how you use the data: if it contains personal data, follow GDPR, CCPA, and other applicable regulations, and respect the platform's terms.


Resources {#resources}


中文说明 —— X(推特)用户推文抓取工具

抓取任意公开 X(Twitter)账号的推文 —— 不需要 API Key、不需要登录、不需要 Cookie、不需要开发者账号,也不需要购买 X API 套餐。本工具会翻阅账号的公开时间线,把每一条推文整理成结构化数据:完整正文、点赞数、转发数、回复数、引用数、书签数、浏览量、图片与可直接下载的 MP4 视频链接、话题标签、@提及、外链、发布客户端、是否置顶、编辑状态、链接卡片,以及完整的作者资料。结果可导出为 JSON、CSV、Excel 或 XML,也可以通过 Apify API 定时运行,直接送入大模型、看板或表格。

两分钟内免费拿到第一批数据 —— 填入内容,点击 Start 即可。无需配置,试用不需要信用卡。

这个 Actor 能做什么

  • 🐦 抓取任意公开账号的推文 —— 只需用户名、@handle 或主页链接。
  • 📜 深度翻页 —— 大多数账号单次可取约 1,000–1,200 条,通常覆盖一年以上的历史。
  • 📊 全部公开互动指标 —— 点赞、转发、回复、引用、书签,以及浏览量
  • 📝 完整正文 —— 长推文和 Notes 会自动展开,不会被截断在 280 字符。
  • 🖼️ 媒体资源 —— 图片地址 + 可直接下载的 MP4 视频链接与时长。
  • 🔗 干净的实体字段 —— hashtagsmentions、已还原的完整 links 均为纯字符串数组。
  • 📱 发布客户端 —— Twitter for iPhoneTwitter Web AppSprout SocialTypefully 等。
  • 📌 置顶标记 —— isPinned 让你一眼看出账号想主推的内容。
  • 🃏 链接卡片 —— 标题、描述、配图、域名与跳转地址。
  • 🔁 转发与引用展开 —— 原推文以完整嵌套对象返回,而不是只给一个 ID。
  • ✏️ 编辑状态 —— isEditededitsRemaining
  • 👤 每条推文都附带作者资料 —— 粉丝数、关注数、简介、网站、认证类型、注册时间。
  • 🎯 一键过滤转发,或只抓取账号的 Highlights(精选) 标签页。
  • 🧑‍🤝‍🧑 单次运行可排队多个账号,数量不限。
  • 📤 导出 为 JSON、CSV、Excel、XML,或通过 API 实时拉取。

谁在用

  • 📈 社媒与竞品分析 —— 对比竞争对手的发布节奏、互动率和高效内容形式。
  • 🧑‍💻 AI / 大模型开发者 —— 把时间线喂给 RAG、摘要、情感分析流程,不用自己写爬虫。
  • 📰 研究者与记者 —— 构建可复现的机构或官方账号发言数据集。
  • 🏢 品牌与公关团队 —— 归档自家品牌的对外表达并追踪变化。
  • 🤝 红人营销 —— 付费投放前核实互动数据与粉丝量是否匹配。
  • 💼 销售线索团队 —— 用每条推文附带的作者资料丰富潜客名单。
  • 📊 数据团队 —— 定时运行并把新数据推送到 BI、Sheets 或数仓。

可以抓取哪些数据

每条推文返回 35 个字段。始终有值的字段:

字段类型说明
idstring推文 ID
urlstring推文直达链接
textstring完整正文,长推文自动展开
createdAtstring发布时间
likeCountnumber点赞数
retweetCountnumber转发数
replyCountnumber回复数
quoteCountnumber引用数
bookmarkCountnumber收藏数
viewCountnumber浏览量
langstring语言代码
conversationIdstring所属对话(用于还原推文串)
sourcestring发布客户端
isReply / isRetweet / isQuote / isPinnedboolean推文类型标记
possiblySensitiveboolean敏感内容标记
isEdited / editsRemainingboolean / number编辑状态
tweetsModestringfulllimited,说明该账号公开时间线的深度
queriedUsernamestring你请求的用户名,便于批量运行时区分
authorobject完整作者资料(粉丝、关注、简介、网站、认证类型、注册时间、头像、横幅等)

内容中存在时才有值的字段:

字段类型说明
mediaarray图片与视频:typeimageMP4 videodurationMs
hashtags / mentions / linksarray话题标签、@提及、已还原外链(纯字符串数组)
cardobject链接卡片:nameurltitledescriptionimagedomain
quotedTweet / retweetOfobject被引用 / 被转发的原推文(完整嵌套对象)
inReplyToId / inReplyToUserId / replyToUsernamestring回复对象
placeobject地理标记
articleobject长文:titlepreviewTextcoverImage

所有字段名统一使用 camelCase,实体字段是扁平字符串数组 —— 不存在 id_str / screen_name / user_mentions 混用需要你再做一次规范化。

使用步骤

  1. 打开 X(Twitter)用户推文抓取工具
  2. X (Twitter) usernames 中填入一个或多个账号:nasa@OpenAIhttps://x.com/spacex 都可以。
  3. (可选)设置 Max tweets per account 限制单个账号的抓取上限(1–3000)。
  4. (可选)关闭 Include reposts 只保留原创推文;或打开 Highlights only 只抓精选标签页。
  5. 点击 ▶ Start
  6. 把结果导出为 JSON、CSV、Excel、XML,或通过 API 获取。

输入示例

{ "usernames": ["nasa", "@OpenAI"], "resultsLimit": 500, "includeRetweets": true }

输出示例

{
"id": "2081846100173177313",
"url": "https://x.com/vercel/status/2081846100173177313",
"text": "DeepsecBench evaluates model accuracy, cost, and speed in finding real vulnerabilities.",
"createdAt": "Mon Jul 27 21:18:19 +0000 2026",
"likeCount": 214, "retweetCount": 31, "replyCount": 12,
"quoteCount": 3, "bookmarkCount": 89, "viewCount": 41207,
"lang": "en", "source": "Typefully",
"isPinned": true, "isRetweet": false, "isReply": false,
"tweetsMode": "full",
"links": ["https://vercel.com/blog"],
"media": [{ "type": "photo", "image": "https://pbs.twimg.com/media/xxxx.jpg", "video": null }],
"card": { "title": "DeepsecBench", "domain": "vercel.com", "url": "https://t.co/DUen0tXEtD" },
"author": { "username": "vercel", "name": "Vercel", "followers": 452118, "isVerified": true }
}

时间线深度说明(重要)

X 并不会把所有账号的完整历史展示给未登录访客,因此我们把限制写在明面上:

tweetsMode含义通常可取
full账号提供分页的公开时间线,工具会逐页翻取约 1,000–1,200 条
limited账号只对外展示最近的一小部分,没有分页游标约 100–130 条

品牌、媒体、机构和大多数普通创作者账号属于 full;少数超大个人账号属于 limited —— 对这类账号,任何免登录工具都只能拿到这个样本量。每条数据都带 tweetsMode,你永远知道自己拿到的是哪一种,而不是莫名其妙少了几行。

一万条以上的完整存档需要登录账号,不在本工具范围内。

数据准确性

指标在运行时实时读取,不做缓存。在一次 200 条推文的基准测试中,随机抽取 15 条与另一个独立接口交叉核对:15/15 完全一致,平均偏差 0.02%(唯一差异来自一条 40 分钟前发布、点赞数仍在上涨的推文)。同一次运行 0 条重复,时间线没有断档。

价格

采用按结果计费(pay-per-result):只为真正拿到的数据付费,不按运行时间收费。

  • 💸 成本随结果数量线性增长,预算可以提前算清楚。
  • 📉 Apify 的 Bronze / Silver / Gold / Platinum / Diamond 套餐享受阶梯折扣。
  • 🆓 新账号自带每月免费额度,第一次运行不花钱。
  • 🚫 没有代理附加费、没有单次请求费、没有最低消费。

实时价格请见 Apify 商店页面

其他 X(Twitter)数据

完整工具家族见 myagizm 商店主页:Instagram、TikTok、LinkedIn、Reddit、YouTube、Google Maps 抓取工具都采用同样的免登录、按结果计费方式。

配合 AI 智能体使用(MCP)

本 Actor 已接入 Apify MCP 服务器,Claude、ChatGPT、Cursor 等助手可以把它当作工具直接调用,用自然语言提问即可获得结构化结果,无需写胶水代码。

集成与 API

支持 Make、Zapier、n8n、Slack、Airbyte、Gumloop、CrewAI、IFTTT、Lindy、GitHub、Google Sheets、Google Drive,以及 Webhook、定时任务和 MCP 服务器。

curl -X POST "https://api.apify.com/v2/acts/myagizm~x-tweets-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "usernames": ["nasa", "@OpenAI"], "resultsLimit": 500, "includeRetweets": true }'

format 参数改成 jsoncsvxlsxxml 即可导出不同格式。

常见问题

抓取推文合法吗? 本工具只采集公开可见的推文,即任何未登录访客都能看到的内容,不会登录,也不会访问受保护或已删除的内容。数据用途的合规责任由使用者承担;若涉及个人数据请遵守 GDPR / CCPA 等法规和平台条款。

需要 X API Key、开发者账号或登录吗? 不需要。没有 API Key、没有 OAuth、不用买 X API 套餐、不用登录、不用 Cookie。

一个账号最多能抓多少条? 提供分页时间线的账号通常约 1,000–1,200 条;只展示近期样本的账号约 100–130 条。tweetsMode 字段会告诉你属于哪种。

能抓完整历史存档吗? 不能。未登录状态下 X 不会公开数万条历史,任何免登录工具都做不到。我们选择把上限写清楚,而不是悄悄少给。

能按关键词或话题搜索推文吗? 本工具不支持 —— X 不向未登录客户端开放搜索接口,因此只能按账号抓取。

包含浏览量吗? 包含。每条推文都返回 viewCount

能拿到图片和视频链接吗? 可以,media 数组包含图片地址与可直接下载的 MP4 链接。注意这些地址由 X 签名且会过期,请及时下载。

能一次抓多个账号吗? 可以,账号数量不限。

支持导出 CSV / Excel / JSON 吗? 支持 JSON、CSV、Excel、XML,可在控制台导出或通过 API format 参数获取。

需要配置代理吗? 不需要,代理已内置托管。

可以定时运行吗? 可以,使用 Apify Schedules 或通过 API / Webhook 触发。

能抓私密(受保护)账号吗? 不能。受保护账号会被跳过并记录在运行日志中。

数据有多新? 不缓存,每次运行都读取当前公开页面。

为什么 placearticle 经常是 null? 现在 X 上带地理标记的推文很少,长文属于 Premium 功能,所以大多数推文本身就没有这两项内容;一旦存在就会返回。

免责声明

本工具为独立第三方工具,与 X Corp.、Twitter 及其关联公司无任何隶属、认可或赞助关系。所有商标归各自所有者。

本 Actor 只采集公开可见的数据 —— 即任何未登录访客都能看到的内容。它不登录、不绕过访问控制、不获取私密或已删除内容。数据的使用责任由使用者承担:如涉及个人数据,请遵守 GDPR、CCPA 等相关法规以及平台条款。

相关搜索

推特爬虫 · x 爬虫 · 抓取推文 · 推文导出 csv · 推文导出 excel · twitter 数据抓取 · twitter api 替代方案 · 免登录 twitter 抓取 · 推特时间线抓取 · 批量抓取推文 · 推特互动数据 · 推特浏览量抓取 · 推特媒体下载 · 推特视频链接提取 · 推特数据集 · 推特情感分析数据 · 竞品推特分析 · 推特监控工具 · 推特爬虫 api · x 平台数据采集