What the form does not show you
Every guide to Twitter advanced search shows you the form at x.com/search-advanced. Fill in the boxes. Hit search. Done.
That URL in the bar after you do that is a direct, shareable, bookmarkable link to your exact search.
That URL is a direct, shareable, bookmarkable link to your exact search. It runs the moment anyone clicks it. No form to fill out. No options to remember. It just works.
This is the Twitter advanced search link that power users use. This article explains how to build one from scratch.
The direct URL structure, every operator that works right now, the use cases that produce real results. The workarounds for when X search breaks - which it does, often.
How to get to advanced search (three ways)
There are three ways to reach advanced search on X.
Option 1 - Direct URL. Go to x.com/search-advanced. The old twitter.com/search-advanced still redirects there. You need to be logged in. The form lets you fill fields for keywords, accounts, dates, and engagement without typing a single operator.
Option 2 - From a search result. Run any search in the X search bar. On the results page, look for Advanced search in the left sidebar under the filter options. Click it and the form opens pre-filled with your current query.
Option 3 - Type operators directly. Skip the form entirely. Type your operators straight into the main search bar. from:elonmusk min_faves:1000 works the same as using the form. Faster once you know the syntax.
On mobile: X does not include the advanced search form inside the app. Open x.com/search-advanced in your mobile browser instead. Or type operators directly into the app search bar - those work fine on mobile.
The direct search link structure
When you run a search on X, look at your browser address bar. You will see something like this:
https://x.com/search?q=your+query+here&src=typed_query&f=top
That URL has three working parts.
The query parameter: q=
This is your actual search query. Spaces become plus signs or %20. Special characters get URL-encoded. The colon in operators like min_faves: becomes %3A when URL-encoded, but X also accepts the raw colon in most cases.
The source parameter: src=
This tells X how the search was initiated. Common values are typed_query (you typed it) and recent_search (from your history). For bookmarked or shared links, use typed_query.
The filter parameter: f=
This controls the results tab. Options are:
f=top- Top results, algorithm-rankedf=live- Latest tweets, chronologicalf=user- User and account results onlyf=image- Image results onlyf=video- Video results only
A real example of a direct advanced search link:
https://x.com/search?q=from%3Aelonmusk+min_faves%3A1000&src=typed_query&f=top
That link opens a filtered search of tweets from Elon Musk with 1,000 or more likes, sorted by top results. Anyone who clicks it gets the exact same search. No form needed.
The easiest way to build one: Run your search using the form or the search bar. Copy the URL from your browser. That URL is your direct link. Bookmark it. Share it. Put it in a Notion doc. It will run that exact search every time.
Every operator that works right now
These are the operators real users rely on. Organized by what they do, not by how fancy they sound.
Word and phrase operators
| Operator | What it does | Example |
|---|---|---|
"exact phrase" | Finds tweets with this exact word order | "i wish there was" |
word1 word2 | Finds tweets with both words | cold email SaaS |
word1 OR word2 | Finds tweets with either word (OR must be uppercase) | ChatGPT OR Claude |
-word | Excludes tweets with this word | marketing -crypto |
(group1) (group2) | Groups operators for complex logic | (startup OR saas) (tool OR software) |
+word | Forces exact match, stops autocorrect | +saas |
Account operators
| Operator | What it does | Example |
|---|---|---|
from:username | Tweets sent by this account | from:naval |
to:username | Tweets sent to this account | to:elonmusk |
@username | Mentions of this account | @hubspot |
from:user1 OR from:user2 | Tweets from multiple accounts | from:naval OR from:paulg |
filter:follows | Tweets only from people you follow | marketing filter:follows |
Date operators
| Operator | What it does | Example |
|---|---|---|
since:YYYY-MM-DD | Tweets on or after this date | since:-01-01 |
until:YYYY-MM-DD | Tweets before this date (not inclusive) | until:-12-31 |
within_time:Xh | Tweets from the last N hours (web only) | within_time:6h |
within_time:Xd | Tweets from the last N days (web only) | within_time:7d |
Important: The until: operator is exclusive. until:-02-01 returns tweets up to January 31, not February 1. If you want to include February 1, use until:-02-02. Also, since: alone does not work. You must pair it with a keyword, account, or hashtag.
Find Your Next Customers
Search millions of B2B contacts by title, industry, and location. Export to CSV in one click.
Try ScraperCity FreeDate format warning: Use YYYY-MM-DD format only. No slashes. No other formats. No space after the colon. Getting this wrong produces zero results with no explanation.
Engagement operators
| Operator | What it does | Example |
|---|---|---|
min_faves:N | Tweets with at least N likes | min_faves:100 |
min_retweets:N | Tweets with at least N retweets | min_retweets:50 |
min_replies:N | Tweets with at least N replies | min_replies:10 |
These three operators are the most used in real practitioner searches. The min_faves: operator appears in real user queries more than any other by a wide margin. They let you cut through noise and find content that resonated with an audience.
Content type operators
| Operator | What it does | Example |
|---|---|---|
filter:images | Tweets with images | infographic filter:images |
filter:videos | Tweets with videos | tutorial filter:videos |
filter:media | Tweets with any media | marketing filter:media |
filter:links | Tweets containing links | newsletter filter:links |
filter:mentions | Tweets that mention other accounts | product filter:mentions |
filter:native_video | Tweets with video uploaded directly to X | demo filter:native_video |
filter:replies | Include replies in results | keyword filter:replies |
-filter:retweets | Exclude retweets from results | marketing -filter:retweets |
Language and location operators
| Operator | What it does | Example |
|---|---|---|
lang:en | English tweets only | AI lang:en |
lang:es | Spanish tweets only | marketing lang:es |
near:city | Tweets posted near a city | event near:london |
within:Xkm | Radius around near: location | event near:london within:10km |
Account type operators
| Operator | What it does | Example |
|---|---|---|
filter:verified | Tweets from verified accounts (web only) | funding filter:verified |
filter:blue_verified | Tweets from X Premium subscribers | marketing filter:blue_verified |
The operator gap that breaks developers
This is the part that trips up anyone building with the X API.
The operators above work on the X website and tools that pass queries through web search. The official X API v2 uses completely different naming for several of them. The API silently ignores operators it does not recognize. Your query runs but returns wrong results with no error message.
Here is the web vs API translation table:
| Web operator (works on x.com) | API v2 equivalent |
|---|---|
min_faves:N | min_likes:N |
min_retweets:N | min_reposts:N |
filter:verified | is:verified |
filter:media | has:media |
filter:images | has:images |
filter:links | has:links |
filter:hashtags | has:hashtags |
The official X API v2 does not support engagement operators like min_faves:, min_retweets:, min_replies:, or within_time: at all. If you are using the official API and wondering why your engagement-filtered queries return nothing, this is why.
The web search operators only work on x.com itself, TweetDeck, and third-party tools that route queries through the web search layer rather than the official API.
The within_time: operator
within_time: filters results to tweets posted within the last N time period, counted backward from right now.
Formats that work:
within_time:1h- last hourwithin_time:6h- last 6 hourswithin_time:24h- last 24 hourswithin_time:7d- last 7 days
Practical use: AI within_time:6h min_faves:100 surfaces hot takes on a topic that got traction in the last six hours. Useful for jumping on a fast-moving conversation while it is still early.
The difference between this and since: is that within_time: is relative. It always looks backward from now. since: is a fixed date. For monitoring live conversations, within_time: is faster to type and does not require you to calculate today's date.
This operator is web-only. It does not work through the official X API v2.
How to bookmark and share direct search links
The bookmark strategy is the most underused power move in advanced search.
Run your search. Copy the URL. Save it.
That URL runs your exact query every time anyone opens it. No setup. No typing. One click.
Here are five searches worth bookmarking right now.
Brand mentions without tagging:https://x.com/search?q=%22your+brand+name%22+-from:youraccount&src=typed_query&f=live
This catches people talking about you without using your handle. Switch to f=live for chronological order so you see new mentions as they appear.
Competitor complaints:https://x.com/search?q=%22competitor+name%22+(hate+OR+broken+OR+awful+OR+disappointed)+-filter:retweets&src=typed_query&f=live
Want 1-on-1 Marketing Guidance?
Work directly with operators who have built and sold multiple businesses.
Learn About Galadon GoldBookmarked and refreshed daily, this is a live feed of frustrated competitor customers. Those are the warmest possible leads.
Product gap research:https://x.com/search?q=%22i+wish+there+was%22+OR+%22why+is+there+no%22+min_faves:50&src=typed_query&f=top
This is the highest-ROI search use case in practice. One operator documented finding a tweet with 1,400 likes asking for a freelance expense template. They built it in Google Sheets, posted it, and generated $5,300 in the first month. The tweet was the product validation. The advanced search query found the tweet.
High-engagement posts in your niche:https://x.com/search?q=%22your+niche+keyword%22+min_faves:500+-filter:retweets+lang:en&src=typed_query&f=top
Filter out retweets so you see original posts only. Set the bar at 500 likes to see what is connecting in your space.
Questions with no replies:https://x.com/search?q=%22%3F%22+%22your+keyword%22+min_replies:0+-filter:retweets&src=typed_query&f=live
These are people asking questions publicly with zero responses. Answer them. The engagement rate on replies to unanswered questions is significantly higher than cold outreach to strangers.
X allows you to save up to 25 searches per account. For searches you run daily, use the native save feature. For searches you want to share with a team or embed in a workflow doc, use the direct URL.
Five use cases that produce real results
1. Product validation before you build
Search for phrases like "i wish there was", "why is there no", "someone should build", and "does anyone know a tool that" - each paired with min_faves:50.
The 50-like threshold matters. It filters out individual complaints and surfaces shared frustrations - the kind of problem that enough people feel to make a product viable. A post at 50 or more likes about a missing tool is not one person's opinion.
Full query: "why is there no" min_faves:50 lang:en -filter:retweets
2. Accountability and historical research
The until: operator gets used most often for this. Tweets using until: in real queries average 68 likes compared to 12 likes for equivalent since: queries. The accountability use case resonates because people genuinely want to know what someone claimed before a specific date.
Pattern: topic from:username until:YYYY-MM-DD
This is how journalists and researchers search for what a person said before an event. It also works for tracking your own public commitments - what did you say you would do six months ago?
3. Lead generation from pain points
Search for frustration signals around a product category, then reply with a genuine solution.
Pattern: "[competitor name]" (frustrated OR "doesn't work" OR "not working" OR support) -filter:retweets min_replies:1
The min_replies:1 filter ensures there is at least a thread happening. You can read the conversation before jumping in. Replying cold to a complaint with no context reads as spam. Replying to a thread where you can see the problem reads as helpful.
4. Content research for viral angles
Find what is working in your niche before writing anything.
Pattern: "[your topic]" min_faves:200 -filter:retweets lang:en since:YYYY-MM-DD
Set the date 30 to 60 days back. What comes up is the content that earned the most engagement in your space recently. The angles, the formats, the hooks - all visible. You are not copying anyone. You are reading the scoreboard.
5. Recruiting and hiring signal
X is an underused recruiting channel. People announce job searches and career pivots in public.
Pattern: "looking for a new role" OR "open to opportunities" OR "laid off" [skill keyword] -filter:retweets
Add lang:en and a date range to keep it fresh. This surfaces candidates who have announced availability publicly - far warmer than cold outreach to someone with no signal.
When X search breaks (and what to do)
X search has been reported as degraded by multiple verified accounts and regular users. The complaints are consistent: old tweets stop appearing, date ranges return nothing, and searches that worked last week return no results today.
Find Your Next Customers
Search millions of B2B contacts by title, industry, and location. Export to CSV in one click.
Try ScraperCity FreeThese are not user errors. The search infrastructure has been in active flux. Here are the fixes.
Problem: date range returns zero results.
Fix: Narrow the range. Instead of searching a full year, search one month at a time. If that still fails, try one week. Large date ranges can time out or fail silently. Use since:YYYY-MM-DD until:YYYY-MM-DD with a window no wider than 30 days for reliable results.
Problem: old tweets not appearing.
Fix: Use smaller date windows, one month at a time. X search index for very old content is not complete or reliable. Some operators like filter:nativeretweets only work for approximately the last 7 to 10 days regardless of the date range you set.
Problem: none-of-these-words filter not working.
Fix: Use the minus operator directly in the search bar instead of the form field. Type -word manually. The form field has known inconsistencies. The minus operator is more reliable.
Problem: zero results when you know tweets exist.
Fix: Start over with one operator and add filters one at a time. Over-filtering is the most common cause of empty results. A query with five operators that returns nothing might work fine with two. Remove filters until results appear, then add them back one at a time to find the conflict.
Chrome shortcut workaround: Add X search as a custom Chrome search engine. Go to Settings, then Search engines, then Add. Set the search URL to https://x.com/search?q=%s&src=typed_query. Assign a keyword like xs. Now type xs marketing min_faves:100 in the Chrome address bar and go directly to that search result. Faster than any form.
The negative engagement filter most people miss
Everyone uses min_faves: to find high-engagement tweets. In my experience, the inverse gets ignored.
You can search for low-engagement posts by combining a keyword with a low engagement ceiling. This sounds counterintuitive. Here is why it matters.
Low-engagement tweets about a topic can reveal what people care about that has not been picked up yet. A tweet at 3 likes asking a question nobody answered is a content gap. A tweet at 5 likes making an argument nobody engaged with might be an unpopular but correct take waiting to be made well.
Pattern for finding underserved questions: "?" "your keyword" -filter:retweets min_replies:0
Combine this with a tight date window using since: and until: to find recent questions that got zero traction. Those are the openings. The topic already exists. The audience already searched for it. You just get to be the version they engage with.
Building a complete social listening setup with bookmarks
A functional social listening setup using only advanced search costs nothing beyond an X account.
Here is the full stack.
Tier 1 - Daily checks (bookmark these):
- Brand mentions without tag:
"brand name" -from:youraccount -filter:retweets - Competitor complaints:
"competitor" (frustrated OR broken OR switched OR cancelled) - Industry questions:
"?" "your topic" -filter:retweets min_replies:0
Tier 2 - Weekly checks:
- Viral content in your niche:
"your keyword" min_faves:500 -filter:retweets lang:en since:[7 days ago] - New thought leaders:
"your keyword" min_faves:100 -filter:retweets filter:verified
Tier 3 - Monthly research:
- Product gap signals:
"i wish there was" OR "why is there no" "your category" min_faves:20 - Hiring signals:
"open to work" OR "looking for" [your target skill]
Each of these is a URL. Build them once. Bookmark them in a folder called Search Dashboard. Open the folder every morning. I pay nothing for this and get the same feed I used to pay tools to replicate.
How to search tweets from people you follow only
The filter:follows operator is one of the most powerful and least used in practice.
It restricts results to accounts you follow. Combined with a keyword, it turns your timeline into a searchable database of what people you trust have said about a topic.
Example: cold email filter:follows min_faves:10
That query returns tweets about cold email from people you follow, filtered to posts that got at least 10 likes. It is a fast way to find what the people you respect think about a topic, not what the algorithm promoted to the top of results.
Limitation: filter:follows cannot be negated. You cannot do -filter:follows. Use it to narrow in, not to exclude.
Finding conversations between two accounts
You can find the conversation between any two accounts on X.
Pattern: from:account1 to:account2
This returns tweets that account1 sent directly to account2. To see the full two-way conversation, run it twice - once in each direction.
More advanced version for group conversations: (from:account1 OR from:account2) (to:account1 OR to:account2)
This is useful for tracking public negotiations, public debates, or finding exchanges between competitors and their customers. Any public conversation is searchable with this pattern.
Advanced search for B2B lead generation
Advanced search is one of the most reliable free signals for B2B lead qualification. People announce buying intent, hiring decisions, tool changes, and budget availability in public on X - often without realizing they are broadcasting it.
Buying intent signals to search for:
"looking for a" OR "need a" "your product category" -filter:retweets"switched from" OR "moved from" "competitor name" -filter:retweets"just hired" OR "growing the team" "your target job title" -filter:retweets"we're scaling" OR "company milestone" "your target industry" min_faves:10
The min_faves:10 on the last one is intentional. A company milestone tweet that got some engagement is from an account with an active audience. Those accounts are worth researching further.
Once you have a list of accounts from these searches, you still need contact information to act on the signal. For structured contact enrichment - finding verified emails and pulling decision-maker info from a list - Try ScraperCity free. It searches millions of B2B contacts by title, industry, and company size, and has an email finder and verifier built in.
The search degradation problem
X search is not as reliable as it used to be. Search quality is a structural problem.
Verified accounts with large followings have publicly confirmed that advanced search stopped returning results it used to return. Multiple users have reported search being broken for months at a time with no resolution. X engineering acknowledged a search infrastructure rewrite. The result is inconsistent indexing - some tweets appear in search and some do not, with no clear pattern.
The practical impact: you cannot rely on advanced search to surface every tweet that matches your query. You are getting a sample, not a complete result set.
What this means for your strategy:
- Do not assume absence of results means no one said it. It might mean search did not index it.
- For accountability research, use multiple query variations. The tweet you want might appear under slightly different phrasing.
- For finding your own old tweets, try narrowing date ranges to one month at a time.
- For trend research, the sample bias is likely consistent enough to still show directional signal even if the data is incomplete.
Any guide that does not mention this is giving you a cleaner picture than exists.
Copy-paste queries for the most common use cases
These are ready to use. Replace bracketed terms with your own.
Find viral content in your niche:[keyword] min_faves:200 -filter:retweets lang:en since:YYYY-MM-DD
Find competitor frustration:"[competitor]" (hate OR broken OR "doesn't work" OR disappointed OR frustrated) -filter:retweets
Find product gap tweets:"i wish there was" OR "why is there no" OR "someone should build" min_faves:50 lang:en
Find high-engagement posts from accounts you follow:[keyword] filter:follows min_faves:20
Track your brand mentions:"[your brand]" -from:[your account] -filter:retweets
Find the best takes from verified accounts on a topic:"[topic]" filter:verified min_faves:500 -filter:retweets lang:en
Find unanswered questions in your niche:"?" "[keyword]" -filter:retweets min_replies:0
Find trending hot takes right now:[keyword] within_time:6h min_faves:100 lang:en
Find what a specific account said before a date:from:[username] [topic] until:YYYY-MM-DD
Find conversations between two accounts:from:[account1] to:[account2]
Building the direct URL for any query
Here is the formula to turn any search query into a direct link you can share.
Base URL: https://x.com/search?q=
Then add your query with these rules:
- Spaces become plus signs
- Colons in operators stay as-is in most cases
- Quotes around phrases use %22 when URL-encoding manually
- Add
&src=typed_queryat the end - Add
&f=livefor chronological or&f=topfor ranked
Example: You want to share a search for tweets about cold email with 100 or more likes in English.
Query: cold email min_faves:100 lang:en -filter:retweets
Direct link: https://x.com/search?q=cold+email+min_faves:100+lang:en+-filter:retweets&src=typed_query&f=top
The fastest method: run the search yourself, then copy the URL from your browser. X generates the encoded version automatically. You can clean up the URL manually if you want a shorter version to share.
Saving the URL turns a one-time search into a repeatable research system. One saved URL is one workflow step eliminated every time you need that search.