Comparing Twitter API’s filtered stream endpoints

The v2 filtered stream endpoints group is replacing the standard v1.1 statuses/filter and Labs filtered stream endpoints. If you have code, apps, or tools that use an older version of the filtered stream endpoint, and are considering migrating to the newer Twitter API v2 endpoint, then this set of guides is for you.

These guides will focus on the following areas:

  • API request parameters - The Twitter API v2 endpoint introduces a new set of request parameters. While some parameters will be familiar, especially for those integrating with Labs, there are many important differences such as the introduction of the fields and expansions parameters.
  • New JSON format - Twitter API v2 introduces a completely new JSON format. Any code that parses v1.1 standard, premium, and enterprise JSON payloads will need to be updated to work with the new formats.
  • Rule management and persistent streaming - The new filtered stream endpoints allow you to apply multiple rules to a single stream and actively add and delete rules while maintaining a persistent stream.
  • New query syntax - The new v2 filtering capabilities introduce many new filtering logic, or operators, that allow you to build complex rules. 
  • App and Project requirements - To access the Twitter API v2, you will need to use credentials from a developer App that is associated with a Project
     

The following table compares the filtered streaming endpoints Twitter offers:
 

Description Standard v1.1 Labs v1 Twitter API v2
Host domain https://stream.twitter.com https://api.twitter.com https://api.twitter.com
Endpoint path 1.1/statuses/filter.json /labs/1/tweets/stream/filter
/labs/1/tweets/stream/filter/rules
/2/tweets/search/stream
/2/tweets/search/stream/rules
Authentication OAuth 1.0a User Context OAuth 2.0 Bearer Token OAuth 2.0 Bearer Token
HTTP methods supported POST GET
POST
GET
POST
Default request rate limits 5 connection attempts per 5 min

50 connection requests per 15 min

450 rule changes per 15 min

50 connection requests per 15 min

450 rule changes per 15 min

Maximum allowed connections 2 concurrent per authorized user 1 1
Keep-alive signal/heartbeats blank lines (\r\n or similar) blank lines (\r\n or similar) blank lines (\r\n or similar)
Latency 5 seconds 10 seconds 10 seconds
Maximum allowed rules 1 rule (within the endpoint request) 10 rules 25 rules
Tweet JSON format Native (soon to be referred to as 'legacy') Labs v1 (determined by format: compact, default, detailed) Twitter API v2 (determined by fields and expansions request parameters, not backward-compatible with v1.1 formats)
Supports selecting which fields return in the payload No, data format pre-determined
Supports requesting and receiving annotations  
Supports requesting specific metrics within Tweet object    
Supports the conversation_id operator and field    
Requires the use of credentials from a developer App associated with a project    

Was this document helpful?

Thank you

Thank you for the feedback. We’re really glad we could help!

Thank you for the feedback. How could we improve this document?

Thank you for the feedback. Your comments will help us improve our documents in the future.