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 | ✔ | 
- There are no sub-tiers of enterprise operators
- **Free: **Available when using any Project
- Basic: Available when using any Project
- Pro: Available when using a Project
- Enterprise: Available when using a Project
| 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 |