Standard v1.1 compared to Twitter API v2

If you have been working with the v1.1statuses/filter endpoint, this guide can help you understand the similarities and differences between the standard and Twitter API v2 filtered stream endpoints.

  • Similarities
    • Request parameters and operators
  • Differences
    • Endpoint URLs
    • App and Project requirement
    • Authentication method
    • Rule volume and persistent stream
    • Request parameters
    • JSON format
    • Query operators

       

Similarities

Request parameters and operators

The standard v1.1 statuses/filter endpoint features a few parameters that can be passed along with the request to filter the stream. With v2 recent search, you instead use a set of over 25 operators that can be connected together using boolean logic to filter for desired Tweets. The available operators include some that are direct replacements for the existing standard v1.1 parameters. 

The following standard v1.1 request parameters have equivalent operators in Twitter API v2:
 

Standard Twitter API v2
follow - A comma-separated list of user IDs, indicating the users whose Tweets should be delivered on the stream.

Many operators that can help you find Tweets related to specific users:

  • @
  • from:
  • to:
  • etc.
track - A comma-separated list of phrases which will be used to determine what Tweets will be delivered on the stream.

Many operators that can help you find Tweets related to specific keywords:

  • keyword
  • "exact phrase match"
  • #
  • etc.


Differences

Endpoint URLs

  • Standard v1.1 endpoints:
    • https://stream.twitter.com/1.1/statuses/filter.json
  • Twitter API v2 endpoint:
    • https://api.twitter.com/2/tweets/search/stream
    • https://api.twitter.com/2/tweets/search/stream/rule


App and Project requirements

The Twitter API v2 endpoints require that you use credentials from a developer App that is associated to a Project when authenticating your requests. All Twitter API v1.1 endpoints can use credentials from standalone Apps or Apps associated with a project.
 

Authentication method

The standard endpoint supports OAuth 1.0a User Context, whereas the new Twitter API v2 filtered stream endpoints supports OAuth 2.0 Bearer Token (also referred to as Application-only authentication). To make requests to the Twitter API v2 version you must use a Bearer Token to authenticate your requests.

If you no longer have the Bearer Token that was presented to you when you created your Project and app in the developer portal, you can generate a new one by navigating to your app's “Keys and tokens” page on the developer portal. If you’d like to generate a Bearer Token programmatically, see this OAuth 2.0 User Context guide
 

Rule volume and persistent stream

The standard v1.1 endpoint supports a single rule to filter the streaming connection. To change the rule, you have to disconnect the stream and submit a new request with the revised filtering rules submitted as parameters. 

The new Twitter API v2 filtered stream endpoint allows you to apply multiple rules to a single stream and add and remove rules to your stream while maintaining the stream connection. 
 

Request parameters

One of the biggest differences between standard v1.1 and Twitter API v2 endpoint versions is how you select which fields return in your payload. For the standard endpoints, there are several parameters that you could use to identify which fields or sets of fields would return in the payload, while the Twitter API v2 version simplifies these different parameters into fields and expansions

  • fields: Twitter API v2 endpoints enable you to select which fields are provided in your payload. For example, Tweet, User, Media, Place, and Poll objects all have a list of fields that can be returned (or not). 
  • expansions: Used to expand the complementary objects referenced in Tweet JSON payloads. For example, all Retweets and Replies reference other Tweets. By setting `expansions=referenced_tweets.id`, these other Tweet objects are expanded according to the `tweet.fields` setting.  Other objects such as users, polls, and media can be expanded. 

You can learn more about how to use fields and expansions by visiting our guide, and by reading through our broader data dictionary.

There are also a set of standard Tweet lookup request parameters not supported in Twitter API v2:

Standard v1.1 parameter Details

locations - A comma-separated list of longitude,latitude pairs specifying a set of bounding boxes to filter Tweets by.

We have not released location-based operators for Twitter API v2 yet. 

Delimited

With the v1.1 endpoint, setting this to the string length indicates that statuses should be delimited in the stream, so that clients know how many bytes to read before the end of the status message.

This functionality is not available with Twitter API v2.

Stall_warnings

With the v1.1 endpoint, setting this parameter to true will cause periodic messages to be delivered if the client is in danger of being disconnected. 

With Twitter API v2, stall warnings are sent by default with the new line sent every so often.


New JSON format

Twitter API v2 is introducing new JSON designs for the objects returned by the APIs, including Tweet and user objects.

  • At the JSON root level, the standard endpoints return Tweet objects in a statuses array, while Twitter API v2 returns a data array. 
  • Instead of referring to Retweeted and Quoted "statuses", Twitter API v2 JSON refers to Retweeted and Quoted Tweets. Many legacy and deprecated fields, such as contributors and user.translator_type are being removed. 
  • Instead of using both favorites (in Tweet object) and favourites (in user object), Twitter API v2 uses the term like
  • Twitter is adopting the convention that JSON values with no value (for example, null) are not written to the payload. Tweet and user attributes are only included if they have non-null values. 

In addition to the changes that we made to our new JSON format, we also introduced a new set of fields to the Tweet object including the following:

  • conversation_id
  • Two new annotations fields, including context and entities
  • Several new metrics fields 
     

New query operators

Twitter API v2 introduces new operators in support of two new features: 

  • Conversation IDs - As conversations unfold on Twitter, a conservation ID will be available to mark Tweets that are part of the conversation. All Tweets in the conversation will have their conversation_id set to the Tweet ID that started it. 
    • conversation_id:
  • Twitter Annotations provide contextual information about Tweets, and include entity and context annotations. Entities are comprised of people, places, products and organizations. Contexts are domains, or topics, that surfaced entities are a part of. For example, people mentioned in a Tweet may have a context that indicates whether they are an athlete, actor, or politician.  
    • context: - matches on Tweets that have been annotated with a context of interest. 
    • entity: - matches on Tweets that have been annotated with an entity of interest. 

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.