# Twitter Scraper: extract tweets, replies and profiles from X

Apidojo Twitter Scraper is a no-login X (Twitter) data API that collects tweets, replies, profiles, Lists and media from any public search, profile or URL. It costs $0.40 per 1,000 tweets, returns up to 64 tweets per second, and exports JSON, CSV or Excel.

[Run your first query](https://apify.com/apidojo/tweet-scraper)

[See sample output](#output)

Free Apify plan: 5 runs a month, 10 items a run. No credit card.

**$0.40** per 1,000 tweets

**64/s** peak tweet rate

**148K** users on Apify

**99.82%** run success, 30 days

Users and run success are the six Twitter scrapers combined. Read on 21 September 2026.

## What are the Twitter Scraper specifications?

Apidojo Twitter Scraper runs on the Apify platform and accepts 4 input types: search queries, tweet or profile URLs, Twitter handles and conversation IDs. Each tweet returns 20 fields plus a 12-field author object, exported as JSON, CSV or Excel.

**Data sources on X:** Search results, profile timelines, single tweets, reply threads, Lists, X Articles

**Inputs:** searchTerms, startUrls, twitterHandles, conversationIds

**Price:** $0.40 per 1,000 tweets; the single-job scrapers add a $0.004–$0.016 query fee

**Speed:** 49 tweets/sec (search) · 58 (profile) · 64 (tweet URLs)

**Results per query:** 100,000+ tweets when X has the data

**Filters:** Language (ISO 639-1), verified authors, Twitter Blue, images, videos, quotes, minimum likes / retweets / replies, geo radius, date range

**Sort modes:** Latest · Top · Latest + Top

**Export formats:** JSON, JSONL, CSV, Excel, XML, HTML table, API

**Login or X API key:** Not required

**Concurrency:** 1 run at a time per account; up to 5 batched queries per run

**Free plan:** Demo mode, 5 runs per month, 10 items per run

**Integrations:** Apify REST API, Python and JavaScript clients, n8n, Make, Zapier, webhooks, MCP

**Maintenance:** Daily, by a dedicated engineering team

## What does Twitter Scraper output look like?

Twitter Scraper output is one JSON object per tweet. Each object carries the tweet ID, both the x.com and twitter.com URLs, the text, creation date, language, 5 engagement counts and a nested author object with username, follower count and verification type.

**Search results**

**Profile tweets**

**Replies and threads**

**X List**

Runs on apidojo/tweet-scraper

Keyword, hashtag and boolean queries in X advanced search syntax.

Input

```
{
  "searchTerms": ["bitcoin min_faves:1000 min_retweets:100"],
  "sort": "Top",
  "maxItems": 1000
}
```

Output

```
{
  "type": "tweet",
  "id": "1728108619189874825",
  "url": "https://x.com/elonmusk/status/1728108619189874825",
  "twitterUrl": "https://twitter.com/elonmusk/status/1728108619189874825",
  "text": "More than 10 per human on average",
  "likeCount": 104121,
  "retweetCount": 11311,
  "replyCount": 6526,
  "quoteCount": 2915,
  "bookmarkCount": 702,
  "createdAt": "Fri Nov 24 17:49:36 +0000 2023",
  "lang": "en"
}
```

Runs on apidojo/tweet-scraper

A timeline by handle or from: query, split into date windows for large accounts.

Input

```
{
  "searchTerms": [
    "from:NASA since:2026-01-01 until:2026-06-01",
    "from:NASA since:2026-06-01 until:2026-12-01"
  ],
  "sort": "Latest"
}
```

Output

```
"author": {
  "type": "user",
  "userName": "NASA",
  "name": "NASA",
  "id": "11348282",
  "url": "https://x.com/NASA",
  "isVerified": true,
  "isBlueVerified": true,
  "verifiedType": "government",
  "followers": 87611884,
  "following": 158
}
```

Runs on apidojo/twitter-scraper-lite

Tweet Scraper does not collect reply threads. Twitter Scraper Unlimited does, and has no 50-item minimum.

Input

```
{
  "startUrls": [
    "https://x.com/elonmusk/status/1728108619189874825"
  ],
  "maxItems": 500
}
```

Output

```
{
  "type": "tweet",
  "isReply": true,
  "text": "…",
  "likeCount": 312,
  "createdAt": "Sat Nov 25 09:14:02 +0000 2023",
  "author": { "userName": "…", "followers": 4821 }
}
```

Runs on apidojo/twitter-list-scraper

Tweets and members of any X List URL. Same tweet schema as search.

Input

```
{
  "startUrls": ["https://x.com/i/lists/1234567890"],
  "maxItems": 2000
}
```

Output

```
{
  "type": "tweet",
  "id": "1801234567890123456",
  "url": "https://x.com/user/status/1801234567890123456",
  "text": "…",
  "likeCount": 44,
  "retweetCount": 6,
  "author": { "userName": "…", "followers": 12904 }
}
```

### What the fields are

-   #### Tweet content

    ID, both URLs, full text, language, creation time, source client, X Article body

-   #### Engagement

    Likes, retweets, replies, quotes, bookmarks

-   #### Author profile

    Username, display name, user ID, followers, following, verification type, avatar

-   #### Media and context

    Link cards, place, reply / retweet / quote flags, quoted tweet ID

| Field | Type | Example value | Group |
| --- | --- | --- | --- |
| id | string | 1728108619189874825 | Content |
| url | string | https://x.com/elonmusk/status/1728108… | Content |
| twitterUrl | string | https://twitter.com/elonmusk/status/… | Content |
| text | string | More than 10 per human on average | Content |
| createdAt | string (RFC 2822) | Fri Nov 24 17:49:36 +0000 2023 | Content |
| lang | string (ISO 639-1) | en | Content |
| source | string | Twitter for Android | Content |
| article | object | title, previewText, coverImage, contentState | Content |
| likeCount | integer | 104121 | Engagement |
| retweetCount | integer | 11311 | Engagement |
| replyCount | integer | 6526 | Engagement |
| quoteCount | integer | 2915 | Engagement |
| bookmarkCount | integer | 702 | Engagement |
| isReply | boolean | false | Context |
| isRetweet | boolean | false | Context |
| isQuote | boolean | true | Context |
| quoteId | string | 1728107610631729415 | Context |
| card | object | {} | Context |
| place | object | {} | Context |
| author.userName | string | elonmusk | Author |
| author.name | string | Elon Musk | Author |
| author.id | string | 44196397 | Author |
| author.followers | integer | 172669889 | Author |
| author.following | integer | 538 | Author |
| author.isVerified | boolean | true | Author |
| author.isBlueVerified | boolean | true | Author |
| author.verifiedType | string | business | Author |
| author.profilePicture | string | https://pbs.twimg.com/profile_images/… | Author |

## Which Apidojo X (Twitter) scraper fits your job?

Apidojo publishes 6 Twitter scrapers. Tweet Scraper collects tweets in bulk from searches, profiles and Lists at $0.40 per 1,000 with a 50-tweet minimum; Twitter Scraper Unlimited handles single tweets and reply threads with no minimum; the Profile, User, List and Replies scrapers each handle one account-level or thread-level job.

### Tweet Scraper

`apidojo/tweet-scraper`

99.9K users · 3.9 (195)

The main scraper. Collects tweets in bulk from keyword and hashtag searches, profile timelines, List URLs and tweet URLs, using X advanced search syntax and 20+ filters.

-   Searches, hashtags and boolean queries
-   Profile timelines with date ranges
-   Full tweet, engagement and author fields
-   Up to 64 tweets per second
-   100,000+ tweets per query
-   Minimum 50 tweets per query

**$0.40 / 1,000 tweets** Pay per result, no per-run fee

[Open Tweet Scraper](/scrapers/twitter-scraper/) [See query syntax](#reference)

### X scrapers for a single job

-   [Twitter Scraper Unlimited `apidojo/twitter-scraper-lite` The one to use when Tweet Scraper will not take the job: single tweets, reply threads, X Articles and any query returning fewer than 50 results. No minimum. Single tweets and reply threads · X Articles · No 50-item minimum $0.016 / query + $0.40 / 1K 33.5K users · 4.8 (101)](/scrapers/twitter-scraper-lite/)
-   [Twitter User Scraper `apidojo/twitter-user-scraper` Profiles, followers, following and retweeters by handle, URL or keyword. Use it when you need the people rather than the posts. Follower and following lists · Retweeters of a tweet · Keyword search across profiles $0.004 / profile + $0.40 / 1K 8.7K users · 4.4 (16)](/scrapers/twitter-user-scraper/)
-   [Twitter Profile Scraper `apidojo/twitter-profile-scraper` Extracts one profile's tweets and the replies it received, with date filtering. Use it when the account is the unit of analysis. Tweets plus the replies they drew · Profile bio and metadata · 40 tweets included per profile $0.016 / profile + $0.40 / 1K 2.7K users · 3.4 (11)](/scrapers/twitter-profile-scraper/)
-   [Twitter List Scraper `apidojo/twitter-list-scraper` Tweets and members of any X List URL. The cheapest way to follow a curated set of accounts. List tweets, same schema as search · List members · One query per List $0.008 / List + $0.40 / 1K 1.1K users · 5.0 (9)](/scrapers/twitter-list-scraper/)
-   [Twitter Replies Scraper `apidojo/twitter-replies-scraper` Every reply under a tweet by ID or URL, with the author object attached to each one. Full reply threads · Author data per reply · Search-query mode as well $0.014 / tweet + $0.40 / 1K 130 users · New](/scrapers/twitter-replies-scraper/)

## How much does Twitter Scraper cost?

Twitter Scraper costs $0.40 per 1,000 tweets on Tweet Scraper, billed per result with no per-run fee. The Unlimited, Profile, User, List and Replies scrapers charge the same $0.40 per 1,000 items plus a query fee between $0.004 and $0.05 per profile, List or tweet.

$0.40per 1,000 tweets

-   Pay per result, no per-run fee
-   The same price at 1,000 or 1,000,000 tweets
-   Minimum 50 tweets per query

[Run your first query](https://apify.com/apidojo/tweet-scraper)

| Scraper | Query fee | Per item |
| --- | --- | --- |
| Twitter Scraper Unlimited | $0.016 per query · $0.05 per single tweet URL | $0.40 / 1K |
| Twitter Profile Scraper | $0.016 per profile (40 tweets included) | $0.40 / 1K |
| Twitter User Scraper | $0.004 per profile · $0.016 per follower list | $0.40 / 1K |
| Twitter List Scraper | $0.008 per List | $0.40 / 1K |
| Twitter Replies Scraper | $0.014 per tweet | $0.40 / 1K |

| Job | Scraper | Calculation | Cost |
| --- | --- | --- | --- |
| 100,000 tweets from a hashtag search | Tweet Scraper | 100,000 × $0.0004 | $40.00 |
| 10 profiles × 1,000 tweets | Tweet Scraper | 10,000 × $0.0004 | $4.00 |
| 1 profile, 1,000 tweets and its replies | Profile Scraper | $0.016 + 960 × $0.0004 | $0.40 |
| 500 replies under one tweet | Replies Scraper | $0.014 + 500 × $0.0004 | $0.21 |
| 5,000 followers of one account | User Scraper | $0.016 + 5,000 × $0.0004 | $2.02 |
| One X List, 2,000 tweets | List Scraper | $0.008 + 2,000 × $0.0004 | $0.81 |

Prices apply to Apify paid plans. The free Apify plan runs Tweet Scraper in demo mode: 5 runs per month, 10 items per run, no credit card.

## How does Twitter Scraper compare with the official X API?

Twitter Scraper collects 1,000 tweets for $0.40. The official X API pay-per-use plan charges $0.005 per post read, which is $5.00 per 1,000 tweets, and caps reads at 3 million posts per monthly billing cycle. Twitter Scraper needs no developer account and no OAuth token.

|  | Apidojo Twitter Scraper | Official X API |
| --- | --- | --- |
| Cost per 1,000 tweets | $0.40 | $5.00 |
| Cost for 100,000 tweets | $40 | $500 |
| Cost per 1,000 follower records | $0.40 plus a $0.016 query fee | $10.00 |
| Monthly read cap | None set by the scraper | 3,000,000 posts, then Enterprise |
| Historical search | Yes, via since: and until: | Full archive on Enterprise only |
| Setup | An Apify account. No X credentials. | Developer account, app approval, OAuth 2.0 |
| Output shape | Flat JSON, CSV, Excel | Nested JSON with expansions |
| Post, like or send a DM | No, read-only | Yes |
| Contractual SLA | No. Maintained daily, no contract. | Enterprise only |

X API rates read from docs.x.com/x-api/getting-started/pricing on the snapshot date: posts read $0.005 per resource, user reads $0.010, pay-per-usage capped at 3 million post reads per billing cycle. X states prices are subject to change in the Developer Console.

## How to scrape X with Apidojo in 4 steps

Scraping Twitter with Apidojo takes 4 steps: open the scraper, enter a query or URL, set the filters, then run and export. No code, proxy or X account is required.

1.  01

    ### Open Twitter Scraper on Apify

    Sign in with a free Apify account. No credit card is needed to run it in demo mode.

2.  02

    ### Enter a query, handle or URL

    Paste from:NASA, a tweet URL or a List URL. The built-in Query Wizard writes the syntax for you.

3.  03

    ### Set filters and limits

    Pick a language, date range, media type, engagement floor and maxItems to cap both the run and the cost.

4.  04

    ### Run and export the dataset

    Start the run, then download JSON, CSV or Excel, or pull the results straight through the API.

### Which search operators it supports

| Operator | Returns | Example query |
| --- | --- | --- |
| from: | Tweets posted by an account | from:NASA |
| to: | Replies sent to an account | to:NASA |
| @ | Tweets mentioning an account | @NASA |
| since: until: | Tweets inside a date window | from:NASA since:2026-01-01 until:2026-06-01 |
| conversation_id: Unlimited or Replies Scraper | Every reply in a thread | conversation_id:1728108619189874825 |
| min_faves: min_retweets: | Tweets above an engagement floor | bitcoin min_faves:1000 min_retweets:100 |
| filter:media also images, videos | Tweets with attachments | from:NASA filter:videos |
| -filter:retweets | Original tweets only | from:elonmusk -filter:retweets |
| filter:verified | Tweets by verified accounts | cryptocurrency filter:verified |
| filter:links | Tweets containing URLs | from:TechCrunch filter:links |
| lang: | Tweets in one language | #AI lang:en |
| near: within: | Geotagged tweets in a radius | concert near:"New York" within:10mi |
| OR ( ) - | Boolean logic | (puppy OR kitten) -filter:retweets min_faves:100 |

## How do you call the Twitter Scraper API?

Twitter Scraper runs through the Apify REST API and the official Python and JavaScript clients. One POST to the run-sync endpoint starts the scraper and returns the tweets as JSON in the same response.

**Python**

**JavaScript**

**cURL**

**MCP**

```
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("apidojo/tweet-scraper").call(run_input={
    "searchTerms": ["from:NASA since:2026-01-01"],
    "sort": "Latest",
    "maxItems": 1000,
})

for tweet in client.dataset(run.default_dataset_id).iterate_items():
    print(tweet["createdAt"], tweet["likeCount"], tweet["text"])
```

```
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });

const run = await client.actor('apidojo/tweet-scraper').call({
  searchTerms: ['#AI lang:en min_faves:100'],
  sort: 'Top',
  maxItems: 1000,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, items[0].text);
```

```
curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~tweet-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchTerms":["from:NASA since:2026-01-01"],"sort":"Latest","maxItems":500}'
```

```
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?tools=apidojo/tweet-scraper",
      "headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
    }
  }
}
```

-   ### n8n

    Apify node to Twitter Scraper to Google Sheets, on a schedule.

-   ### Make

    Scheduled run, results into Airtable.

-   ### Zapier

    New dataset item triggers a Slack alert.

-   ### Webhooks

    POST to any URL on run success.

## How fast is Twitter Scraper?

Twitter Scraper returns 64 tweets per second from tweet URLs, 58 from profile timelines and 49 from search queries in Apidojo’s published benchmark. At 58 tweets per second a 10,000-tweet profile export finishes in under three minutes.

Tweet URLs64 tweets/sec

Profile timeline58 tweets/sec

Search query49 tweets/sec

| Dataset size | At 49/sec, search | At 58/sec, profile |
| --- | --- | --- |
| 1,000 tweets | ≈ 20 s | ≈ 17 s |
| 10,000 tweets | ≈ 3 min 24 s | ≈ 2 min 52 s |
| 100,000 tweets | ≈ 34 min | ≈ 29 min |

Benchmark published on the Tweet Scraper listing, run with identical inputs and resources per input type. Real speed varies with X response times and the shape of the query.

**99.9K** users on Tweet Scraper

**163M** Tweet Scraper runs, all time

**3.9 / 5** from 195 Apify reviews

**6** Twitter scrapers in the family

That rating is Tweet Scraper’s own, not an average across the six. Most of what pulls it down is people reaching for it when they needed single tweets or reply threads, which the limits above route elsewhere.

## What can you build with Twitter Scraper data?

Twitter Scraper data powers 6 common workflows: brand monitoring, sentiment analysis, lead research, AI training datasets, academic research and market signals. Each recipe below gives the exact query, the fields it uses and where the output lands.

-   ### Brand monitoring

    `"yourbrand" OR @yourbrand -filter:retweets`

    **text, likeCount, author.followers** Fields

-   ### Sentiment analysis

    `#iPhone17 lang:en min_faves:10`

    **text, lang, createdAt** Fields

-   ### Lead research

    `"looking for" (CRM OR "sales tool") -filter:retweets`

    **author.userName, author.followers, text** Fields

-   ### AI training datasets

    `lang:en min_faves:50 -filter:links since:2026-01-01`

    **text, lang, likeCount** Fields

-   ### Academic research

    `#climate since:2025-01-01 until:2025-12-31`

    **The full tweet and author objects** Fields

-   ### Market signals

    `$TSLA min_retweets:50`

    **createdAt, retweetCount, likeCount** Fields

## What are the limits of Twitter Scraper?

Tweet Scraper operates under 5 documented limits. Each one below states the workaround, and four of the five are answered by another scraper in the same family.

-   ### 50-tweet minimum per query

    A query that would return fewer than 50 tweets is not supported on Tweet Scraper.

    Use Twitter Scraper Unlimited, which bills per query and has no minimum.

-   ### No single-tweet fetching

    Tweet Scraper will not return one specific tweet by URL or ID.

    Twitter Scraper Unlimited takes a single tweet URL at $0.05 per query.

-   ### No reply or conversation scraping

    Tweet Scraper does not walk reply threads.

    Twitter Scraper Unlimited or Twitter Replies Scraper both do, by tweet URL or ID.

-   ### 1 concurrent run per account

    One run at a time, batching up to 5 queries inside it.

    Put several handles or searches into one searchTerms array rather than starting parallel runs.

-   ### Only what X search shows

    Tweets X hides, filters or shadow-bans do not appear, and X can change its search behaviour without notice.

    Test the query on x.com/search first, then widen the date range or switch sort to Top or Latest + Top.

## Is it legal to use a Twitter scraper?

Scraping publicly visible, logged-out Twitter data is generally lawful in the United States. US courts have held that scraping public pages does not violate the Computer Fraud and Abuse Act, in hiQ Labs v. LinkedIn (9th Cir., 2022). Personal data inside tweets remains subject to GDPR and CCPA.

-   ### What the scraper collects

    Only content visible without logging in. No private accounts, no direct messages, no protected tweets.

-   ### What you are responsible for

    A lawful basis for processing personal data, a retention limit, and X’s Terms of Service, which restrict automated collection.

-   ### Where the case law stands

    hiQ v. LinkedIn settled the CFAA question for logged-out pages. X Corp. v. Bright Data was dismissed in 2024 on similar ground.

This is general information, not legal advice.

## Twitter Scraper frequently asked questions

### Everything else people ask

Fifteen questions about this scraper and its family. Anything about the wider catalogue is answered on the scrapers hub.

[All 26 scrapers](/scrapers/)

### Do I need an X login or a Twitter API key to use Twitter Scraper?

No. Twitter Scraper collects public data without an X account, cookies or API key. You need only a free Apify account.

### Can Twitter Scraper extract historical tweets?

Yes. Add since: and until: to the query, for example from:NASA since:2020-01-01 until:2020-12-31. Split large accounts into six-month windows to maximise results.

### Can Twitter Scraper scrape replies and full threads?

Not Tweet Scraper itself. Use Twitter Scraper Unlimited or Twitter Replies Scraper: paste the tweet URL or ID and you get every reply with its author and engagement counts.

### Can Twitter Scraper scrape several profiles at once?

Yes. Add several handles to twitterHandles, or several from: queries to searchTerms. Tweet Scraper batches up to 5 queries per run.

### Does Twitter Scraper work with x.com URLs?

Yes. It accepts both twitter.com and x.com URLs, and returns both url and twitterUrl in every item.

### How many tweets can one Twitter Scraper query return?

One query returns 100,000+ tweets when X has that many matching results. Set maxItems to cap both the run and the cost.

### Why does Twitter Scraper return fewer tweets than expected?

Fewer tweets appear when the query is narrow, until: is set, or X filters the results. Switch sort to Top or Latest + Top, widen the date range, and check maxItems.

### Which Apidojo Twitter scraper should I use?

Use Tweet Scraper for keyword, hashtag and profile datasets of 50 tweets or more. Use Twitter Scraper Unlimited for single tweets, reply threads or anything under 50. Use the Profile, User, List or Replies scraper when the job is one account, one follower list, one X List or one reply thread.

### Does Twitter Scraper return view counts?

No. The output carries likes, retweets, replies, quotes and bookmarks, but X does not expose a view count in the data the scraper reads.

### Does Twitter Scraper collect images and videos?

Yes. It returns media URLs for photos, videos and GIFs. Add filter:images or filter:videos to return only tweets carrying media.

### Can Twitter Scraper get follower lists?

Every author object already carries follower and following counts. Full follower and following lists run on Twitter User Scraper at $0.016 per list plus $0.40 per 1,000 users.

### Is there a free Twitter Scraper plan?

Yes. The free Apify plan runs it in demo mode: 5 runs per month, 10 items per run, no credit card.

### Which formats does Twitter Scraper export?

JSON, JSONL, CSV, Excel, XML and HTML tables, plus the Apify API for pulling results straight into your stack.

### Does Twitter Scraper work with n8n, Make and Zapier?

Yes, through the Apify app in all three, and through webhooks for anything else.

### Can AI agents use Twitter Scraper through MCP?

Yes. The Apify MCP server exposes Twitter Scraper as a tool to Claude, Cursor and other MCP clients.

## Other Apidojo scrapers

X (Twitter) is one of six sources in the catalogue. Every scraper publishes its inputs, its output fields and its price the same way this one does.

-   [Instagram Scraper Posts, reels, profiles and comments](/scrapers/instagram-scraper/)
-   [TikTok Scraper Videos, creators and comments](/scrapers/tiktok-scraper/)
-   [YouTube Scraper Videos, channels and transcripts](/scrapers/youtube-scraper/)
-   [Google Search Scraper Organic SERP results](/scrapers/google-search-scraper/)

[Browse all 26 scrapers](/scrapers/)

Apidojo

## Run Twitter Scraper on your first query

Paste a search, a handle or a tweet URL. The free Apify plan runs it in demo mode with no credit card, and the output shape is the one documented on this page.

[Run your first query](https://apify.com/apidojo/tweet-scraper)

-   `from:NASA since:2026-01-01 -filter:replies` One account, this year, no replies
-   `#AI lang:en min_faves:100` A hashtag, English only, above an engagement floor
-   `(puppy OR kitten) -filter:retweets` Boolean logic, originals only

Every one of these runs on Tweet Scraper at $0.40 per 1,000 tweets.

Apidojo is not affiliated with X Corp.

## Guides for this scraper

-   [X (Twitter) search operators and how to use them Every X search operator that works, with the date, account, keyword and reply guides that show what each one does in practice.](/blog/twitter-search/)
-   [from: vs to: vs @username on X Search On X search, from:username finds posts an account wrote, to:username finds replies sent to that account, and @username finds any post that mentions it.](/blog/twitter-search/from-to-mention-operators/)
-   [How to Find Old Tweets on X To find old tweets on X, search a keyword with a date window, for example "world cup" since:2014-06-12 until:2014-07-14, then open the Latest tab.](/blog/twitter-search/find-old-tweets/)
-   [How to Find Viral Tweets About Any Topic To find viral tweets about a topic, search the topic with a high like threshold and no reposts, for example "remote work" min\_faves:5000 -filter:retweets.](/blog/twitter-search/find-viral-tweets/)
-   [How to Search Tweets by Date on X (Twitter) To search tweets by date on X, type your keyword followed by since:YYYY-MM-DD and until:YYYY-MM-DD into the search bar, then open the Latest tab.](/blog/twitter-search/search-tweets-by-date/)
-   [How to Search Tweets by Likes, Reposts and Replies To search tweets by likes on X, add min\_faves: and a number to your query, for example bitcoin min\_faves:1000 for posts with at least 1,000 likes.](/blog/twitter-search/search-by-engagement/)
-   [How to Search Tweets From a Specific User To search tweets from a specific user on X, type from:username into the search bar, followed by any keyword you remember.](/blog/twitter-search/search-tweets-from-user/)
-   [since: and until: Explained: X Date and Time Operators since: returns posts on or after a date, and until: returns posts before a date, so since:2026-01-01 until:2026-02-01 covers exactly January 2026.](/blog/twitter-search/since-until-operators/)
-   [Twitter (X) Advanced Search Operators Twitter (X) advanced search operators are commands you type into the X search bar to filter posts by account, date, words, engagement and media.](/blog/twitter-search/advanced-search-operators/)
-   [Why X Search Can't Find an Old Tweet (and What to Try) X search can't find an old tweet when the post was deleted, sits on a protected, suspended or deactivated account, or when your query's words or dates don't.](/blog/twitter-search/old-tweet-not-showing/)
-   [Scraping X (Twitter) data: guides by task Turning an X search query into structured data: which actor fits each job, what a run costs, and the limits that decide how you batch it.](/blog/twitter-scraping/)
-   [How to Scrape Tweets by Date Range To scrape tweets by date range, add since: and until: to the query in the searchTerms input of apidojo's Tweet Scraper V2, and split long periods into.](/blog/twitter-scraping/scrape-tweets-by-date/)
-   [How to Scrape Tweets by Keyword To scrape tweets by keyword, put the keyword query in the searchTerms input of apidojo's Tweet Scraper V2 on Apify, set sort and maxItems, and run it.](/blog/twitter-scraping/scrape-tweets-by-keyword/)
-   [How to Scrape Twitter (X) Data in 2026 To scrape Twitter (X) data in 2026, run an X search query through a scraper such as apidojo's Tweet Scraper V2 on Apify, which returns each matching post as.](/blog/twitter-scraping/how-to-scrape-twitter/)
-   [X API vs scraping: endpoints, limits and costs What the official X search endpoints return, what they cost per post, and when a scraper covers the same history for less.](/blog/twitter-api/)
-   [Twitter Search API: Search Tweets by Keyword, User and Date The Twitter (X) search API is a pair of endpoints that return posts matching a query: recent search covers the last 7 days, and full-archive search reaches.](/blog/twitter-api/search-api/)
-   [What web scraping is and when to use it The vocabulary, the legal lines, and the choice between a proxy that returns HTML and an API that returns records. Start here if you are new to this.](/blog/web-scraping/)
-   [What is web scraping, and when is an API cheaper? Web scraping is reading a public page and turning it into records. The real decision is whether you write the parser yourself or buy one already written.](/blog/web-scraping/what-is-web-scraping/)
