For developers building apps with social interactions, the Twitter API has been one of the most used API. While it was beneficial, it had its limitations. But not for long. Twitter just released the new version of the Twitter API, which has so much to offer.
What's new in Twitter API v2
Twitter seems to have finally answered the prayers of millions of developers using the Twitter API. The new API makes it simpler to listen and analyze the active conversations on the social platform. Twitter has introduced a couple of exciting things, including new endpoints, new tweet payload, conversation identifiers, and even annotations.
Having heard so much about it, we decided to take the Twitter API v2 for a spin. Luckily for us, Fiddler Everywhere can quickly test and debug APIs. SO we decided to test the Twitter API v2 on Fiddler Everywhere.
Fiddler Everywhere to the rescue
For those who haven't used Fiddler Everywhere before, it can capture and inspect network requests, including API calls. It also allows you to modify the request parameters to customize the response as required.
Testing the Twitter API v2
In this blog, we are going to test some of the endpoints of the new Twitter API v2 and see how it works.
Before getting started, make sure that you create a new app using the Twitter Developer Portal and generate the Bearer Token to authenticate the request in Fiddler Everywhere.
Users lookup
The Twitter API v2 makes it simple to get publicly available user information using the users
endpoint.
Endpoint URL: https://api.twitter.com/2/users
You can do the following using this endpoint:
/users
– Query multiple IDs to retrieve user information
/users/:id
– Query the user ID to fetch information about a specific user
/users/by
– Query the username to fetch user information
For this example, we'll use the /users/by
endpoint.
We open the Composer in Fiddler Everywhere and enter the endpoint in the request bar and set the method to GET.
We need to provide authentication and query parameters. Under the Headers tab, add a new key-value pair called authorization
and the Bearer Token as the value.
In the Params tab, add a key-value pair called usernames
. You can enter the username or multiple usernames separated by commas in the value field.
Click the Execute button to see the API in action.
If everything were excellent, in the Response section below, you would see the entire response in the JSON tab.
You can modify the response as per your requirement by specifying the user.fields
parameters.
I'm going to request the following fields:
Parameter | Description |
---|---|
name |
Name of the user |
username |
Username on Twitter |
url |
Website URL mentioned in the profile |
profile_image_url |
URL of the user's profile image |
pinned_tweet_id |
Tweet ID of users pinned tweet, if any |
verified |
Boolean response indicating whether or not Twitter has verified the user |
created_at |
Date and time of account creation |
public_metrics |
number of tweets, followers, following, and lists of the user |
location |
Place mentioned in the user account |
Once you hit execute, you'll notice the detailed information requested in the JSON tab of the response section.
Tweets lookup
Using the tweets
endpoint, we can fetch tweets and information about them using the tweet ID.
Endpoint URL: https://api.twitter.com/2/tweets
We'll open a new request tab in Fiddler Everywhere, enter this API endpoint in the request bar, and set the GET method.
Again, we need to provide authentication and query parameters. You can use the same Bearer Token used in the previous request.
In the Params tab, add a key-value pair called ids
. You can enter a tweet ID or multiple tweet IDs separated by commas in the value field.
Click the Execute button to make a call to the API.
You can view the tweets fetched in the JSON tab of the Response section.
We can add additional query parameters to get the required information. I'm going to add the following parameters:
expansions
Parameter | Description |
---|---|
attachments.media_keys |
Identifies the media attached to the tweet |
author_id |
Returns the user's unique identifier |
entities.mentions.username |
Recognizes the Twitter users mentioned in the tweet |
in_reply_to_user_id |
Provides the user ID of parent tweets author if the tweet is a reply |
referenced_tweets.id |
Identifies the referenced tweet |
referenced_tweets.type |
Identifies if the tweet is a retweet or a reply |
text.fields
Parameter | Description |
---|---|
attachments |
Indicates the attachment types, if any |
conversation_id |
Returns the ID of the original tweet along which includes the thread of all replies |
created_at |
Time of the tweet |
geo |
Location from where the tweet originated, if available |
lang |
Returns the language tag of the language detected |
possibly_sensitive |
Returns a Boolean response indicating if the tweet was marked sensitive |
public_metrics |
Provides the engagement metrics like retweet count and like count |
Source |
Provides the app used for publishing the tweet |
If you execute the request again, you will see the requested fields.
Recent Tweets search
The recent
endpoint searches and fetches tweets that match the query.
Endpoint URL: https://api.twitter.com/2/tweets/search/recent
Again, We'll open a new request tab in Fiddler Everywhere and enter this API endpoint in the request bar and set the method to GET.
We need to provide authentication and query parameters. You can use the same Bearer Token used in the previous request.
In the Params tab, add a key-value pair called query
. You can enter the query in the value field.
Click the Execute button to fetch the response.
You can view the tweets fetched in the JSON tab of the Response section. By default, the endpoint returns ten results from the last seven days. You can use the max_results
parameter to indicate the required number of results.
You can use the same query parameters from above to modify the request as required.
This is the response that I received.
These were some of the basic operations that you can perform using the new Twitter API v2. Next time, we'll dive into how Twitter has improved the API using NLP to understand and analyze tweets and how you can implement it using the API.
Fiddler Everywhere makes debugging fun
If you are wondering what else you could do with Fiddler Everywhere, the tool comes in handy to inspect, debug, mock, and share network requests and responses. You can download and try it out yourself. Fiddler Everywhere is available on macOS, Linux, and Windows systems and supports all modern browsers and processes.