Skip to main content

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.

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
Self-serve:

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
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
  • Self-serve: Available when using any 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
AvailableAvailable
emojiAvailable
q:😄
AvailableAvailable
”exact phrase”AvailableAvailableAvailable
#AvailableAvailableAvailable
$AvailableAvailableAvailable
@AvailableAvailableAvailable
from:AvailableAvailableAvailable
to:AvailableAvailableAvailable
url:AvailableAvailableAvailable
retweets_of:AvailableAvailable
context:Available
entity:Self-serve - Only available with recent search
conversation_id:Available
place:AvailableAvailable
place_country:AvailableAvailable
point_radius:geocode parameterAvailableAvailable
bounding_box:AvailableAvailable
is:retweetfilter:retweetsAvailableAvailable
is:replyAvailableAvailable
is:quoteAvailableAvailable
is:verifiedAvailableAvailable
-is:nullcastAvailableAvailable
has:hashtagsAvailableAvailable
has:cashtagsAvailableAvailable
has:linksfilter:linksAvailableAvailable
has:mentionsAvailableAvailable
has:mediafilter:mediaAvailableAvailable
has:imagesfilter:images, filter:twimgAvailableAvailable
has:videosfilter:videos
filter:native_video
AvailableAvailable
has:geoAvailableAvailable
lang:lang - can be used as an operator or a parameterAvailableAvailable
has:profile_geoAvailable
profile_countryAvailable
profile_localityAvailable
profile_regionAvailable
proximityAvailable
:(Available
:)Available
?Available
filter:periscopeAvailable
list:AvailableAvailable
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