Comparing X API’s Search Posts endpoints

The v2 Search Tweets endpoint will eventually replace the standard v1.1 search/posts endpoint and enterprise Search API. If you have code, apps, or tools that use an older version of a X search endpoint and are considering migrating to the newer X API v2 endpoints, then this guide is for you. 

This page contains three comparison tables:

Recent search comparison

The following table compares the various types of recent search endpoints:

DescriptionStandard v1.1X API v2
Host domainhttps://api.x.comhttps://api.x.com
Endpoint path/1.1/search/tweets.json/2/tweets/search/recent
AuthenticationOAuth 1.0a User Context
OAuth 2.0 App-Only
OAuth 1.0a User Context

OAuth 2.0 Authorization Code with PKCE

OAuth 2.0 App-Only
Timestamp formatYYYYMMDDYYYY-MM-DDTHH:mm:ssZ
ISO 8601 / RFC 3339
Returns Posts that are no older than7 days7 days
HTTP methods supportedGETGET
Default request rate limits180 requests per 15 min with OAuth 1.0a User Context

450 requests per 15 min with OAuth 2.0 App-Only
Basic:

60 requests per 15 min with OAuth 2.0 App-Only

60 requests per 15 min with OAuth 1.0a User Context

60 requests per 15 min with OAuth 2.0 Authorization Code with PKCE

Pro:

450 requests per 15 min with OAuth 2.0 App-Only

180 requests per 15 min with OAuth 1.0a User Context

180 requests per 15 min with OAuth 2.0 Authorization Code with PKCE
Offers fully unwound URLs
Maximum Posts per response (default)100 (15)100 (10)
Post JSON formatStandard v1.1 formatX API v2 format (determined by fields and expansions request parameters, not backward-compatible with v1.1 formats)

To learn more about how to migrate from the Standard v1.1 format to the X API v2 format, please visit our data formats migration guide.
Supports selecting which fields return in the payload
Supports requesting and receiving annotations
Supports requesting specific metrics within Post object
Supports the conversation_id operator and field
Provides Post edit history
JSON key name for Post data arraystatusesdata
JSON key name for paginationsearch_metadata.next_resultsmeta.next_token
Supports navigating archive by time range
Time resolution of time-based requestsdaysecond
TimezoneUTCUTC
Request parameters for navigating by timeuntilstart_time
end_time
Request parameters for navigating by Post IDsince_id 
max_id
since_id 
until_id
Request parameter for paginationProvides URL-encoded querynext_token
Requires the use of credentials from a developer App associated with a Project

Full-archive search comparison

The following table compares the various types of full-archive search endpoints:

DescriptionEnterpriseX API v2
Host domainhttps://gnip-api.x.comhttps://api.x.com
Endpoint path/search/fullarchive/accounts/:account_name/:label/2/tweets/search/all
AuthenticationBasic authOAuth 2.0 App-Only
Timestamp formatYYYYMMDDHHMMYYYY-MM-DDTHH:mm:ssZ
ISO 8601 / RFC 3339
Returns Posts that are no older thanThe full archive since March 2006The full archive since March 2006
HTTP methods supportedGET
POST
GET
Default request rate limitsThe per minute rate limit will vary by partner as specified in your contract. 

20 requests per sec with Basic auth
300 requests per 15 min with OAuth 2.0 App-Only

1 requests per 1 sec with OAuth 2.0 App-Only
Offers fully unwound URLs
Posts per responseMaximum: 500
Default: 100
Maximum: 500
Default: 10
Post JSON formatNative Enriched or Activity Streams formatX API v2 format (determined by fields and expansions request parameters)
Supports selecting which fields return in the payload
Supports requesting and receiving annotations
Supports requesting specific metrics within Post object
Supports the conversation_id operator and field
Provides Post edit history
JSON key name for Post data arrayresultsdata
JSON key name for paginationnextmeta.next_token
Time resolution of time-based requestssecondsecond
TimezoneUTCUTC
Supports navigating archive by Post ID
Request parameters for navigation by timefromDate
toDate
start_time
end_time
Request parameters for navigating by Post IDsince_id 
until_id
Request parameter for paginationnext_tokennext_token
Requires the use of credentials from a developer App associated with a Project that has Academic Research access

Filtering operator comparison

The four different versions (standard, enterprise, and v2) of search Posts differ in which operators are available, and also have varying levels of operator availability within each version, which are explained below. 

Enterprise

  • There are no sub-tiers of enterprise operators

X API v2

  • **Free: **Available when using any Project
  • Basic: Available when using any Project
  • Pro: Available when using a Project 
  • Enterprise: Available when using a Project 

You can learn more about each of these sets of operators in their respective guides:

Now that we understand the different operator levels within X API v2, here is the table that maps out operator availability for search Posts (note that if the cell is left blank, the operator is not available):

Search operatorStandardEnterprisev2
keywordAvailable
q:keyword
AvailableBasic & Pro
emojiAvailable
q:😄
AvailableBasic & Pro
“exact phrase”AvailableAvailableBasic & Pro
#AvailableAvailableBasic & Pro
$AvailableAvailablePro
@AvailableAvailableBasic & Pro
from:AvailableAvailableBasic & Pro
to:AvailableAvailableBasic & Pro
url:AvailableAvailableBasic & Pro
retweets_of:AvailableBasic & Pro
context:Basic & Pro
entity:Basic & Pro - Only available with recent search
conversation_id:Basic
place:AvailablePro
place_country:AvailablePro
point_radius:geocode parameterAvailablePro
bounding_box:AvailablePro
is:retweetfilter:retweetsAvailableBasic & Pro
is:replyAvailableBasic & Pro
is:quoteAvailableBasic & Pro
is:verifiedAvailableBasic & Pro
-is:nullcastAvailablePro
has:hashtagsAvailableBasic & Pro
has:cashtagsAvailablePro
has:linksfilter:linksAvailableBasic & Pro
has:mentionsAvailableBasic & Pro
has:mediafilter:mediaAvailableBasic & Pro
has:imagesfilter:images, filter:twimgAvailableBasic & Pro
has:videosfilter:videos
filter:native_video
AvailableBasic & Pro
has:geoAvailablePro
lang:lang - can be used as an operator or a parameterAvailableBasic & Pro
has:profile_geoAvailable
profile_countryAvailable
profile_localityAvailable
profile_regionAvailable
proximityAvailable
:(Available
:)Available
?Available
filter:periscopeAvailable
list:AvailablePro
filter:repliesAvailable
filter:pro_videoAvailable
filter:socialAvailable
filter:trustedAvailable
filter:followsAvailable
filter:has_engagementAvailable
include:antisocialAvailable
include:offensive_userAvailable
include:antisocial_offensive_userAvailable
include:sensitive_contentAvailable
source:Available
min_replies:Available
min_retweets:Available
min_faves:Available
card_name:Available
card_domain:Available

Other migration resources

X API migration hub

Check out some sample code for these endpoints

Search Posts: Standard v1.1 to X API v2

Search Posts: Enterprise to X API v2