Advanced Twitter Search Operators Cheatsheet

These operators work on Web, Twitter Explore page search bar, Mobile, TweetDeck and ExportData historical tweets export page.

Tweet Content Operators

Operator
Explanation
Example
breaking news

(breaking news)

Finds tweets containing both "breaking" and "news" words. Spaces are implicit AND operators. Brackets can be used to group individual words if using other operators. ?
competition OR airdrop Either "competition" or "airdrop". OR must be in uppercase. ?
"state of the art" The complete phrase "state of the art". Will also match "state-of-the-art". Also use quotes to prevent spelling correction. ?
"this is the * time this week" A complete phrase with a wildcard. * does not work outside of a quoted phrase or without spaces. ?
+radiooooo Force a term to be included as-is. Useful to prevent spelling correction. ?
-love
-"live laugh love"
- is used for excluding "love". Also applies to quoted phrases and other operators. ?
#tgif A hashtag ?
$TWTR A cashtag, like hashtags but for stock symbols ?
What ? Question marks are matched ?
:) OR :( Some emoticons are matched, positive :) :-) :P :D or negative :-( :( ?
? Emoji searches are also matched. Usually needs another operator to work. ?
url:google.com urls are tokenized and matched, works very well for subdomains and domains, not so well for long urls, depends on url. Youtube ids work well. Works for both shortened and canonical urls, eg: gu.com shortener for theguardian.com. When searching for Domains with hyphens in it, you have to replace the hyphen by an underscore (like url:t_mobile.com) but underscores _ are also tokenized out, and may not match ?
lang:en Search for tweets in specified language. Not always accurate. Language is specified in 2-letter ISO code. ?

There are some special language codes that work:

  • lang:und – undefined language.
  • lang:qam – for tweets with mentions only (works for tweets since 2022-06-14).
  • lang:qct – for tweets with cashtags only (works for tweets since 2022-06-14).
  • lang:qht – for tweets with hashtags only (works for tweets since 2022-06-14).
  • lang:qme – for tweets with media links only (works for tweets since 2022-06-14).
  • lang:qst – for tweets with very short text (works for tweets since 2022-06-14).
  • lang:zxx – for tweets with either media or Twitter Card only, without any additional text (works for tweets since 2022-06-14`.

User Specific Operators

Operator
Explanation
Example
from:user Sent by a particular @username e.g. "dogs from:NASA" ?
to:user Replying to a particular @username ?
@user Mentioning a particular @username. Combine with -from:username to get only mentions ?
list:108534289
list:user/list-slug
Tweets from members of this public list. Use the list ID from the API or with urls like https://twitter.com/i/lists/4143216. List slug is for old list urls like http://twitter.com/nasa/lists/astronauts. Cannot be negated, so you can’t search for "not on list". ?
filter:verified From verified users ?
filter:follows Only from accounts you follow. Cannot be negated. ?
filter:social
filter:trusted
Only from algorithmically expanded network of accounts based your own follows and activities. Works on "Top" results not "Latest" ?

Geo Operators

Operator
Explanation
Example
near:city Geotagged in this place. Also supports Phrases, eg: near:"The Hague" ?
near:me Near where twitter thinks you are ?
within:radius Within specific radius of the "near" operator, to apply a limit. Can use km or mi. e.g. fire near:san-francisco within:10km ?
geocode:lat,long,radius E.g., to get tweets 10km around twitters hq, use geocode:37.7764685,-122.4172004,10km ?
place:96683cc9126741d1 Search tweets by Place Object ID eg: USA Place ID is 96683cc9126741d1 ?

Time Operators

Operator
Explanation
Example
since:yyyy-mm-dd On or after (inclusive) a specified date ?
until:yyyy-mm-dd Before (NOT inclusive) a specified date. Combine with a "since" operator for dates between. ?
since_time:1142974200 On or after a specified unix timestamp in seconds. Combine with the "until" operator for dates between. Maybe easier to use than since_id below. ?
until_time:1142974215 Before a specified unix timestamp in seconds. Combine with a "since" operator for dates between. Maybe easier to use than max_id below. ?
since_id:tweet_id After (NOT inclusive) a specified Snowflake ID ?
max_id:tweet_id At or before (inclusive) a specified Snowflake ID (see Note below) ?
within_time:2d
within_time:3h
within_time:5m
within_time:30s
Search within the last number of days, hours, minutes, or seconds ?

Tweet Type Operators

Operator
Explanation
Example
filter:nativeretweets Only retweets created using the retweet button. Works well combined with from: to show only retweets. ?
include:nativeretweets Native retweets are excluded by default. This shows them. In contrast to filter:, which shows only retweets, this includes retweets in addition to other tweets ?
filter:retweets Old style retweets ("RT") + quoted tweets. ?
filter:replies Tweet is a reply to another Tweet. good for finding conversations, or threads if you add or remove to:user ?
conversation_id:tweet_id Tweets that are part of a thread (direct replies and other replies) ?
filter:quote Contain Quote Tweets ?
quoted_tweet_id:tweet_id Search for quotes of a specific tweet ?
quoted_user_id:user_id Search for all quotes of a specific user ?
card_name:poll2choice_text_only
card_name:poll3choice_text_only
card_name:poll4choice_text_only
card_name:poll2choice_image
card_name:poll3choice_image
card_name:poll4choice_image
Tweets containing polls. For polls containing 2, 3, 4 choices, or image Polls. ?

Engagement Operators

Operator
Explanation
Example
filter:has_engagement Has some engagement (replies, likes, retweets). Can be negated to find tweets with no engagement. ?
min_retweets:5 A minimum number of Retweets. Counts seem to be approximate for larger (1000+) values. ?
min_faves:10 A minimum number of Likes ?
min_replies:100 A minimum number of replies ?
-min_retweets:500 A maximum number of Retweets ?
-min_faves:500 A maximum number of Likes ?
-min_replies:100 A maximum number of replies ?

Media Operators

Operator
Explanation
Example
filter:media All media types. ?
filter:twimg Native Twitter images (pic.twitter.com links) ?
filter:images All images. ?
filter:videos All video types, including native Twitter video and external sources such as Youtube. ?
filter:periscope Periscopes ?
filter:native_video All Twitter-owned video types (native video, vine, periscope) ?
filter:vine Vines (RIP) ?
filter:consumer_video Twitter native video only ?
filter:pro_video Twitter pro video (Amplify) only ?
filter:spaces Twitter Spaces only ?

Filter Operators

Operator
Explanation
Example
filter:links Only containing some URL, includes media. use -filter:media for urls that aren’t media ?
filter:mentions Containing any sort of @mentions ?
filter:news Containing link to a news story. Combine with a list operator to narrow the user set down further. ?
filter:safe Excluding NSFW content. Excludes content that users have marked as "Potentially Sensitive". Doesn’t always guarantee SFW results. ?
filter:hashtags Only Tweets with Hashtags. ?

App Specific Operators

Operator
Explanation
Example
source:client_name Sent from a specified client e.g. source:tweetdeck (See Note for common ones) eg: twitter_ads doesn’t work on it’s own, but does with another operator. ?
card_domain:pscp.tv Matches domain name in a Twitter Card. Mostly equivalent to url: operator. ?
card_url:pscp.tv Matches domain name in a Card, but with different results to card_domain. ?
card_name:audio Tweets with a Player Card (Links to Audio sources, Spotify, Soundcloud etc.) ?
card_name:animated_gif Tweets With GIFs ?
card_name:player Tweets with a Player Card ?
card_name:app
card_name:promo_image_app
Tweets with links to an App Card. promo_app does not work, promo_image_app is for an app link with a large image, usually posted in Ads. ?
card_name:summary Only Small image summary cards ?
card_name:summary_large_image Only large image Cards ?
card_name:promo_website Larger than summary_large_image, usually posted via Ads ?
card_name:promo_image_convo
card_name:promo_video_convo
Finds Conversational Ads cards. ?
card_name:3260518932:moment Finds Moments cards. 3260518932 is the user ID of @TwitterMoments, but the search finds moments for everyone, not that specific user. ?

Building queries

Searching tweets that quote specific user

In order to find all the tweets that quote a specific user, we should search for a Tweet like URL and exclude tweets from the user.

Here is an example of searching tweets that quote tweets written by @ElonMusk:

twitter.com/elonmusk/status/ -elonmusk

Negation

Most filter:type operators can also be negated using the - symbol, with exceptions such as filter:follows.

For example,from:shl filter:media -filter:images returns all tweets from @shl with all types of media except images.

Complex query example

Let’s search for mentions of “space” and either “big” or “large” by members of European Space Agency astronauts List, sent from an iPhone or twitter.com, with images, excluding mentions of #asteroid, since 2011.

space (big OR large) list:esa/astronauts (source:twitter_for_iphone OR source:twitter_web_client) filter:images since:2011-01-01 -#asteroid

Matching edge cases

  • Words might match on the user name, screen name, tweet text and url text (both shortened and expanded).
  • Top results are limited. Twitter has some kind of threshold for engagements such as retweets, replies and likes count.
  • Spelling corrections appear sometimes.
  • Plurals will match. E.g. bulls will match bull.
  • Private accounts are not included in the search index and their tweets do not appear in results.
  • Locked or suspended accounts are excluded from results.
  • Tweets might be excluded from results due to Platform Use violations or anti-spam features.
  • Twitter is interpreting some words. For instance, when you search for photo, Twitter assumes you are looking for tweets with image media. If you want to search for literal word, you need to wrap the word in double quotes like "photo".

Limitations

Here we will gather known limitations of Twitter search.

Operators

  • The maximum number of operators seems to be about 22 or 23.
  • card_name: operator works only for the last 7-8 days.

Geo searches

Very few tweets have exact geo coordinates. In June 2019, Twitter removed the ability to tag Tweets with precise location when using the Twitter iOS or Android apps.

Instead, it is possible to tag tweets with a Place object. However, based on  Twitter Tweet location FAQ, sharing precise location is disabled by default. Users need to opt in to use it.

According to Advanced filtering with geo data, at most 1%-2% of tweets are geo-tagged.

Resources