X (Twitter) search is far more capable than the single search box suggests. Underneath it sits a query language of operators that can pin down a tweet by author, date, phrase, engagement level, and content type — the difference between scrolling for twenty minutes and finding the exact post in ten seconds. Note that on X itself, search requires being logged in these days; the operators below work in the standard search box once you are. Here's the working vocabulary.
The core operators
- from:handle — posts written by an account. from:nasa mars finds NASA's posts mentioning Mars.
- to:handle — replies directed at an account.
- @handle — any post mentioning the account, including quote posts.
- "exact phrase" — quotation marks force exact matching. Without them, X matches words independently and "helpfully" includes variants.
- -word — the minus sign excludes. python -snake is the classic example, and -filter:replies or -from:handle work too.
- OR — uppercase OR broadens: (bitcoin OR ethereum) crash. Parentheses group terms exactly as you'd hope.
Date ranges: the underrated power move
since: and until: take dates in YYYY-MM-DD format and bound your search in time. This is the single most useful trick for research: "what did this account say about the merger in March 2024" becomes from:handle merger since:2024-03-01 until:2024-04-01. It's also how you dig up first reactions to a news event before the hindsight takes over — bound the search to the event's first 24 hours and you get the raw, unedited record.
Filtering by content type
- filter:media / filter:images / filter:native_video — only posts with attachments of that kind.
- filter:links — only posts containing URLs; combine with a domain like url:nytimes.com to find posts linking to a specific site.
- filter:replies — only replies; negate it to see only original posts.
- filter:verified — only posts from verified accounts (whatever verification means in a given year).
Filtering by engagement
min_faves:100, min_retweets:50, and min_replies:10 set floors on likes, reposts, and replies. These are the noise filters: searching a busy topic with min_faves:500 strips out the chatter and leaves posts that landed. They're also the fastest way to find an account's greatest hits: from:handle min_faves:1000. A caveat from experience: engagement operators are the least officially documented of the bunch and have occasionally behaved inconsistently — if results look wrong, lower the threshold and verify.
Recipes worth stealing
- Find a half-remembered tweet: "the exact words you remember" since:2023-01-01 until:2023-12-31 — quote the distinctive phrase, bound the year.
- An account's take on one topic: from:handle (topic OR synonym OR hashtag).
- What people are actually saying about your product: productname -from:yourcompany -filter:links min_faves:5 — excludes your own marketing and low-effort link spam.
- Primary sources during breaking news: "eyewitness OR happening" nearby-place filter:media since:today's-date, then verify like a journalist, because breaking-news search results are a misinformation minefield.
- Deleted-adjacent archaeology: search replies to:handle during a date range to reconstruct what a since-deleted post probably said from the reactions it drew.
The Advanced Search form
If you'd rather not memorize syntax, the Advanced Search form (reachable from the filter menu on the search results page on desktop) exposes most of these operators as form fields — words, phrases, accounts, engagement minimums, and date ranges — and simply builds the operator query for you. Watching what it generates in the search box is, incidentally, the fastest way to learn the syntax: fill in the form once, look at the resulting query string, and you'll have absorbed half of this article without trying. The form is desktop-only in practice, so mobile users are the ones who benefit most from learning the raw operators.
Three lesser-known operators
A few operators rarely make the listicles but earn their keep. lang: restricts results to a language code — lang:ja for Japanese, lang:de for German — which is invaluable when a term exists in multiple languages, or when you want local reactions to an international event rather than the English-language commentary about it. list: searches within a specific list's members, letting you query a hand-curated set of experts instead of the whole platform. And combining to: with from: reconstructs a two-person conversation: from:alice to:bob shows one side, swap the handles for the other. Save the query patterns you use repeatedly somewhere handy — the platform's saved-search feature holds a limited number, and a plain text file of your greatest hits never expires.
Limits to keep in mind
Search coverage is not a complete archive: protected accounts never appear (see public vs. protected accounts), deleted posts vanish, and the index has historically been shallower for very old or very unpopular content. Results are also ranked by default — switch to the "Latest" tab for a strict reverse-chronological view, a distinction we explore more generally in chronological vs. algorithmic feeds. For anything you truly need preserved, screenshot it or archive it the moment you find it; on today's X, a search result is a snapshot, not a guarantee.