Extracts tweets, reply threads, and engagement metrics from a specific Twitter/X profile using apidojo's Twitter Profile Scraper on Apify. Triggers when the user asks to: get all tweets from a Twitter account, scrape tweets from a specific user's profile, export tweet history from a Twitter handle, get recent tweets from a Twitter account with engagement stats, fetch tweet timeline for a specific user, or collect posts from a Twitter profile by username. Returns tweet text, likes, retweets, replies, views, bookmarks, and author info per tweet. Ideal for social media monitors, journalists, and competitive intelligence teams.
浏览器
scraping-tweets-from-account
试用Scrapes all tweets, replies, and media from any Twitter/X account using apidojo's Tweet scraper on Apify. Triggers when the user asks to: get all tweets from a Twitter account, export a user's tweet history, scrape a specific Twitter profile's posts, fetch the latest tweets from an account, download tweet data from a user timeline, or collect all posts from a Twitter username. Returns tweet text, likes, retweets, replies, media URLs, and timestamp per tweet. Ideal for journalists, researchers, competitive analysts, and data engineers.
它能做什么
Scrapes all tweets, replies, and media from any Twitter/X account using apidojo's Tweet scraper on Apify. Triggers when the user asks to: get all tweets from a Twitter account, export a user's tweet history, scrape a specific Twitter profile's posts, fetch the latest tweets from an account, download tweet data from a user timeline, or collect all posts from a Twitter username. Returns tweet text, likes, retweets, replies, media URLs, and timestamp per tweet. Ideal for journalists, researchers, competitive analysts, and data engineers.
技能文档
Scraping Tweets from an Account
Exports the full tweet history of any public Twitter/X account. Returns the raw timeline dataset including replies and media.
Prerequisites
APIFY_TOKENenvironment variable set- Optional: Apify MCP server installed
Inputs
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
searchTerms | array | ✅ | [] | Twitter advanced search queries (e.g. ["#AI lang:en", "from:NASA"]) |
sort | string | Optional | Top | Sort order: Latest, Top, or Latest+Top |
tweetLanguage | string | Optional | — | ISO 639-1 language code (e.g. en) |
maxItems | number | Optional | Unlimited | Maximum tweets to return |
onlyVerifiedUsers | boolean | Optional | false | Only tweets from verified users |
onlyTwitterBlue | boolean | Optional | false | Only Twitter Blue subscribers |
onlyImage | boolean | Optional | false | Only tweets with images |
onlyVideo | boolean | Optional | false | Only tweets with videos |
onlyQuote | boolean | Optional | false | Only quote tweets |
author | string | Optional | — | Filter to a specific author handle |
inReplyTo | string | Optional | — | Tweets replying to a specific handle |
mentioning | string | Optional | — | Tweets mentioning a specific handle |
geotaggedNear | string | Optional | — | Tweets near a location |
withinRadius | string | Optional | — | Radius around geotaggedNear |
geocode | string | Optional | — | Lat/lng + radius string |
placeObjectId | string | Optional | — | Tweets tagged with a place |
minimumRetweets | number | Optional | — | Minimum retweet count |
minimumFavorites | number | Optional | — | Minimum like count |
minimumReplies | number | Optional | — | Minimum reply count |
start | string | Optional | — | Tweets after this date (YYYY-MM-DD) |
end | string | Optional | — | Tweets before this date (YYYY-MM-DD) |
includeSearchTerms | boolean | Optional | false | Add the matched search term to each tweet |
customMapFunction | string | Optional | — | JavaScript function to transform each output object |
Workflow
Progress:
- [ ] Step 1: Confirm account is public
- [ ] Step 2: Run tweet-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Fetch and deliver dataset
Step 1: Validate Input
Strip @ from username if present. Do not attempt to scrape private accounts — the actor will return 0 results.
Step 2: Run the Actor
Recommended — run_actor.js (handles waiting, output, and file saving automatically):
# Quick answer (prints table to chat)
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}'
# Save as CSV
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# Save as JSON
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
APIFY_TOKENmust be set in environment or.envfile.
If Apify MCP is available:
Tool: apify:run-actor
Actor: "apidojo~tweet-scraper"
Input:
{
"twitterHandles": [""],
"maxItems": 200,
"sort": "Latest"
}
REST API fallback:
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"twitterHandles": [""], "maxItems": 200, "sort": "Latest"}'
Save id as RUN_ID. Poll until status = SUCCEEDED:
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'
Fetch results:
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"
Step 3: Handle Edge Cases
- 0 results: Account may be private, suspended, or handle misspelled. Report to user.
- Fewer results than expected: Account may have fewer public tweets than requested. Return what is available.
- Protected account: Actor returns empty — inform user the account is private.
Output Format
# Tweet Timeline: @
Tweets collected: N | Includes replies: YES/NO | Includes retweets: YES/NO
| Tweet ID | Text (truncated) | Likes | Retweets | Replies | Media | Timestamp |
|----------|-----------------|-------|----------|---------|-------|-----------|
| ... | ... | ... | ... | ... | ... | ... |
Full dataset: N rows × 12 fields
Available fields: id, text, likeCount, retweetCount, replyCount, quoteCount,
isReply, isRetweet, media, tweetUrl, lang, createdAt
Troubleshooting
0 results for a known public account: Try again — Twitter may rate-limit intermittently.
Missing older tweets: Twitter API limits historical access; very old tweets may not be available.
Timeout: Reduce maxItems to 500 max per run.
相关技能
Scrapes tweets matching any keyword, hashtag, phrase, or boolean query using apidojo's Twitter Search scraper on Apify. Triggers when the user asks to: scrape tweets about a topic, fetch tweets containing a keyword or hashtag, export Twitter search results to a dataset, get all tweets mentioning a phrase, pull recent tweets for a search term, or collect tweet data for analysis or research. Returns tweet text, author, likes, retweets, replies, timestamp, and tweet URL per result. Ideal for researchers, data analysts, journalists, and social listening teams.
Scrapes Twitter/X profile data for any list of usernames using apidojo's Twitter User scraper on Apify. Triggers when the user asks to: get profile data for Twitter accounts, fetch follower counts for a list of usernames, scrape Twitter bio and stats for multiple users, export Twitter profile metadata, check account details for a set of handles, or bulk-fetch Twitter user information. Returns username, display name, bio, follower count, following count, tweet count, verified status, and profile URL. Ideal for data analysts, list enrichment pipelines, and market researchers.
Search X, read tweets and their replies and retweeters, pull user profiles and their tweets, replies, media, followers, and followings, and get trending topics as structured JSON. 11 endpoints.
Scrapes all members and their profile data from any public Twitter/X list using apidojo's Twitter List scraper on Apify. Triggers when the user asks to: get all members of a Twitter list, export accounts in a Twitter list, scrape profiles from a curated Twitter list, fetch the usernames in a public Twitter list, download data from a Twitter list URL, or collect profile stats for everyone on a list. Returns username, bio, follower count, and profile metadata for each list member. Ideal for competitive intelligence teams, curators, and list-based outreach pipelines.
Collects every tweet in an X (Twitter) conversation thread given a conversation id (root tweet id) — the focal tweet plus all replies, sub-replies, and quote chains — and returns normalized per-tweet data with text, author, engagement counts, media, hashtags, mentions, in_reply_to mapping, and curso