X (Twitter) search is considerably more powerful than the search box suggests, and the operator syntax has survived every rebrand and API change largely intact. This is a reference for the operators that work on the web and mobile search interface, plus a note on where the API's query language differs — because the two are similar enough to confuse and different enough to break a query.
Core operators
These form the base of every useful query. Everything else is refinement.
| Operator | Example | What it does |
|---|---|---|
| "exact phrase" | "alternative to notion" | Matches the words in order. The most important operator in the list. |
| OR | alternative OR replacement | Matches either term. Must be uppercase; lowercase "or" is treated as a word. |
| space (implicit AND) | slow expensive | Matches posts containing both terms anywhere. |
| -term | crm -hiring | Excludes posts containing the term. Works on phrases and on other operators. |
| ( ) | (slow OR buggy) crm | Groups terms. Essential once a query has more than one OR. |
| #hashtag | #buildinpublic | Matches the hashtag specifically rather than the bare word. |
| $cashtag | $TSLA | Matches a ticker symbol. |
Account operators
| Operator | Example | What it does |
|---|---|---|
| from: | from:someaccount | Posts authored by that account. Combine with a keyword to search one person's history. |
| to: | to:somecompany | Replies directed at that account. The fastest way to read complaints aimed at a competitor's support handle. |
| @account | @somecompany | Posts mentioning the account anywhere, including quotes and passing references. |
| list: | list:12345678 | Restricts results to posts from members of a list, by numeric list ID. Useful for searching an ICP list you have curated. |
The distinction between to: and @ matters more than it looks. to:competitor complaint surfaces people addressing the company directly — usually support issues and churn risk. @competitor surfaces the much larger set of people discussing them in the third person, which is where comparison conversations live.
Content type filters
| Operator | What it matches | Typical use |
|---|---|---|
| filter:links | Posts containing a URL | Almost always used negatively, to strip out automated and promotional posts. |
| filter:media | Posts with any attached media | Finding screenshots of error states or competitor dashboards. |
| filter:images | Posts with images | Narrower version of the above. |
| filter:videos | Posts with video | Rarely useful for intent work. |
| filter:replies | Only replies | Buying intent often surfaces in replies, not top-level posts. Do not exclude these by default. |
| -filter:replies | Only original posts | Good for brand monitoring, harmful for intent monitoring. |
| filter:nativeretweets | Only retweets | Almost always used as a negative. |
| -filter:nativeretweets | Excludes retweets | Belongs on nearly every monitoring query you write. |
| filter:quote | Quote posts | Finding commentary layered on top of an announcement. |
| filter:verified | Posts from verified accounts | Less meaningful as a quality signal than it once was, since verification became purchasable. |
Engagement thresholds
| Operator | Example | What it does |
|---|---|---|
| min_faves: | min_faves:50 | At least that many likes. |
| min_retweets: | min_retweets:10 | At least that many retweets. |
| min_replies: | min_replies:5 | At least that many replies. The most useful of the three for finding discussions rather than broadcasts. |
These are the most misused operators in the set. They are excellent for finding what a market is talking about and actively harmful for finding who wants to buy. A person asking "does anyone know a tool that does X" generates almost no engagement, which is precisely why the opportunity is uncontested — and precisely why min_faves:20 will hide it from you.
Rule of thumb: engagement thresholds belong in discovery queries and nowhere near intent queries.
Dates, language, and location
| Operator | Example | Notes |
|---|---|---|
| since: | since:2026-01-01 | Posts on or after that date. Format is YYYY-MM-DD. |
| until: | until:2026-03-31 | Posts before that date. Combine with since: for a window. |
| lang: | lang:en | Restricts by detected language. Detection is imperfect on very short posts. |
| url: | url:yourdomain.com | Posts linking to a domain or containing it in the expanded URL. Useful for catching unlinked-ish shares of your site. |
| near: / within: | near:London within:25km | Geographic filtering. Depends on posts carrying location data, which most no longer do — treat results as a small, unrepresentative subset. |
The date operators have a non-obvious use in monitoring work: running the same intent query with a rolling since: of a few days is the manual equivalent of a polling window, and it is how you audit whether your automated setup is actually catching everything.
Combinations worth saving
These are complete, working queries. Substitute your own terms.
Competitor churn watch. (from the switching vocabulary, excluding noise)
("switching from [competitor]" OR "leaving [competitor]" OR "cancelled [competitor]" OR "moving off [competitor]") lang:en -filter:nativeretweets
Category recommendation requests.
("any recommendations for" OR "anyone know a tool" OR "what do you use for") [category noun] lang:en -filter:nativeretweets -filter:links
Workaround confessions. (buyers who do not know your category exists)
("spreadsheet to track" OR "wrote a script to" OR "doing this manually") [your domain noun] lang:en -filter:nativeretweets
Support complaints aimed at a competitor.
to:[competitor handle] (broken OR "not working" OR slow OR "still waiting") -filter:nativeretweets
Market discovery, weekly skim. (this is where engagement thresholds belong)
[category noun] min_replies:5 lang:en -filter:nativeretweets
Where the API query language differs
If you are building on the X API rather than using the search box, the syntax is related but not identical, and queries do not transfer cleanly.
The API's recent-search endpoint uses operators such as is:retweet, is:reply, is:quote, and has:links in place of the filter: family, and expresses time as request parameters (start and end time) rather than since: and until: inside the query string. It also exposes conversation_id:, which has no web equivalent and is genuinely useful for pulling a whole reply tree.
Engagement thresholds such as min_faves: are a web search feature and are not part of the standard API query grammar; filtering by engagement through the API generally means retrieving posts and filtering them yourself. Operator availability also varies by API access level, which is a recurring source of queries that work in one account and fail in another. As of writing, check the current documentation before assuming any given operator is available to your tier.
Gotchas
OR must be uppercase. Lowercase "or" is searched as a word, which silently narrows your query instead of widening it.
Negation binds to one term. -"exact phrase" works; -word1 word2 only excludes word1.
Search does not reliably reach far back. The public search interface surfaces recent content much more completely than historical content. Long since: windows return a thinner slice than you would expect, and this is not something a query can fix.
Results are not exhaustive. The default search tab is ranked rather than complete. Switching to the Latest tab gives a more chronological and more complete picture, and it is the correct tab for monitoring work.
Saved searches do not alert. X will store a query for you; it will not tell you when something matches it. That gap is the entire reason monitoring tools exist.
FREQUENTLY ASKED QUESTIONS
Questions about X search operators
Does min_faves work in the X API?
It is a feature of the web and mobile search interface rather than the standard API query grammar. Through the API you generally retrieve posts and apply engagement filtering yourself.
Why does my OR query return too few results?
Almost always because OR was typed in lowercase, in which case it is matched as an ordinary word and the query becomes a narrower AND search.
How far back does X search go?
The interface accepts old dates, but coverage thins considerably the further back you go. Recent content is returned far more completely, so treat historical searches as a sample rather than a full record.
Can I get alerts for a saved search?
No. X saves the query but does not notify you when new posts match it. Continuous alerting requires a separate monitoring tool that polls on your behalf.
OPERATORS PLUS ALERTING
A good query is useless if nobody runs it at 2am.
MentionSpot runs your X and Reddit queries continuously, scores each match for buying intent, and surfaces only the ones worth reading.
Get the 7-day pass