tweepy.Client — Twitter API v2 Reference

class tweepy.Client(bearer_token=None, consumer_key=None, consumer_secret=None, access_token=None, access_token_secret=None, *, wait_on_rate_limit=False)

Twitter API v2 Client

Parameters
  • bearer_token (Optional[str]) – Twitter API Bearer Token

  • consumer_key (Optional[str]) – Twitter API Consumer Key

  • consumer_secret (Optional[str]) – Twitter API Consumer Secret

  • access_token (Optional[str]) – Twitter API Access Token

  • access_token_secret (Optional[str]) – Twitter API Access Token Secret

  • wait_on_rate_limit (bool) – Whether to wait when rate limit is reached

session

Requests Session used to make requests to the API

Type

requests.Session

user_agent

User agent used when making requests to the API

Type

str

Tweets

Hide replies

Client.hide_reply(id)

Hides a reply to a Tweet.

Parameters

id (Union[int, str]) – Unique identifier of the Tweet to hide. The Tweet must belong to a conversation initiated by the authenticating user.

Returns

Indicates if the Tweet was successfully hidden.

Return type

bool

References

https://developer.twitter.com/en/docs/twitter-api/tweets/hide-replies/api-reference/put-tweets-id-hidden

Client.unhide_reply(id)

Unhides a reply to a Tweet.

Parameters

id (Union[int, str]) – Unique identifier of the Tweet to unhide. The Tweet must belong to a conversation initiated by the authenticating user.

Returns

Indicates if the Tweet was successfully unhidden.

Return type

bool

References

https://developer.twitter.com/en/docs/twitter-api/tweets/hide-replies/api-reference/put-tweets-id-hidden

Likes

Client.unlike(tweet_id)

Unlike a Tweet.

The request succeeds with no action when the user sends a request to a user they’re not liking the Tweet or have already unliked the Tweet.

Parameters

tweet_id (Union[int, str]) – The ID of the Tweet that you would like to unlike.

Returns

Indicates whether the user is unliking the specified Tweet as a result of this request. The returned value is False for a successful unlike request.

Return type

bool

References

https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/delete-users-user_id-likes

Client.like(tweet_id)

Like a Tweet.

Parameters

tweet_id (Union[int, str]) – The ID of the Tweet that you would like to Like.

Returns

Indicates whether the user likes the specified Tweet as a result of this request.

Return type

bool

References

https://developer.twitter.com/en/docs/twitter-api/tweets/likes/api-reference/post-users-user_id-likes

Search Tweets

Client.search_all_tweets(query, *, end_time, expansions, max_results, media_fields, next_token, place_fields, poll_fields, since_id, start_time, tweet_fields, until_id, user_fields)

This endpoint is only available to those users who have been approved for the Academic Research product track.

The full-archive search endpoint returns the complete history of public Tweets matching a search query; since the first Tweet was created March 26, 2006.

The Tweets returned by this endpoint count towards the Project-level Tweet cap.

Parameters
  • query (str) – One query for matching Tweets. Up to 1024 characters.

  • end_time (Union[datetime.datetime, str]) – YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339). Used with start_time. The newest, most recent UTC timestamp to which the Tweets will be provided. Timestamp is in second granularity and is exclusive (for example, 12:00:01 excludes the first second of the minute). If used without start_time, Tweets from 30 days before end_time will be returned by default. If not specified, end_time will default to [now - 30 seconds].

  • expansions (Union[List[str], str]) – expansions

  • max_results (int) – The maximum number of search results to be returned by a request. A number between 10 and the system limit (currently 500). By default, a request response will return 10 results.

  • media_fields (Union[List[str], str]) – media_fields

  • next_token (str) – This parameter is used to get the next ‘page’ of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified. You can learn more by visiting our page on pagination.

  • place_fields (Union[List[str], str]) – place_fields

  • poll_fields (Union[List[str], str]) – poll_fields

  • since_id (Union[int, str]) – Returns results with a Tweet ID greater than (for example, more recent than) the specified ID. The ID specified is exclusive and responses will not include it. If included with the same request as a start_time parameter, only since_id will be used.

  • start_time (Union[datetime.datetime, str]) – YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339). The oldest UTC timestamp from which the Tweets will be provided. Timestamp is in second granularity and is inclusive (for example, 12:00:01 includes the first second of the minute). By default, a request will return Tweets from up to 30 days ago if you do not include this parameter.

  • tweet_fields (Union[List[str], str]) – tweet_fields

  • until_id (Union[int, str]) – Returns results with a Tweet ID less than (that is, older than) the specified ID. Used with since_id. The ID specified is exclusive and responses will not include it.

  • user_fields (Union[List[str], str]) – user_fields

Returns

Return type

Response

References

https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-all

Client.search_recent_tweets(query, *, user_auth=False, end_time, expansions, max_results, media_fields, next_token, place_fields, poll_fields, since_id, start_time, tweet_fields, until_id, user_fields)

The recent search endpoint returns Tweets from the last seven days that match a search query.

The Tweets returned by this endpoint count towards the Project-level Tweet cap.

Parameters
  • query (str) – One rule for matching Tweets. If you are using a Standard Project at the Basic access level, you can use the basic set of operators and can make queries up to 512 characters long. If you are using an Academic Research Project at the Basic access level, you can use all available operators and can make queries up to 1,024 characters long.

  • end_time (Union[datetime.datetime, str]) – YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339). The newest, most recent UTC timestamp to which the Tweets will be provided. Timestamp is in second granularity and is exclusive (for example, 12:00:01 excludes the first second of the minute). By default, a request will return Tweets from as recent as 30 seconds ago if you do not include this parameter.

  • expansions (Union[List[str], str]) – expansions

  • max_results (int) – The maximum number of search results to be returned by a request. A number between 10 and 100. By default, a request response will return 10 results.

  • media_fields (Union[List[str], str]) – media_fields

  • next_token (str) – This parameter is used to get the next ‘page’ of results. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.

  • place_fields (Union[List[str], str]) – place_fields

  • poll_fields (Union[List[str], str]) – poll_fields

  • since_id (Union[int, str]) – Returns results with a Tweet ID greater than (that is, more recent than) the specified ID. The ID specified is exclusive and responses will not include it. If included with the same request as a start_time parameter, only since_id will be used.

  • start_time (Union[datetime.datetime, str]) – YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339). The oldest UTC timestamp (from most recent seven days) from which the Tweets will be provided. Timestamp is in second granularity and is inclusive (for example, 12:00:01 includes the first second of the minute). If included with the same request as a since_id parameter, only since_id will be used. By default, a request will return Tweets from up to seven days ago if you do not include this parameter.

  • tweet_fields (Union[List[str], str]) – tweet_fields

  • until_id (Union[int, str]) – Returns results with a Tweet ID less than (that is, older than) the specified ID. The ID specified is exclusive and responses will not include it.

  • user_fields (Union[List[str], str]) – user_fields

Returns

Return type

Response

References

https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-recent

Timelines

Client.get_users_mentions(id, *, user_auth=False, end_time, expansions, max_results, media_fields, pagination_token, place_fields, poll_fields, since_id, start_time, tweet_fields, until_id, user_fields)

Returns Tweets mentioning a single user specified by the requested user ID. By default, the most recent ten Tweets are returned per request. Using pagination, up to the most recent 800 Tweets can be retrieved.

The Tweets returned by this endpoint count towards the Project-level Tweet cap.

Parameters
  • id (Union[int, str]) – Unique identifier of the user for whom to return Tweets mentioning the user. User ID can be referenced using the user/lookup endpoint. More information on Twitter IDs is here.

  • user_auth (bool) – Whether or not to use OAuth 1.0a User context

  • end_time (Union[datetime.datetime, str]) –

    YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339). The new UTC timestamp from which the Tweets will be provided. Timestamp is in second granularity and is inclusive (for example, 12:00:01 includes the first second of the minute).

    Please note that this parameter does not support a millisecond value.

  • expansions (Union[List[str], str]) – expansions

  • max_results (int) – Specifies the number of Tweets to try and retrieve, up to a maximum of 100 per distinct request. By default, 10 results are returned if this parameter is not supplied. The minimum permitted value is 5. It is possible to receive less than the max_results per request throughout the pagination process.

  • media_fields (Union[List[str], str]) – media_fields

  • pagination_token (str) – This parameter is used to move forwards or backwards through ‘pages’ of results, based on the value of the next_token or previous_token in the response. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.

  • place_fields (Union[List[str], str]) – place_fields

  • poll_fields (Union[List[str], str]) – poll_fields

  • since_id (Union[int, str]) – Returns results with a Tweet ID greater than (that is, more recent than) the specified ‘since’ Tweet ID. There are limits to the number of Tweets that can be accessed through the API. If the limit of Tweets has occurred since the since_id, the since_id will be forced to the oldest ID available. More information on Twitter IDs is here.

  • start_time (Union[datetime.datetime, str]) –

    YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339). The oldest UTC timestamp from which the Tweets will be provided. Timestamp is in second granularity and is inclusive (for example, 12:00:01 includes the first second of the minute).

    Please note that this parameter does not support a millisecond value.

  • tweet_fields (Union[List[str], str]) – tweet_fields

  • until_id (Union[int, str]) – Returns results with a Tweet ID less less than (that is, older than) the specified ‘until’ Tweet ID. There are limits to the number of Tweets that can be accessed through the API. If the limit of Tweets has occurred since the until_id, the until_id will be forced to the most recent ID available. More information on Twitter IDs is here.

  • user_fields (Union[List[str], str]) – user_fields

Returns

Return type

Response

References

https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-mentions

Client.get_users_tweets(id, *, user_auth=False, end_time, exclude, expansions, max_results, media_fields, pagination_token, place_fields, poll_fields, since_id, start_time, tweet_fields, until_id, user_fields)

Returns Tweets composed by a single user, specified by the requested user ID. By default, the most recent ten Tweets are returned per request. Using pagination, the most recent 3,200 Tweets can be retrieved.

The Tweets returned by this endpoint count towards the Project-level Tweet cap.

Parameters
  • id (Union[int, str]) – Unique identifier of the Twitter account (user ID) for whom to return results. User ID can be referenced using the user/lookup endpoint. More information on Twitter IDs is here.

  • user_auth (bool) – Whether or not to use OAuth 1.0a User context

  • end_time (Union[datetime.datetime, str]) –

    YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339). The newest or most recent UTC timestamp from which the Tweets will be provided. Only the 3200 most recent Tweets are available. Timestamp is in second granularity and is inclusive (for example, 12:00:01 includes the first second of the minute). Minimum allowable time is 2010-11-06T00:00:01Z

    Please note that this parameter does not support a millisecond value.

  • exclude (Union[List[str], str]) – Comma-separated list of the types of Tweets to exclude from the response. When exclude=retweets is used, the maximum historical Tweets returned is still 3200. When the exclude=replies parameter is used for any value, only the most recent 800 Tweets are available.

  • expansions (Union[List[str], str]) – expansions

  • max_results (int) – Specifies the number of Tweets to try and retrieve, up to a maximum of 100 per distinct request. By default, 10 results are returned if this parameter is not supplied. The minimum permitted value is 5. It is possible to receive less than the max_results per request throughout the pagination process.

  • media_fields (Union[List[str], str]) – media_fields

  • pagination_token (str) – This parameter is used to move forwards or backwards through ‘pages’ of results, based on the value of the next_token or previous_token in the response. The value used with the parameter is pulled directly from the response provided by the API, and should not be modified.

  • place_fields (Union[List[str], str]) – place_fields

  • poll_fields (Union[List[str], str]) – poll_fields

  • since_id (Union[int, str]) – Returns results with a Tweet ID greater than (that is, more recent than) the specified ‘since’ Tweet ID. Only the 3200 most recent Tweets are available. The result will exclude the since_id. If the limit of Tweets has occurred since the since_id, the since_id will be forced to the oldest ID available.

  • start_time (Union[datetime.datetime, str]) –

    YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339). The oldest or earliest UTC timestamp from which the Tweets will be provided. Only the 3200 most recent Tweets are available. Timestamp is in second granularity and is inclusive (for example, 12:00:01 includes the first second of the minute). Minimum allowable time is 2010-11-06T00:00:00Z

    Please note that this parameter does not support a millisecond value.

  • tweet_fields (Union[List[str], str]) – tweet_fields

  • until_id (Union[int, str]) – Returns results with a Tweet ID less less than (that is, older than) the specified ‘until’ Tweet ID. Only the 3200 most recent Tweets are available. The result will exclude the until_id. If the limit of Tweets has occurred since the until_id, the until_id will be forced to the most recent ID available.

  • user_fields (Union[List[str], str]) – user_fields

Returns

Return type

Response

References

https://developer.twitter.com/en/docs/twitter-api/tweets/timelines/api-reference/get-users-id-tweets

Tweet lookup

Client.get_tweet(id, *, user_auth=False, expansions, media_fields, place_fields, poll_fields, twitter_fields, user_fields)

Returns a variety of information about a single Tweet specified by the requested ID.

Parameters
Returns

Return type

Response

References

https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets-id

Client.get_tweets(ids, *, user_auth=False, expansions, media_fields, place_fields, poll_fields, twitter_fields, user_fields)

Returns a variety of information about the Tweet specified by the requested ID or list of IDs.

Parameters
Returns

Return type

Response

References

https://developer.twitter.com/en/docs/twitter-api/tweets/lookup/api-reference/get-tweets

Users

Blocks

Client.unblock(target_user_id)

Unblock another user.

The request succeeds with no action when the user sends a request to a user they’re not blocking or have already unblocked.

Parameters

target_user_id (Union[int, str]) – The user ID of the user that you would like to unblock.

Returns

Indicates whether the user is blocking the specified user as a result of this request. The returned value is False for a successful unblock request.

Return type

bool

References

https://developer.twitter.com/en/docs/twitter-api/users/blocks/api-reference/delete-users-user_id-blocking

Client.block(target_user_id)

Block another user.

Parameters

target_user_id (Union[int, str]) – The user ID of the user that you would like to block.

Returns

Indicates whether the user is blocking the specified user as a result of this request.

Return type

bool

References

https://developer.twitter.com/en/docs/twitter-api/users/blocks/api-reference/post-users-user_id-blocking

Follows

Client.unfollow(target_user_id)

Allows a user ID to unfollow another user.

The request succeeds with no action when the authenticated user sends a request to a user they’re not following or have already unfollowed.

Parameters

target_user_id (Union[int, str]) – The user ID of the user that you would like to unfollow.

Returns

Return type

Response

References

https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/delete-users-source_id-following

Client.get_users_followers(id, *, user_auth=False, expansions, max_results, pagination_token, tweet_fields, user_fields)

Returns a list of users who are followers of the specified user ID.

Parameters
  • id (Union[int, str]) – The user ID whose followers you would like to retrieve.

  • user_auth (bool) – Whether or not to use OAuth 1.0a User context

  • expansions (Union[List[str], str]) – expansions

  • max_results (int) – The maximum number of results to be returned per page. This can be a number between 1 and the 1000. By default, each page will return 100 results.

  • pagination_token (str) – Used to request the next page of results if all results weren’t returned with the latest request, or to go back to the previous page of results. To return the next page, pass the next_token returned in your previous response. To go back one page, pass the previous_token returned in your previous response.

  • tweet_fields (Union[List[str], str]) – tweet_fields

  • user_fields (Union[List[str], str]) – user_fields

Returns

Return type

Response

References

https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-followers

Client.get_users_following(id, *, user_auth=False, expansions, max_results, pagination_token, tweet_fields, user_fields)

Returns a list of users the specified user ID is following.

Parameters
  • id (Union[int, str]) – The user ID whose following you would like to retrieve.

  • user_auth (bool) – Whether or not to use OAuth 1.0a User context

  • expansions (Union[List[str], str]) – expansions

  • max_results (int) – The maximum number of results to be returned per page. This can be a number between 1 and the 1000. By default, each page will return 100 results.

  • pagination_token (str) – Used to request the next page of results if all results weren’t returned with the latest request, or to go back to the previous page of results. To return the next page, pass the next_token returned in your previous response. To go back one page, pass the previous_token returned in your previous response.

  • tweet_fields (Union[List[str], str]) – tweet_fields

  • user_fields (Union[List[str], str]) – user_fields

Returns

Return type

Response

References

https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-following

Client.follow(target_user_id)

Allows a user ID to follow another user.

If the target user does not have public Tweets, this endpoint will send a follow request.

The request succeeds with no action when the authenticated user sends a request to a user they’re already following, or if they’re sending a follower request to a user that does not have public Tweets.

Parameters

target_user_id (Union[int, str]) – The user ID of the user that you would like to follow

Returns

Return type

Response

References

https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/post-users-source_user_id-following

User lookup

Client.get_user(*, id, username, user_auth=False, expansions, tweet_fields, user_fields)

Returns a variety of information about a single user specified by the requested ID or username.

Parameters
Raises

TypeError – If ID and username are not passed or both are passed

Returns

Return type

Response

References

https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-id https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by-username-username

Client.get_users(*, ids, usernames, user_auth=False, expansions, tweet_fields, user_fields)

Returns a variety of information about one or more users specified by the requested IDs or usernames.

Parameters
  • ids (Union[List[int, str], str]) – A comma separated list of user IDs. Up to 100 are allowed in a single request. Make sure to not include a space between commas and fields.

  • usernames (Union[List[str], str]) – A comma separated list of Twitter usernames (handles). Up to 100 are allowed in a single request. Make sure to not include a space between commas and fields.

  • user_auth (bool) – Whether or not to use OAuth 1.0a User context

  • expansions (Union[List[str], str]) – expansions

  • tweet_fields (Union[List[str], str]) – tweet_fields

  • user_fields (Union[List[str], str]) – user_fields

Raises

TypeError – If IDs and usernames are not passed or both are passed

Returns

Return type

Response

References

https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by

Expansions and Fields Parameters

expansions

For methods that return Tweets, Expansions enable you to request additional data objects that relate to the originally returned Tweets. Submit a list of desired expansions in a comma-separated list without spaces. The ID that represents the expanded data object will be included directly in the Tweet data object, but the expanded object metadata will be returned within the includes response object, and will also include the ID so that you can match this data object to the original Tweet object.

The following data objects can be expanded using this parameter:

  • The Tweet author’s user object

  • The user object of the Tweet’s author that the original Tweet is responding to

  • Any mentioned users’ object

  • Any referenced Tweets’ author’s user object

  • Attached media’s object

  • Attached poll’s object

  • Attached place’s object

  • Any referenced Tweets’ object

For methods that return users, Expansions enable you to request additional data objects that relate to the originally returned users. The ID that represents the expanded data object will be included directly in the user data object, but the expanded object metadata will be returned within the includes response object, and will also include the ID so that you can match this data object to the original Tweet object. At this time, the only expansion available to endpoints that primarily return user objects is expansions=pinned_tweet_id. You will find the expanded Tweet data object living in the includes response object.

media_fields

This fields parameter enables you to select which specific media fields will deliver in each returned Tweet. Specify the desired fields in a comma-separated list without spaces between commas and fields. The Tweet will only return media fields if the Tweet contains media and if you’ve also included the expansions=attachments.media_keys query parameter in your request. While the media ID will be located in the Tweet object, you will find this ID and all additional media fields in the includes data object.

place_fields

This fields parameter enables you to select which specific place fields will deliver in each returned Tweet. Specify the desired fields in a comma-separated list without spaces between commas and fields. The Tweet will only return place fields if the Tweet contains a place and if you’ve also included the expansions=geo.place_id query parameter in your request. While the place ID will be located in the Tweet object, you will find this ID and all additional place fields in the includes data object.

poll_fields

This fields parameter enables you to select which specific poll fields will deliver in each returned Tweet. Specify the desired fields in a comma-separated list without spaces between commas and fields. The Tweet will only return poll fields if the Tweet contains a poll and if you’ve also included the expansions=attachments.poll_ids query parameter in your request. While the poll ID will be located in the Tweet object, you will find this ID and all additional poll fields in the includes data object.

tweet_fields

For methods that return Tweets, this fields parameter enables you to select which specific Tweet fields will deliver in each returned Tweet object. Specify the desired fields in a comma-separated list without spaces between commas and fields. You can also pass the expansions=referenced_tweets.id expansion to return the specified fields for both the original Tweet and any included referenced Tweets. The requested Tweet fields will display in both the original Tweet data object, as well as in the referenced Tweet expanded data object that will be located in the includes data object.

For methods that return users, this fields parameter enables you to select which specific Tweet fields will deliver in each returned pinned Tweet. Specify the desired fields in a comma-separated list without spaces between commas and fields. The Tweet fields will only return if the user has a pinned Tweet and if you’ve also included the expansions=pinned_tweet_id query parameter in your request. While the referenced Tweet ID will be located in the original Tweet object, you will find this ID and all additional Tweet fields in the includes data object.

user_fields

For methods that return Tweets, this fields parameter enables you to select which specific user fields will deliver in each returned Tweet. Specify the desired fields in a comma-separated list without spaces between commas and fields. While the user ID will be located in the original Tweet object, you will find this ID and all additional user fields in the includes data object.

You must also pass one of the user expansions to return the desired user fields:

  • expansions=author_id

  • expansions=entities.mentions.username

  • expansions=in_reply_to_user_id

  • expansions=referenced_tweets.id.author_id

For methods that return users, this fields parameter enables you to select which specific user fields will deliver with each returned users objects. Specify the desired fields in a comma-separated list without spaces between commas and fields. These specified user fields will display directly in the user data objects.

Response

The Response returned by Client methods is a collections.namedtuple, with data, includes, errors, and meta fields, corresponding with the fields in responses from Twitter’s API.