Frequently Asked Questions¶
You can use Twitter API v2 with
Client or apply for Elevated access.
See the Twitter API access levels and versions documentation for more information.
Why am I encountering issues when attempting to upload GIFs or videos?¶
If you are encountering a 400 Bad Request error when uploading large GIFs or
other errors/issues with uploading videos, make sure to pass the
media_category parameter, e.g. as
Also make sure your video follows the recommended specifications.
See Twitter’s API documentation on media best practices for more information.
Why am I getting an inconsistent number of / not getting 3200 Tweets for a specific user?¶
“For very high volume and high traffic accounts, be aware that the Twitter API is highly distributed and eventually consistent. We strive to provide current information but like any large scale system, you may see unexpected behaviours at high volumes.”
Why am I getting no results from
Twitter’s standard search API only “searches against a sampling of recent Tweets published in the past 7 days.”
If you’re specifying an ID range beyond the past 7 days or there are no results from the past 7 days, then no results will be returned.
See Twitter’s documentation on the standard search API for more information: https://developer.twitter.com/en/docs/twitter-api/v1/tweets/search/overview https://developer.twitter.com/en/docs/twitter-api/v1/tweets/search/api-reference/get-search-tweets
These parameters can be passed as keyword arguments instead.
Refer to the documentation for the
API method being used.
This is because Tweepy v4.0.0 removed
Instead, you can use
API.search was renamed to
API.search_tweets(). You can
refer to the changelog / release notes and update your method invocations
If you’re attempting to import
StreamListener with Tweepy v4, you’ll get an
tweepy not having a
To use Tweepy v4, you’ll need to update your code to subclass
Twitter API v2¶
If you are simply printing the objects and looking at that output, the string representations of API v2 models/objects only include the default attributes that are guaranteed to exist.
The objects themselves still include the relevant data, which you can access as attributes or by key, like a dictionary.
There’s also a
data attribute/key that provides the entire data dictionary.
Paginator.flatten() flattens the
data and iterates over each object.
includes, you’ll need to iterate through each response instead.
Why am I getting rate-limited so quickly when using
time.sleep() 1 second while iterating through responses to handle
this rate limit.