Comparing X API’s filtered stream endpoints

The v2 filtered stream endpoints group is replacing the standard v1.1 statuses/filter and PowerTrack API. If you have code, apps, or tools that use an older version of the filtered stream endpoint, and are considering migrating to the newer X API v2 endpoint, then this comparison can help you get started. 

See our more in depth migration guides for:

Migrating from Standard v1.1 compared to X API v2

Migrating from PowerTrack API migration to X API v2

The following table compares the filtered streaming endpoints X offers:  

DescriptionStandard v1.1PowerTrack APIX API v2
AccessX AppRequires an enterprise contract and accountRequires a developer account (sign up), and X App within a Project
:---:---:---:---
Host domainhttps://stream.x.comhttps://gnip-stream.x.comhttps://api.x.com
Endpoint path1.1/statuses/filter.json/stream/powertrack/accounts//publishers/twitter/.json

/rules/powertrack/accounts//publishers/twitter/.json 

/rules/powertrack/accounts//publishers/twitter//validation.json
/2/tweets/search/stream

/2/tweets/search/stream/rules
AuthenticationOAuth 1.0a User ContextHTTP Basic AuthenticationOAuth 2.0 App-Only
HTTP methods supportedPOSTGET
POST
GET
POST
Required parametersRule defined on connection as parameter, at least one of:

* follow
* track
* locations
No required parameters for streaming connection, optional backfill parameter.

Rules managed separately
No required parameters for streaming connection, optional parameters to define response format and add backfill recovery feature for Academic Research access.

Rules managed separately
Delivery typeStreamingStreaming

REST (for rules management)
Streaming

REST (for rules management)
Default request rate limits5 connection attempts per 5 min60 requests per min aggregated for both POST and GET requests

/rules:  60 requests per minute, aggregated across all requests to /rules endpoint for the specific stream’s API (POST and GET).
Depends on the endpoint and the access level.

GET /2/tweets/search/stream:
Pro - 50 requests per 15-minutes per App

GET /2/tweets/search/stream/rules:
Pro - 450 requests per 15-minutes per App

---

POST /2/tweets/search/stream/rules:
Pro - 100 requests per 15 minutes per App
Maximum allowed connections2 concurrent per authorized userSupports multiple/redundant connections, determined by contractPro access:
1
Recovery and redundancy featuresNoneBackfill, redundant connections, and the Replay API
Post capsLimited to 1% of firehoseDetermined by contractThere is a monthly, Project-level Post cap applied to all Posts received from this endpoint:

Basic:
10,000 Posts

Pro:
1 million Posts
Keep-alive signal/heartbeatsblank lines (\r\n or similar) at least every 20 secondsblank lines (\r\n or similar) every 10 secondsblank lines (\r\n or similar) at least every 20 seconds
Latency10 seconds2 seconds

At least 10 seconds for URL unwinding enrichment
10 seconds
Maximum allowed rules1 rule (within the endpoint connection request)Determined by contract up to 250,000Pro access:
1000 rules
Rule filter limitationsOne query per connection, up to either:

- 400 track keywords

- 5000 follow user IDs

- 25 location boxes
Up to 2,048 characters per rulePro Access: 
1,024 characters per rule
Post JSON formatStandard v1.1 formatNative Enriched or Activity Streams (selected within the console)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. We will be releasing additional data format migration guides for Native Enriched and Activity Streams soon.
Provides Post edit history and metadata
Unique FeaturesFiltering done via query parameters on connection request

No configuration UI
Filtering done via rules created through an independent endpoint

Enrichment features available in contract

Configuration on console.gnip.com UI
Filtering done via rules created through an independent endpoint

Metrics and URL enrichment features included

Object fields and  expansions specified with request parameters

Post Annotations

Conversation ID operator and field

Configuration through developer portal

Other migration resources

Standard v1.1 migration to X API v2

PowerTrack API migration to X API v2

X API migration hub

Check out some sample code for these endpoints