Migrate

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:

Description Standard v1.1 X API v2
Host domain https://api.x.com https://api.x.com
Endpoint path /1.1/search/tweets.json /2/tweets/search/recent
Authentication OAuth 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 format YYYYMMDD YYYY-MM-DDTHH:mm:ssZ
ISO 8601 / RFC 3339
Returns Posts that are no older than 7 days 7 days
HTTP methods supported GET GET
Default request rate limits

180 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 format Standard v1.1 format

X 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 array statuses data
JSON key name for pagination search_metadata.next_results meta.next_token
Supports navigating archive by time range
Time resolution of time-based requests day second
Timezone UTC UTC
Request parameters for navigating by time until start_time
end_time
Request parameters for navigating by Post ID since_id 
max_id
since_id 
until_id
Request parameter for pagination Provides URL-encoded query next_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:

Description Enterprise X API v2
Host domain https://gnip-api.x.com https://api.x.com
Endpoint path /search/fullarchive/accounts/:account_name/:label /2/tweets/search/all
Authentication Basic auth OAuth 2.0 App-Only
Timestamp format YYYYMMDDHHMM YYYY-MM-DDTHH:mm:ssZ
ISO 8601 / RFC 3339
Returns Posts that are no older than The full archive since March 2006 The full archive since March 2006
HTTP methods supported GET
POST
GET
Default request rate limits

The 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 response Maximum: 500
Default: 100
Maximum: 500
Default: 10
Post JSON format Native Enriched or Activity Streams format
X 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 array results data
JSON key name for pagination next meta.next_token
Time resolution of time-based requests second second
Timezone UTC UTC
Supports navigating archive by Post ID  
Request parameters for navigation by time fromDate
toDate
start_time
end_time
Request parameters for navigating by Post ID   since_id 
until_id
Request parameter for pagination next_token next_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 operator Standard Enterprise v2
keyword Available
q:keyword
Available Basic & Pro
emoji Available
q:😄
Available Basic & Pro
“exact phrase” Available Available Basic & Pro
# Available Available Basic & Pro
$ Available Available Pro
@ Available Available Basic & Pro
from: Available Available Basic & Pro
to: Available Available Basic & Pro
url: Available Available Basic & Pro
retweets_of:   Available Basic & Pro
context:     Basic & Pro
entity:     Basic & Pro - Only available with recent search
conversation_id:     Basic
place:   Available Pro
place_country:   Available Pro
point_radius: geocode parameter Available Pro
bounding_box:   Available Pro
is:retweet filter:retweets Available Basic & Pro
is:reply   Available Basic & Pro
is:quote   Available Basic & Pro
is:verified   Available Basic & Pro
-is:nullcast   Available Pro
has:hashtags   Available Basic & Pro
has:cashtags   Available Pro
has:links filter:links Available Basic & Pro
has:mentions   Available Basic & Pro
has:media filter:media Available Basic & Pro
has:images filter:images, filter:twimg Available Basic & Pro
has:videos filter:videos
filter:native_video
Available Basic & Pro
has:geo   Available Pro
lang: lang - can be used as an operator or a parameter Available Basic & Pro
has:profile_geo   Available  
profile_country   Available  
profile_locality   Available  
profile_region   Available  
proximity   Available  
:( Available    
:) Available    
? Available    
filter:periscope Available    
list: Available   Pro
filter:replies Available    
filter:pro_video Available    
filter:social Available    
filter:trusted Available    
filter:follows Available    
filter:has_engagement Available    
include:antisocial Available    
include:offensive_user Available    
include:antisocial_offensive_user Available    
include:sensitive_content Available    
source: Available    
min_replies: Available    
min_retweets: Available    
min_faves: Available    
card_name: Available    
card_domain: Available