# How to Scrape Tweets From a User Profile

To scrape tweets from a user profile, run apidojo's Tweet Scraper V2 on Apify with the query from:username in searchTerms, split into date windows for long histories.

[![apidojo](/blog/authors/apidojo.png)**Apidojo** *15+ years of experience in data retrieval.*](/blog/authors/apidojo/)

**7 October 2026** Published

**3 min** Read

![Cover card reading 'How to Scrape Tweets From a User Profile'](/blog/covers/scrape-user-tweets.png)

**To scrape tweets from a user profile, run apidojo’s [Tweet Scraper V2](https://apify.com/apidojo/tweet-scraper) on Apify with the query `from:username` in `searchTerms`, split into date windows for long histories.** It returns each post with text, date and engagement at $0.40 per 1,000 tweets. For a timeline with each post’s replies, use apidojo’s [Twitter Profile Scraper](https://apify.com/apidojo/twitter-profile-scraper).

This guide covers both routes, how to collect a full history, and what each costs. Searching a user’s tweets by hand is covered in [how to search tweets from a specific user](/blog/twitter-search/search-tweets-from-user/). Every other collection task is mapped in [how to scrape Twitter (X) data](/blog/twitter-scraping/how-to-scrape-twitter/).

## Which apidojo Actor Should You Use for a Profile?

**Use Tweet Scraper V2 for a profile’s posts by keyword, date or engagement, and Twitter Profile Scraper when you also need the replies to each post.** The table compares them.

| Point | Tweet Scraper V2 | Twitter Profile Scraper |
| --- | --- | --- |
| Input | searchTerms with from:username, or twitterHandles | Profiles |
| Output | The account’s posts | The account’s posts plus their replies |
| Price | $0.40 per 1,000 tweets | $0.016 per profile, including 40 tweets, then per item |
| Filters | Any X search operator | Date filtering |
| Minimum | 50 tweets per query | None |

Prices and capabilities are from each actor’s listing on Apify (Tweet Scraper V2, Twitter Profile Scraper).

## How Do You Scrape a Profile With Tweet Scraper V2?

**You scrape a profile with Tweet Scraper V2 by putting `from:username` in `searchTerms`, adding filters, and running the actor.** Listed below are the 4 steps.

1.  **Test** `from:username` in X search to confirm the account is public.
2.  **Paste** the query into `searchTerms`, adding `-filter:retweets` for original posts only.
3.  **Set** `sort` to `Latest` and a `maxItems` cap.
4.  **Run** and export the dataset as JSON, CSV or Excel.

```
{
  "searchTerms": ["from:NASA -filter:retweets"],
  "sort": "Latest",
  "maxItems": 5000
}
```

## How Do You Scrape a Profile’s Full History?

**To scrape a profile’s full history, split it into date windows, one query per window, because a single query on an active account can stop short.** The actor’s own documentation shows a profile collected as two six-month windows (Apify).

```
{
  "searchTerms": [
    "from:NASA since:2024-01-01 until:2024-07-01",
    "from:NASA since:2024-07-01 until:2025-01-01",
    "from:NASA since:2025-01-01 until:2025-07-01"
  ],
  "sort": "Latest"
}
```

Generating windows in Python and merging them without duplicates is shown in [how to scrape tweets by date range](/blog/twitter-scraping/scrape-tweets-by-date/).

## How Do You Scrape Several Profiles at Once?

**Put one `from:` query per account in `searchTerms`, up to 5 per run, and turn on `includeSearchTerms` so each post is tagged with its account.** Or group accounts in one query with OR: `(from:NASA OR from:ESA) -filter:retweets`. Tweet Scraper V2 allows one concurrent run (Apify).

## What Filters Help When Scraping a Profile?

**Search operators narrow a profile scrape to the posts you need before you pay for them.** Listed below are the 6 most useful ([twitter-advanced-search reference](https://github.com/igorbrigadir/twitter-advanced-search)).

| Keep | Query |
| --- | --- |
| Original posts only | from:username -filter:replies -filter:retweets |
| Replies only | from:username filter:replies |
| Threads by the author | from:username filter:self_threads |
| Posts with media | from:username filter:media |
| High-engagement posts | from:username min_faves:1000 |
| Posts on a topic | from:username keyword |

## What Does a Profile Scrape Cost?

**A profile scrape costs $0.40 per 1,000 tweets on Tweet Scraper V2, so an account with 20,000 posts costs about $8 to collect in full.** Twitter Profile Scraper charges $0.016 per profile, which covers the first 40 tweets, then a per-item price. Tracking many competitor accounts over time is covered in [how to build a competitor tweet tracker](/blog/twitter-scraping/competitor-tweet-tracker/).

## The scrapers behind this

-   [Tweet Scraper V2 Tweets from searches, profiles, Lists and URLs; 49–64 tweets/sec; minimum 50 per query $0.40 / 1K tweets](/scrapers/twitter-scraper/)
-   [Twitter Profile Scraper A profile's tweets plus its replies, with date filtering; 40 tweets included $0.016 / profile + $0.40 / 1K](/scrapers/twitter-profile-scraper/)
-   [Twitter User Scraper Profiles, followers, following and retweeters by handle, URL or keyword $0.004 / profile + $0.40 / 1K users](/scrapers/twitter-user-scraper/)

## Questions people ask

### Can you scrape a private profile?

No, protected accounts' posts are visible only to approved followers and are not returned.

### Can you scrape a profile's followers?

Yes, with [Twitter User Scraper](https://apify.com/apidojo/twitter-user-scraper/input-schema), using `twitterHandles` and `getFollowers`.

### How far back can you scrape a profile?

As far as X search reaches, back to the account's first post.

### Where do you start?

At [how to scrape Twitter data in 2026](/blog/twitter-scraping/how-to-scrape-twitter/) or the [apidojo Twitter Scraper](/scrapers/twitter-scraper/).

## More on scraping X data

-   [How to Scrape Twitter (X) Data in 2026 What Twitter data you can scrape, the 3 ways to collect it, which apidojo actor fits each task, prices, limits and Python code.](/blog/twitter-scraping/how-to-scrape-twitter/)
-   [How to Scrape Tweets by Keyword (2026 Guide) Scrape tweets by keyword with apidojo's Tweet Scraper V2: query rules, batching, Python code, costs and fixes for low results.](/blog/twitter-scraping/scrape-tweets-by-keyword/)
-   [How to Scrape Tweets by Date Range Scrape tweets between two dates by splitting periods into windows, running them in batches and removing duplicates, with Python code.](/blog/twitter-scraping/scrape-tweets-by-date/)
-   [How to Scrape Twitter Search Results Turn any X search into a JSON, CSV or Excel dataset with apidojo's Tweet Scraper V2, using search queries or search result URLs.](/blog/twitter-scraping/scrape-search-results/)
-   [How to Scrape a Twitter Thread and All Replies Scrape every reply in a thread with conversation\_id:, keep only the author's thread, filter replies and see what each thread costs.](/blog/twitter-scraping/scrape-thread-replies/)
-   [How to Scrape Images and Videos From Tweets Collect tweets with media, find the media URLs in the output, download images with Python and pick the best video file.](/blog/twitter-scraping/scrape-twitter-media/)
-   [How to Export Tweets to CSV or JSON Export tweets to CSV, Excel, JSON or JSONL: your own archive, any search through a scraper, the columns you get and the API call.](/blog/twitter-scraping/export-tweets-csv-json/)
-   [How to Collect Tweets With Python (2026) A complete Python tweet collector: setup, first run, date parsing, date-window batching, deduplication and CSV export.](/blog/twitter-scraping/scrape-tweets-python/)
-   [How to Collect Tweets With JavaScript and Node.js A complete Node.js tweet collector: setup, first run, safe tweet IDs, date-window batching, deduplication and CSV export.](/blog/twitter-scraping/scrape-tweets-javascript/)
-   [Twitter Scraper Pagination: Cursors and Limits How pagination works in the X API and apidojo's actors, why searches stop early, and how to deduplicate and resume collections.](/blog/twitter-scraping/pagination/)
-   [How to rebuild an X conversation tree from replies Replies arrive as a flat list. Two fields, conversationId and inReplyToId, are what turn that list back into the threaded conversation you saw on X.](/blog/twitter-scraping/x-reply-tree/)
-   [When the X replies endpoint under-returns A thread that looks busy on X can come back thin from a scrape. Here is how to tell a quiet conversation from a short run, and what the second flow fixes.](/blog/twitter-scraping/x-replies-vs-search-flow/)
-   [Reading account age in X reply data Every reply carries the responder's account creation date, follower counts and post history. Here is what those fields can and cannot tell you.](/blog/twitter-scraping/x-replier-account-age/)

![apidojo](/blog/authors/apidojo.png)

## [Apidojo](/blog/authors/apidojo/)

15+ years of experience in data retrieval.

API Dojo is always ready for you. With 15+ years of experience, data acquisition has never been that easy. Cheapest prices with high availability.

-   🏯 15+ years of experience in data retrieval.
-   💰 Cheapest prices, qualified data.
-   ⚙️ High availability, extreme maintenance.
-   🐉 Hyper communicative, excellent support.

-   [apify.com](https://apify.com/apidojo)
-   [x.com](https://x.com/apidojo_)
-   [github.com](https://github.com/apidojo-io)
