Twitter Advanced Search
Twitter Advanced Search: Operators, Leads & Conversations
If you build websites, a founder asking for a Webflow developer is worth finding even if their post has two likes. So is someone complaining that updating their site takes a week, or asking whether they should leave WordPress. You could spend hours in your feed and miss all three.
Twitter Advanced Search gives you a way to look for those conversations deliberately. The range of filters is surprisingly broad: words and phrases, specific accounts, languages, dates, likes, replies, links, media. You can combine them to get quite close to the kind of discussion you have in mind.
For example, this query looks for English posts mentioning Webflow or WordPress, with more than 10 likes, from blue-check accounts, excluding replies and links:
(Webflow OR WordPress) lang:en min_faves:11 filter:blue_verified -filter:replies -filter:links
That's a useful starting point for finding posts that have attracted some attention. It would be a poor default for finding clients, though. The founder asking for a developer might have no checkmark, no likes and a link to the website they need help with. Each extra filter is another reason their post could disappear.
The useful part is knowing which conditions belong in a particular search. A search for people ready to hire should look quite different from one for discussions worth joining.
The queries in this article go straight into X's search bar. If you prefer building one visually, use X Advanced Search. The full operator reference is below, including limitations of the less reliable filters.
The words people use when they need something
A broad search for “web design” gives you everyone talking about web design: designers showing their work, agencies sharing advice, people promoting courses. If you're looking for a client, their post is more likely to contain a request.
("can anyone recommend" OR "looking for" OR "need a") ("Webflow developer" OR "web designer") lang:en
The two groups do different jobs. The first catches the request; the second ties it to a service. Within each group, uppercase OR allows alternatives. Between the groups, the space means both conditions must match. Without OR, a string of words asks X to find all of them, which can make a perfectly reasonable search much too restrictive.
Exact phrases are useful here because “looking for” says more about someone's intention than “looking” and “for” appearing somewhere in the same post. They also leave gaps. Someone saying “who built your website?” won't match the query above. Neither will “any good Webflow people around?”
This is where reading the results pays off. When you find a relevant request with wording you hadn't thought of, keep that phrase. A few searches based on how your audience actually speaks will serve you better than a huge list of terms borrowed from a marketing page.
For these requests, use Latest and leave out minimum engagement. Timing matters more than popularity: you want to find the question while the person is still considering answers. Top results are personalized, so that view is less useful as a record of what's just been posted.
There is also a difference between a freelance brief and a job listing. If full-time roles keep appearing, adding -"full time" or -"job opening" can help. Excluding hiring altogether is much riskier. A small business owner can use that word when they want someone for a three-day project.
Some of the best searches start with a complaint
People don't always know what kind of help they need. A business owner might describe a slow website without ever mentioning performance optimization. Someone spending their Friday chasing invoices may have no interest in talking about “accounts receivable.”
For a developer, that opens up a different set of searches:
("website is slow" OR "site keeps crashing" OR "WordPress is a nightmare") lang:en
These results need more judgment than a direct request for a recommendation. A developer venting about their own project, a customer complaining about a retailer's site and a business owner struggling with their website are very different conversations. The keyword match gets you to the post. The profile and replies tell you whether your experience is relevant.
Switching language can be more specific. Someone who names the thing they want to leave has already given you a starting point:
("moving away from WordPress" OR "switching from WordPress" OR "alternative to WordPress") lang:en -filter:links
Removing links is useful when comparison articles and promotional posts swamp the results. It also removes people linking to their current site, so keep a version of this search without that restriction. The same tradeoff comes up with almost every attempt to clean up a search: some of the noise looks very similar to the thing you want.
A complaint about WordPress doesn't necessarily mean someone needs a rebuild. Their actual issue could be hosting, an abandoned plugin or the fact that nobody showed them how to edit a page. Read far enough to understand that before offering a solution. A specific answer about their problem gives them a reason to continue the conversation.
Even when there is no immediate opportunity, repeated complaints are useful research. If several people describe the same difficulty, you have the wording for a better search and a question worth answering in your own content. Keep the context with it: who had the problem, what they tried and what finally helped. A list of isolated keywords loses most of that value.
When likes and replies become useful filters
Engagement thresholds make more sense when you want to find a discussion that is already underway. You might want to compare opinions, contribute an example from your work or find out which questions people keep asking about a subject.
(Webflow OR WordPress) (pricing OR migration) lang:en min_faves:10 min_replies:3 -filter:replies -filter:links
This asks for posts about pricing or migration that have at least 10 likes and three replies. Excluding replies helps surface the posts people are gathering around. The numbers are starting points; a narrow specialty may need much lower thresholds than a broad subject like AI.
There is a small but useful distinction between the two counts. Likes tell you a post attracted a reaction. A minimum reply count helps find somewhere a conversation may be happening. Neither tells you whether that conversation is any good. Three people comparing the cost of migrating a site may be more relevant to your work than hundreds arguing about which platform is dead.
It's worth checking the replies before spending time on an answer. Does the author respond? Are people asking follow-up questions? Is there an unresolved point you can help with? Those details tell you more about whether to join in than another zero on the view count.
Recency matters here too. Add since:YYYY-MM-DD with the date you want, or try a rolling window such as within_time:2d. The latter is undocumented, so a fixed date is the fallback if it stops behaving as expected.
The blue-check restriction in the opening example is optional. It can narrow the accounts you see, but a badge doesn't tell you whether their audience is relevant to you. For finding knowledgeable people in a niche, the substance of their posts and the replies they attract are much better things to inspect.
A useful account gives you more than one place to look
Once you find someone whose posts regularly attract the people you want to understand, you can search around that account. Their own posts are only part of the picture.
Say a founder often writes about running a Shopify store. Searching from:accountname checkout finds what they've said about checkout. Searching to:accountname checkout looks for replies addressed to them on that subject. Replace accountname with their handle.
The second search can be especially interesting. The original post might be broad advice, while a reply describes a concrete problem: a payment method missing in one country, an unexpected shipping charge or a checkout page that behaves differently on mobile. Those details can lead you to a more useful conversation than the original post.
You can widen this to mentions with @accountname checkout, or narrow it to reply posts with filter:replies. This is why excluding replies from every search is a mistake. It makes a general topic search easier to browse, but it removes the part of the conversation where people explain their circumstances.
When a handful of accounts keep proving useful, a public X List can give you a more focused search area. Use list:LIST_ID with the numeric ID from the list's URL, followed by your topic. For accounts you already follow, filter:follows serves a similar purpose.
URLs offer another route to relevant people. url:github.com migration, for example, looks for matching GitHub links alongside migration. You could substitute an industry publication or a particular domain to find people sharing material you care about, including shares that never tag the publisher.
Keep the searches that produce something useful
A search becomes easier to refine once you can describe what's wrong with the results. Too many agencies advertising? You may need stronger request language. One account posting the same promotion over and over? -from:username removes that account without excluding words a potential client might also use. Lots of old requests? Change the date range before changing the keywords.
Be more careful when a search returns nothing. Start by taking out likes, badges and content filters, then loosen any exact phrases. It's easy to build a query that sounds sensible in English but asks for a combination of conditions almost nobody meets.
If a post you can open still won't appear, see why Twitter search misses posts for ways to separate query problems, viewer settings and incomplete results.
Dates have one particular catch: until: excludes the date you give it. Searching an account's posts throughout September would look like this:
from:accountname since:2026-09-01 until:2026-10-01
That can be useful for finding a post you remember, or checking what someone was discussing before a launch or a change of direction. It won't give you a guaranteed complete archive. X acknowledges that not every post appears in search, and protected posts remain subject to the account's privacy settings. If your own posts keep disappearing from results, the Twitter shadowban article explains how to investigate search and reply visibility.
Save a few searches that do different jobs: direct requests, problems you can help with and active discussions in your field. Keep the wording that brings back relevant people, and change the parts that repeatedly waste your time. For finding leads, the useful measure is whether a search brings you to someone whose problem you understand well enough to help.
Once a search consistently finds worthwhile conversations, the next question is how to keep up with new matches. Our comparison of Twitter monitoring tools covers live search columns, alerts, collection delays and what to test before paying for a subscription.
Twitter Advanced Search operator reference
These are the search-bar operators, grouped by what they filter. If you are writing code against the API, use the separate API query reference.
X documents the main advanced-search fields. Some of the extra operators come from community testing, and several older filters have become unreliable. Those limitations are noted below.
Words, phrases and Boolean logic
| Operator | Use |
|---|---|
"exact phrase" | Match adjacent words in that order. Punctuation may be normalized. |
word1 word2 | Require both words. A space acts as AND. |
word1 OR word2 | Match either word. OR must be uppercase. |
-word | Exclude a word. Use -"exact phrase" for a phrase. |
(word1 OR word2) word3 | Group alternatives, then require another term. |
Accounts, tags and language
| Operator | Use |
|---|---|
#hashtag | Search for a hashtag. |
$BTC | Search for a cashtag. Replace BTC with the relevant ticker. |
@username | Find mentions of an account. |
from:username | Find posts from an account. |
to:username | Find replies addressed to an account. |
list:LIST_ID | Search posts by members of a public list. Use its numeric ID. |
lang:en | Filter by detected language. Other examples: es, fr, de, lt, ja, zh, ar, ru and pt. Detection can be imperfect. |
filter:follows | Restrict to accounts you follow. Requires your signed-in context. |
filter:verified | Community-documented verified-account filter. Do not assume it reflects an older, pre-subscription definition of verification. |
filter:blue_verified | Community-documented blue-check filter. Confirm results visually. |
For the current meaning of a blue checkmark, see X's badge documentation.
Minimum engagement
| Operator | Use |
|---|---|
min_faves:10 | At least 10 likes. The operator keeps the old “favorites” name. |
min_retweets:10 | At least 10 reposts. |
min_replies:10 | At least 10 replies. |
-min_faves:1000 | Experimental upper-bound workaround intended to exclude posts with 1,000 or more likes. Verify behavior before using it. |
The standard form provides minimums, with no documented max_* equivalents. Remember that min_faves:10 includes posts with exactly 10 likes; use 11 for more than 10.
Media, links and post types
| Operator | Intended use and limitations |
|---|---|
filter:media | Posts with photos or video. |
filter:images | Posts with images. |
filter:videos | Posts with video. |
filter:native_video | Native video content, rather than an ordinary external video link. May also match older Twitter-hosted video formats. |
filter:links | Posts with links. Media URLs can also affect this filter. |
filter:news | Links to recognized news sources. |
filter:safe | Filters potentially sensitive content, subject to classification errors. |
filter:replies | Reply posts. Add a minus sign to exclude them. |
filter:self_threads | Self-thread posts, rather than a complete thread presented in order. |
filter:quote | Quote posts. |
filter:nativeretweets | Intended to return native reposts. Current behavior has reported inconsistencies. |
include:nativeretweets | Historically used to include native reposts alongside other results. Also subject to reported inconsistencies. |
filter:retweets | Legacy retweet-related filter. Do not treat it as a dependable equivalent to “include every native repost.” |
filter:spaces | Posts with a Space link, including Spaces that have ended. |
filter:periscope | Legacy Periscope content. |
filter:vine | Legacy Vine content. |
A March 2026 user report describes unexpected keyword matching with native-repost filters. If your task depends on identifying reposts precisely, inspect the results individually.
Dates and rolling time windows
| Operator | Use |
|---|---|
since:YYYY-MM-DD | Start on this date, inclusive. |
until:YYYY-MM-DD | End before this date, exclusive. |
since_time:UNIX | More granular start using a Unix timestamp in seconds, not milliseconds. |
until_time:UNIX | More granular end using a Unix timestamp in seconds. |
within_time:2d | Rolling window of two days. Other forms include 12h for hours and 30m for minutes. Undocumented; fall back to dates if needed. |
URLs, conversations and cards
| Operator | Use |
|---|---|
url:domain.com | Find matching URLs. Useful for a domain or URL term, but not a guarantee of arbitrary substring matching. |
url:youtube | A broad URL-term search for YouTube-related links. |
conversation_id:ID | Find indexed posts belonging to a conversation. Use the root post's numeric ID. |
card_name:NAME | Historical card-type filter. One poll example is card_name:poll2choice_text_only. Reported unreliable in 2026. |
A June 2026 report about poll searches describes card queries that stopped returning results. Use this as a legacy reference rather than a dependable way to find polls.
Location filters: use with caution
| Operator | Historical purpose |
|---|---|
near:"London" | Search near a named place. |
within:10mi / within:15km | Specify a radius alongside near:. |
place:PLACE_ID | Search a specific place identifier. |
geocode:lat,long,10km | Search a radius around coordinates. Replace lat and long with numbers. |
Location data is sparse, and there are reports of these searches behaving unexpectedly. For local research, a city name used as a regular keyword is another starting point, though you will still need to check where the person is based.
Posting client
source: was used to identify the client that published a post. You may see older examples such as source:"Twitter Web App" or source:"TweetDeck"; community references commonly use normalized forms such as source:twitter_web_app and source:tweetdeck.
There is a June 2026 report of source filtering no longer working. A client name alone also cannot establish whether the account is automated.
Negation: exclude things you do not want
A leading minus sign works with many terms and filters:
-from:usernameexcludes an account's posts.-#nftand-$DOGEexclude a hashtag or cashtag.-filter:linksexcludes matching posts with links.-filter:repliesexcludes replies.-lang:esexcludes posts classified as Spanish.-url:example.comexcludes matching URLs.
Exceptions include list: and filter:follows, which the community operator reference lists as not supporting negation.