Social — entry 037 of 39

Twitter

Verified Jul 2026

X's API (formerly Twitter's) is documented at docs.x.com and reads and writes posts, users, and engagement data over OAuth 1.0a or 2.0. Access is no longer split into named subscription tiers; X now sells pay-per-usage credits billed per resource, purchased upfront in the developer console and drawn down per call, with an Enterprise arrangement for accounts that need custom limits beyond the standard pay-per-usage cap.

socialmicrobloggingoauthxpay-per-use
AuthenticationOAuthRequires an OAuth flow; expect app registration.
HTTPSSupportedTraffic is encrypted in transit.
CORSDisabledBrowser calls need a server-side proxy.
PricingMeteredBilled per request beyond a limited free quota.
FormatsJSONResponses can be requested as JSON.

GreatAPIs Score

Score68out of 100
Authentication8/25OAuth flow required
Pricing11/20Metered / usage-based pricing
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months

Embed this badge

Scored 68 on greatapis.com
<a href="https://greatapis.com/api/twitter/"><img src="https://greatapis.com/badge/twitter.svg" alt="Scored 68 on greatapis.com"></a>

Auth quickstart

  1. Register an app / run the OAuth flow to obtain a bearer token.
  2. Send it as an Authorization headerAuthorization: Bearer <token>
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Endpoints

Servers
https://api.x.com
Auth
BearerTokenOAuth2UserTokenUserToken
Account Activity5

Endpoints relating to retrieving, managing AAA subscriptions

GET/2/account_activity/subscriptions/countGet subscription count
Responses
StatusDescriptionSchema
200The request has succeeded.SubscriptionsCountGetResponse
defaultThe request has failed.Error
GET/2/account_activity/webhooks/{webhook_id}/subscriptions/allValidate subscription
Parameters
NameInRequiredType
webhook_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.SubscriptionsGetResponse
defaultThe request has failed.Error
POST/2/account_activity/webhooks/{webhook_id}/subscriptions/allCreate subscription
Parameters
NameInRequiredType
webhook_idpathyes
Request body

application/jsonSubscriptionsCreateRequest

Responses
StatusDescriptionSchema
200The request has succeeded.SubscriptionsCreateResponse
defaultThe request has failed.Error
GET/2/account_activity/webhooks/{webhook_id}/subscriptions/all/listGet subscriptions
Parameters
NameInRequiredType
webhook_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.SubscriptionsListGetResponse
defaultThe request has failed.Error
DELETE/2/account_activity/webhooks/{webhook_id}/subscriptions/{user_id}/allDelete subscription
Parameters
NameInRequiredType
webhook_idpathyes
user_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.SubscriptionsDeleteResponse
defaultThe request has failed.Error
Articles2

Endpoints related to retrieving, creating & modifying Articles

POST/2/articles/draftCreate draft Article
Request body

application/jsonArticleDraftCreateRequest (required)

Responses
StatusDescriptionSchema
201The request has succeeded.ArticleDraftCreateResponse
defaultThe request has failed.Error
POST/2/articles/{article_id}/publishPublish Article
Parameters
NameInRequiredType
article_idpathyesstring
Responses
StatusDescriptionSchema
200The request has succeeded.ArticlePublishResponse
defaultThe request has failed.Error
Compliance3

Endpoints related to keeping X data in your systems compliant

GET/2/compliance/jobsGet Compliance Jobs
Parameters
NameInRequiredType
typequeryyesstring
statusquerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.Get2ComplianceJobsResponse
defaultThe request has failed.Error
POST/2/compliance/jobsCreate Compliance Job
Request body

application/jsonCreateComplianceJobRequest (required)

Responses
StatusDescriptionSchema
200The request has succeeded.CreateComplianceJobResponse
defaultThe request has failed.Error
GET/2/compliance/jobs/{id}Get Compliance Job by ID
Parameters
NameInRequiredType
idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.Get2ComplianceJobsIdResponse
defaultThe request has failed.Error
Connections4

Endpoints related to streaming connections

GET/2/connectionsGet Connection History
Parameters
NameInRequiredType
statusquerynostring
endpointsquerynoarray
max_resultsquerynointeger
pagination_tokenquerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.Get2ConnectionsResponse
defaultThe request has failed.Error
DELETE/2/connectionsTerminate multiple connections
Request body

application/jsonKillConnectionsByUuidsRequest (required)

Responses
StatusDescriptionSchema
200The request has succeeded.KillConnectionsByUuidsResponse
defaultThe request has failed.Error
DELETE/2/connections/allTerminate all connections
Responses
StatusDescriptionSchema
200The request has succeeded.KillAllConnectionsResponse
defaultThe request has failed.Error
DELETE/2/connections/{endpoint_id}Terminate connections by endpoint
Parameters
NameInRequiredType
endpoint_idpathyesstring
Responses
StatusDescriptionSchema
200The request has succeeded.KillConnectionsByEndpointResponse
defaultThe request has failed.Error
Direct Messages9

Endpoints related to retrieving, managing Direct Messages

POST/2/dm_conversationsCreate DM conversation
Request body

application/jsonCreateDmConversationRequest

Responses
StatusDescriptionSchema
201The request has succeeded.CreateDmEventResponse
defaultThe request has failed.Error
GET/2/dm_conversations/media/{dm_id}/{media_id}/{resource_id}Download DM Media
Parameters
NameInRequiredType
dm_idpathyes
media_idpathyes
resource_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.BinaryPayload
defaultThe request has failed.Error
GET/2/dm_conversations/with/{participant_id}/dm_eventsGet DM events for a DM conversation
Parameters
NameInRequiredType
participant_idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
event_typesquerynoarray
Responses
StatusDescriptionSchema
200The request has succeeded.Get2DmConversationsWithParticipantIdDmEventsResponse
defaultThe request has failed.Error
POST/2/dm_conversations/with/{participant_id}/messagesCreate DM message by participant ID
Parameters
NameInRequiredType
participant_idpathyes
Request body

application/jsonCreateMessageRequest

Responses
StatusDescriptionSchema
201The request has succeeded.CreateDmEventResponse
defaultThe request has failed.Error
POST/2/dm_conversations/{dm_conversation_id}/messagesCreate DM message by conversation ID
Parameters
NameInRequiredType
dm_conversation_idpathyesstring
Request body

application/jsonCreateMessageRequest

Responses
StatusDescriptionSchema
201The request has succeeded.CreateDmEventResponse
defaultThe request has failed.Error
GET/2/dm_conversations/{id}/dm_eventsGet DM events for a DM conversation
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
event_typesquerynoarray
Responses
StatusDescriptionSchema
200The request has succeeded.Get2DmConversationsIdDmEventsResponse
defaultThe request has failed.Error
GET/2/dm_eventsGet DM events
Parameters
NameInRequiredType
max_resultsquerynointeger
pagination_tokenqueryno
event_typesquerynoarray
Responses
StatusDescriptionSchema
200The request has succeeded.Get2DmEventsResponse
defaultThe request has failed.Error
GET/2/dm_events/{event_id}Get DM event by ID
Parameters
NameInRequiredType
event_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.Get2DmEventsEventIdResponse
defaultThe request has failed.Error
DELETE/2/dm_events/{event_id}Delete DM event
Parameters
NameInRequiredType
event_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.DeleteDmResponse
defaultThe request has failed.Error
General1

Miscellaneous endpoints for general API functionality

GET/2/openapi.jsonGet OpenAPI Spec.
Responses
StatusDescriptionSchema
200The request was successful
Lists9

Endpoints related to retrieving, managing Lists

POST/2/listsCreate List
Request body

application/jsonListCreateRequest

Responses
StatusDescriptionSchema
200The request has succeeded.ListCreateResponse
defaultThe request has failed.Error
GET/2/lists/{id}Get List by ID
Parameters
NameInRequiredType
idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.Get2ListsIdResponse
defaultThe request has failed.Error
PUT/2/lists/{id}Update List
Parameters
NameInRequiredType
idpathyes
Request body

application/jsonListUpdateRequest

Responses
StatusDescriptionSchema
200The request has succeeded.ListUpdateResponse
defaultThe request has failed.Error
DELETE/2/lists/{id}Delete List
Parameters
NameInRequiredType
idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.ListDeleteResponse
defaultThe request has failed.Error
GET/2/lists/{id}/followersGet List followers
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2ListsIdFollowersResponse
defaultThe request has failed.Error
GET/2/lists/{id}/membersGet List members
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2ListsIdMembersResponse
defaultThe request has failed.Error
POST/2/lists/{id}/membersAdd List member
Parameters
NameInRequiredType
idpathyes
Request body

application/jsonListAddUserRequest

Responses
StatusDescriptionSchema
200The request has succeeded.ListMutateResponse
defaultThe request has failed.Error
DELETE/2/lists/{id}/members/{user_id}Remove List member
Parameters
NameInRequiredType
idpathyes
user_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.ListMutateResponse
defaultThe request has failed.Error
GET/2/lists/{id}/tweetsGet List Posts
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2ListsIdTweetsResponse
defaultThe request has failed.Error
Media11

Endpoints related to Media

GET/2/mediaGet Media by media keys
Parameters
NameInRequiredType
media_keysqueryyesarray
Responses
StatusDescriptionSchema
200The request has succeeded.Get2MediaResponse
defaultThe request has failed.Error
GET/2/media/analyticsGet Media analytics
Parameters
NameInRequiredType
media_keysqueryyesarray
end_timequeryyesstring
start_timequeryyesstring
granularityqueryyesstring
Responses
StatusDescriptionSchema
200The request has succeeded.MediaAnalytics
defaultThe request has failed.Error
POST/2/media/metadataCreate Media metadata
Request body

application/jsonMetadataCreateRequest

Responses
StatusDescriptionSchema
200The request has succeeded.MetadataCreateResponse
defaultThe request has failed.Error
POST/2/media/subtitlesCreate Media subtitles
Request body

application/jsonSubtitlesCreateRequest

Responses
StatusDescriptionSchema
200The request has succeeded.SubtitlesCreateResponse
defaultThe request has failed.Error
DELETE/2/media/subtitlesDelete Media subtitles
Request body

application/jsonSubtitlesDeleteRequest

Responses
StatusDescriptionSchema
200The request has succeeded.SubtitlesDeleteResponse
defaultThe request has failed.Error
GET/2/media/uploadGet Media upload status
Parameters
NameInRequiredType
media_idqueryyes
commandquerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.MediaUploadResponse
defaultThe request has failed.Error
POST/2/media/uploadUpload media
Request body

application/jsonMediaUploadRequestOneShot

Responses
StatusDescriptionSchema
200The request has succeeded.MediaUploadResponse
defaultThe request has failed.Error
POST/2/media/upload/initializeInitialize media upload
Request body

application/jsonMediaUploadConfigRequest

Responses
StatusDescriptionSchema
200The request has succeeded.MediaUploadResponse
defaultThe request has failed.Error
POST/2/media/upload/{id}/appendAppend Media upload
Parameters
NameInRequiredType
idpathyes
Request body

application/jsonMediaUploadAppendRequest

Responses
StatusDescriptionSchema
200The request has succeeded.MediaUploadAppendResponse
defaultThe request has failed.Error
POST/2/media/upload/{id}/finalizeFinalize Media upload
Parameters
NameInRequiredType
idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.MediaUploadResponse
defaultThe request has failed.Error
GET/2/media/{media_key}Get Media by media key
Parameters
NameInRequiredType
media_keypathyes
Responses
StatusDescriptionSchema
200The request has succeeded.Get2MediaMediaKeyResponse
defaultThe request has failed.Error
News2

Endpoint for retrieving news stories

GET/2/news/searchSearch News
Parameters
NameInRequiredType
queryqueryyesstring
max_resultsquerynointeger
max_age_hoursquerynointeger
Responses
StatusDescriptionSchema
200The request has succeeded.Get2NewsSearchResponse
defaultThe request has failed.Error
GET/2/news/{id}Get news stories by ID
Parameters
NameInRequiredType
idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.Get2NewsIdResponse
defaultThe request has failed.Error
Spaces6

Endpoints related to retrieving, managing Spaces

GET/2/spacesGet Spaces by IDs
Parameters
NameInRequiredType
idsqueryyesarray
Responses
StatusDescriptionSchema
200The request has succeeded.Get2SpacesResponse
defaultThe request has failed.Error
GET/2/spaces/by/creator_idsGet Spaces by creator IDs
Parameters
NameInRequiredType
user_idsqueryyesarray
Responses
StatusDescriptionSchema
200The request has succeeded.Get2SpacesByCreatorIdsResponse
defaultThe request has failed.Error
GET/2/spaces/searchSearch Spaces
Parameters
NameInRequiredType
queryqueryyesstring
statequerynostring
max_resultsquerynointeger
Responses
StatusDescriptionSchema
200The request has succeeded.Get2SpacesSearchResponse
defaultThe request has failed.Error
GET/2/spaces/{id}Get space by ID
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200The request has succeeded.Get2SpacesIdResponse
defaultThe request has failed.Error
GET/2/spaces/{id}/buyersGet Space ticket buyers
Parameters
NameInRequiredType
idpathyesstring
pagination_tokenqueryno
max_resultsquerynointeger
Responses
StatusDescriptionSchema
200The request has succeeded.Get2SpacesIdBuyersResponse
defaultThe request has failed.Error
GET/2/spaces/{id}/tweetsGet Space Posts
Parameters
NameInRequiredType
idpathyesstring
max_resultsquerynointeger
Responses
StatusDescriptionSchema
200The request has succeeded.Get2SpacesIdTweetsResponse
defaultThe request has failed.Error
Stream17

Endpoints related to streaming

GET/2/likes/compliance/streamStream Likes compliance data
Parameters
NameInRequiredType
backfill_minutesquerynointeger
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.LikesComplianceStreamResponse
defaultThe request has failed.Error
GET/2/likes/firehose/streamStream all Likes
Parameters
NameInRequiredType
backfill_minutesquerynointeger
partitionqueryyesinteger
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.StreamingLikeResponseV2
defaultThe request has failed.Error
GET/2/likes/sample10/streamStream sampled Likes
Parameters
NameInRequiredType
backfill_minutesquerynointeger
partitionqueryyesinteger
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.StreamingLikeResponseV2
defaultThe request has failed.Error
GET/2/tweets/compliance/streamStream Posts compliance data
Parameters
NameInRequiredType
backfill_minutesquerynointeger
partitionqueryyesinteger
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.TweetComplianceStreamResponse
defaultThe request has failed.Error
GET/2/tweets/firehose/streamStream all Posts
Parameters
NameInRequiredType
backfill_minutesquerynointeger
partitionqueryyesinteger
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.StreamingTweetResponse
defaultThe request has failed.Error
GET/2/tweets/firehose/stream/lang/enStream English Posts
Parameters
NameInRequiredType
backfill_minutesquerynointeger
partitionqueryyesinteger
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.StreamingTweetResponse
defaultThe request has failed.Error
GET/2/tweets/firehose/stream/lang/jaStream Japanese Posts
Parameters
NameInRequiredType
backfill_minutesquerynointeger
partitionqueryyesinteger
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.StreamingTweetResponse
defaultThe request has failed.Error
GET/2/tweets/firehose/stream/lang/koStream Korean Posts
Parameters
NameInRequiredType
backfill_minutesquerynointeger
partitionqueryyesinteger
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.StreamingTweetResponse
defaultThe request has failed.Error
GET/2/tweets/firehose/stream/lang/ptStream Portuguese Posts
Parameters
NameInRequiredType
backfill_minutesquerynointeger
partitionqueryyesinteger
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.StreamingTweetResponse
defaultThe request has failed.Error
GET/2/tweets/label/streamStream Post labels
Parameters
NameInRequiredType
backfill_minutesquerynointeger
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.TweetLabelStreamResponse
defaultThe request has failed.Error
GET/2/tweets/sample/streamStream sampled Posts
Parameters
NameInRequiredType
backfill_minutesquerynointeger
Responses
StatusDescriptionSchema
200The request has succeeded.StreamingTweetResponse
defaultThe request has failed.Error
GET/2/tweets/sample10/streamStream 10% sampled Posts
Parameters
NameInRequiredType
backfill_minutesquerynointeger
partitionqueryyesinteger
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.Get2TweetsSample10StreamResponse
defaultThe request has failed.Error
GET/2/tweets/search/streamStream filtered Posts
Parameters
NameInRequiredType
backfill_minutesquerynointeger
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.FilteredStreamingTweetResponse
defaultThe request has failed.Error
GET/2/tweets/search/stream/rulesGet stream rules
Parameters
NameInRequiredType
idsquerynoarray
max_resultsquerynointeger
pagination_tokenquerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.RulesLookupResponse
defaultThe request has failed.Error
POST/2/tweets/search/stream/rulesUpdate stream rules
Parameters
NameInRequiredType
dry_runquerynoboolean
delete_allquerynoboolean
Request body

application/jsonAddOrDeleteRulesRequest (required)

Responses
StatusDescriptionSchema
200The request has succeeded.AddOrDeleteRulesResponse
defaultThe request has failed.Error
GET/2/tweets/search/stream/rules/countsGet stream rule counts
Responses
StatusDescriptionSchema
200The request has succeeded.Get2TweetsSearchStreamRulesCountsResponse
defaultThe request has failed.Error
GET/2/users/compliance/streamStream Users compliance data
Parameters
NameInRequiredType
backfill_minutesquerynointeger
partitionqueryyesinteger
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.UserComplianceStreamResponse
defaultThe request has failed.Error
Tweets16

Endpoints related to retrieving, searching, and modifying Tweets

GET/2/insights/28hrGet 28-hour Post insights
Parameters
NameInRequiredType
tweet_idsqueryyesarray
granularityqueryyesstring
requested_metricsqueryyesarray
Responses
StatusDescriptionSchema
200The request has succeeded.Get2Insights28hrResponse
defaultThe request has failed.Error
GET/2/insights/historicalGet historical Post insights
Parameters
NameInRequiredType
tweet_idsqueryyesarray
end_timequeryyesstring
start_timequeryyesstring
granularityqueryyesstring
requested_metricsqueryyesarray
Responses
StatusDescriptionSchema
200The request has succeeded.Get2InsightsHistoricalResponse
defaultThe request has failed.Error
GET/2/tweetsGet Posts by IDs
Parameters
NameInRequiredType
idsqueryyesarray
Responses
StatusDescriptionSchema
200The request has succeeded.Get2TweetsResponse
defaultThe request has failed.Error
POST/2/tweetsCreate or Edit Post
Request body

application/jsonTweetCreateRequest (required)

Responses
StatusDescriptionSchema
201The request has succeeded.TweetCreateResponse
defaultThe request has failed.Error
GET/2/tweets/analyticsGet Post analytics
Parameters
NameInRequiredType
idsqueryyesarray
end_timequeryyesstring
start_timequeryyesstring
granularityqueryyesstring
Responses
StatusDescriptionSchema
200The request has succeeded.Analytics
defaultThe request has failed.Error
GET/2/tweets/counts/allGet count of all Posts
Parameters
NameInRequiredType
queryqueryyesstring
start_timequerynostring
end_timequerynostring
since_idqueryno
until_idqueryno
next_tokenqueryno
pagination_tokenqueryno
granularityquerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.Get2TweetsCountsAllResponse
defaultThe request has failed.Error
GET/2/tweets/counts/recentGet count of recent Posts
Parameters
NameInRequiredType
queryqueryyesstring
start_timequerynostring
end_timequerynostring
since_idqueryno
until_idqueryno
next_tokenqueryno
pagination_tokenqueryno
granularityquerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.Get2TweetsCountsRecentResponse
defaultThe request has failed.Error
GET/2/tweets/search/allSearch all Posts
Parameters
NameInRequiredType
queryqueryyesstring
start_timequerynostring
end_timequerynostring
since_idqueryno
until_idqueryno
max_resultsquerynointeger
next_tokenqueryno
pagination_tokenqueryno
sort_orderquerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.Get2TweetsSearchAllResponse
defaultThe request has failed.Error
GET/2/tweets/search/recentSearch recent Posts
Parameters
NameInRequiredType
queryqueryyesstring
start_timequerynostring
end_timequerynostring
since_idqueryno
until_idqueryno
max_resultsquerynointeger
next_tokenqueryno
pagination_tokenqueryno
sort_orderquerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.Get2TweetsSearchRecentResponse
defaultThe request has failed.Error
GET/2/tweets/{id}Get Post by ID
Parameters
NameInRequiredType
idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.Get2TweetsIdResponse
defaultThe request has failed.Error
DELETE/2/tweets/{id}Delete Post
Parameters
NameInRequiredType
idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.TweetDeleteResponse
defaultThe request has failed.Error
GET/2/tweets/{id}/liking_usersGet Liking Users
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2TweetsIdLikingUsersResponse
defaultThe request has failed.Error
GET/2/tweets/{id}/quote_tweetsGet Quoted Posts
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
excludequerynoarray
Responses
StatusDescriptionSchema
200The request has succeeded.Get2TweetsIdQuoteTweetsResponse
defaultThe request has failed.Error
GET/2/tweets/{id}/retweeted_byGet Reposted by
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2TweetsIdRetweetedByResponse
defaultThe request has failed.Error
GET/2/tweets/{id}/retweetsGet Reposts
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2TweetsIdRetweetsResponse
defaultThe request has failed.Error
PUT/2/tweets/{tweet_id}/hiddenHide reply
Parameters
NameInRequiredType
tweet_idpathyes
Request body

application/jsonTweetHideRequest

Responses
StatusDescriptionSchema
200The request has succeeded.TweetHideResponse
defaultThe request has failed.Error
Users41

Endpoints related to retrieving, managing relationships of Users

GET/2/usersGet Users by IDs
Parameters
NameInRequiredType
idsqueryyesarray
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersResponse
defaultThe request has failed.Error
GET/2/users/byGet Users by usernames
Parameters
NameInRequiredType
usernamesqueryyesarray
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersByResponse
defaultThe request has failed.Error
GET/2/users/by/username/{username}Get User by username
Parameters
NameInRequiredType
usernamepathyesstring
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersByUsernameUsernameResponse
defaultThe request has failed.Error
GET/2/users/meGet my User
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersMeResponse
defaultThe request has failed.Error
GET/2/users/public_keysGet public keys for multiple users
Parameters
NameInRequiredType
idsqueryyesarray
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersPublicKeysResponse
defaultThe request has failed.Error
GET/2/users/reposts_of_meGet Reposts of me
Parameters
NameInRequiredType
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersRepostsOfMeResponse
defaultThe request has failed.Error
GET/2/users/searchSearch Users
Parameters
NameInRequiredType
queryqueryyes
max_resultsquerynointeger
next_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersSearchResponse
defaultThe request has failed.Error
GET/2/users/{id}Get User by ID
Parameters
NameInRequiredType
idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersIdResponse
defaultThe request has failed.Error
GET/2/users/{id}/affiliatesGet affiliates
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersIdAffiliatesResponse
defaultThe request has failed.Error
GET/2/users/{id}/blockingGet blocking
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersIdBlockingResponse
defaultThe request has failed.Error
GET/2/users/{id}/bookmarksGet Bookmarks
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersIdBookmarksResponse
defaultThe request has failed.Error
POST/2/users/{id}/bookmarksCreate Bookmark
Parameters
NameInRequiredType
idpathyes
Request body

application/jsonBookmarkAddRequest (required)

Responses
StatusDescriptionSchema
200The request has succeeded.BookmarkMutationResponse
defaultThe request has failed.Error
GET/2/users/{id}/bookmarks/foldersGet Bookmark folders
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.BookmarkFoldersResponse
defaultThe request has failed.Error
GET/2/users/{id}/bookmarks/folders/{folder_id}Get Bookmarks by folder ID
Parameters
NameInRequiredType
idpathyes
folder_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.BookmarkFolderPostsResponse
defaultThe request has failed.Error
DELETE/2/users/{id}/bookmarks/{tweet_id}Delete Bookmark
Parameters
NameInRequiredType
idpathyes
tweet_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.BookmarkMutationResponse
defaultThe request has failed.Error
POST/2/users/{id}/dm/blockBlock DMs
Parameters
NameInRequiredType
idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.UsersDMBlockCreateResponse
defaultThe request has failed.Error
POST/2/users/{id}/dm/unblockUnblock DMs
Parameters
NameInRequiredType
idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.UsersDMUnBlockCreateResponse
defaultThe request has failed.Error
GET/2/users/{id}/followed_listsGet followed Lists
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersIdFollowedListsResponse
defaultThe request has failed.Error
POST/2/users/{id}/followed_listsFollow List
Parameters
NameInRequiredType
idpathyes
Request body

application/jsonListFollowedRequest

Responses
StatusDescriptionSchema
200The request has succeeded.ListFollowedResponse
defaultThe request has failed.Error
DELETE/2/users/{id}/followed_lists/{list_id}Unfollow List
Parameters
NameInRequiredType
idpathyes
list_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.ListFollowedResponse
defaultThe request has failed.Error
GET/2/users/{id}/followersGet followers
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersIdFollowersResponse
defaultThe request has failed.Error
GET/2/users/{id}/followingGet following
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersIdFollowingResponse
defaultThe request has failed.Error
POST/2/users/{id}/followingFollow User
Parameters
NameInRequiredType
idpathyes
Request body

application/jsonUsersFollowingCreateRequest

Responses
StatusDescriptionSchema
200The request has succeeded.UsersFollowingCreateResponse
defaultThe request has failed.Error
GET/2/users/{id}/liked_tweetsGet liked Posts
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersIdLikedTweetsResponse
defaultThe request has failed.Error
POST/2/users/{id}/likesLike Post
Parameters
NameInRequiredType
idpathyes
Request body

application/jsonUsersLikesCreateRequest

Responses
StatusDescriptionSchema
200The request has succeeded.UsersLikesCreateResponse
defaultThe request has failed.Error
DELETE/2/users/{id}/likes/{tweet_id}Unlike Post
Parameters
NameInRequiredType
idpathyes
tweet_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.UsersLikesDeleteResponse
defaultThe request has failed.Error
GET/2/users/{id}/list_membershipsGet List memberships
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersIdListMembershipsResponse
defaultThe request has failed.Error
GET/2/users/{id}/mentionsGet mentions
Parameters
NameInRequiredType
idpathyes
since_idqueryno
until_idqueryno
max_resultsquerynointeger
pagination_tokenqueryno
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersIdMentionsResponse
defaultThe request has failed.Error
GET/2/users/{id}/mutingGet muting
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersIdMutingResponse
defaultThe request has failed.Error
POST/2/users/{id}/mutingMute User
Parameters
NameInRequiredType
idpathyes
Request body

application/jsonMuteUserRequest

Responses
StatusDescriptionSchema
200The request has succeeded.MuteUserMutationResponse
defaultThe request has failed.Error
GET/2/users/{id}/owned_listsGet owned Lists
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersIdOwnedListsResponse
defaultThe request has failed.Error
GET/2/users/{id}/pinned_listsGet pinned Lists
Parameters
NameInRequiredType
idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersIdPinnedListsResponse
defaultThe request has failed.Error
POST/2/users/{id}/pinned_listsPin List
Parameters
NameInRequiredType
idpathyes
Request body

application/jsonListPinnedRequest (required)

Responses
StatusDescriptionSchema
200The request has succeeded.ListPinnedResponse
defaultThe request has failed.Error
DELETE/2/users/{id}/pinned_lists/{list_id}Unpin List
Parameters
NameInRequiredType
idpathyes
list_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.ListUnpinResponse
defaultThe request has failed.Error
GET/2/users/{id}/public_keysGet user public keys
Parameters
NameInRequiredType
idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersIdPublicKeysResponse
defaultThe request has failed.Error
POST/2/users/{id}/retweetsRepost Post
Parameters
NameInRequiredType
idpathyes
Request body

application/jsonUsersRetweetsCreateRequest

Responses
StatusDescriptionSchema
200The request has succeeded.UsersRetweetsCreateResponse
defaultThe request has failed.Error
DELETE/2/users/{id}/retweets/{source_tweet_id}Unrepost Post
Parameters
NameInRequiredType
idpathyes
source_tweet_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.UsersRetweetsDeleteResponse
defaultThe request has failed.Error
GET/2/users/{id}/timelines/reverse_chronologicalGet Timeline
Parameters
NameInRequiredType
idpathyes
since_idqueryno
until_idqueryno
max_resultsquerynointeger
pagination_tokenqueryno
excludequerynoarray
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersIdTimelinesReverseChronologicalResponse
defaultThe request has failed.Error
GET/2/users/{id}/tweetsGet Posts
Parameters
NameInRequiredType
idpathyes
since_idqueryno
until_idqueryno
max_resultsquerynointeger
pagination_tokenqueryno
excludequerynoarray
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersIdTweetsResponse
defaultThe request has failed.Error
DELETE/2/users/{source_user_id}/following/{target_user_id}Unfollow User
Parameters
NameInRequiredType
source_user_idpathyes
target_user_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.UsersFollowingDeleteResponse
defaultThe request has failed.Error
DELETE/2/users/{source_user_id}/muting/{target_user_id}Unmute User
Parameters
NameInRequiredType
source_user_idpathyes
target_user_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.MuteUserMutationResponse
defaultThe request has failed.Error
Activity6
GET/2/activity/streamActivity Stream
Parameters
NameInRequiredType
backfill_minutesquerynointeger
start_timequerynostring
end_timequerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.ActivityStreamingResponse
defaultThe request has failed.Error
GET/2/activity/subscriptionsGet X activity subscriptions
Parameters
NameInRequiredType
max_resultsquerynointeger
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.ActivitySubscriptionGetResponse
defaultThe request has failed.Error
POST/2/activity/subscriptionsCreate X activity subscription
Request body

application/jsonActivitySubscriptionCreateRequest

Responses
StatusDescriptionSchema
200The request has succeeded.ActivitySubscriptionCreateResponse
defaultThe request has failed.Error
DELETE/2/activity/subscriptionsDelete X activity subscriptions by IDs
Parameters
NameInRequiredType
idsqueryyesarray
Responses
StatusDescriptionSchema
200The request has succeeded.ActivitySubscriptionDeleteResponse
defaultThe request has failed.Error
PUT/2/activity/subscriptions/{subscription_id}Update X activity subscription
Parameters
NameInRequiredType
subscription_idpathyes
Request body

application/jsonActivitySubscriptionUpdateRequest

Responses
StatusDescriptionSchema
200The request has succeeded.ActivitySubscriptionUpdateResponse
defaultThe request has failed.Error
DELETE/2/activity/subscriptions/{subscription_id}Deletes X activity subscription
Parameters
NameInRequiredType
subscription_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.ActivitySubscriptionDeleteResponse
defaultThe request has failed.Error
Chat15
GET/2/chat/conversationsGet Chat Conversations
Parameters
NameInRequiredType
max_resultsquerynointeger
pagination_tokenquerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.ChatGetConversationsResponse
defaultThe request has failed.Error
POST/2/chat/conversations/groupCreate Chat Group Conversation
Request body

application/jsonChatCreateConversationRequest (required)

Responses
StatusDescriptionSchema
201The request has succeeded.ChatCreateConversationResponse
defaultThe request has failed.Error
POST/2/chat/conversations/group/initializeInitialize Chat Group
Responses
StatusDescriptionSchema
200The request has succeeded.ChatInitializeGroupResponse
defaultThe request has failed.Error
GET/2/chat/conversations/{id}Get Chat Conversation
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200The request has succeeded.ChatGetConversationsResponse
defaultThe request has failed.Error
GET/2/chat/conversations/{id}/eventsGet Chat Conversation Events
Parameters
NameInRequiredType
idpathyes
max_resultsquerynointeger
pagination_tokenquerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.ChatGetConversationResponse
defaultThe request has failed.Error
POST/2/chat/conversations/{id}/keysAdd Conversation Keys
Parameters
NameInRequiredType
idpathyes
Request body

application/jsonChatInitializeConversationKeysRequest (required)

Responses
StatusDescriptionSchema
200The request has succeeded.ChatInitializeConversationKeysResponse
defaultThe request has failed.Error
POST/2/chat/conversations/{id}/membersAdd members to a Chat group conversation
Parameters
NameInRequiredType
idpathyes
Request body

application/jsonChatAddGroupMembersRequest (required)

Responses
StatusDescriptionSchema
200The request has succeeded.ChatAddGroupMembersResponse
defaultThe request has failed.Error
POST/2/chat/conversations/{id}/messagesSend Chat Message
Parameters
NameInRequiredType
idpathyes
Request body

application/jsonChatSendMessageRequest (required)

Responses
StatusDescriptionSchema
201The request has succeeded.ChatSendMessageResponse
defaultThe request has failed.Error
POST/2/chat/conversations/{id}/readMark Conversation as Read
Parameters
NameInRequiredType
idpathyes
Request body

application/jsonChatMarkConversationReadRequest (required)

Responses
StatusDescriptionSchema
200The request has succeeded.ChatMarkConversationReadResponse
defaultThe request has failed.Error
POST/2/chat/conversations/{id}/typingSend Typing Indicator
Parameters
NameInRequiredType
idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.ChatSendTypingIndicatorResponse
defaultThe request has failed.Error
POST/2/chat/media/upload/initializeInitialize Chat Media Upload
Request body

application/jsonChatMediaUploadInitializeRequest (required)

Responses
StatusDescriptionSchema
200The request has succeeded.ChatMediaUploadInitializeResponse
defaultThe request has failed.Error
POST/2/chat/media/upload/{id}/appendAppend Chat Media Upload
Parameters
NameInRequiredType
idpathyesstring
Request body

application/jsonChatMediaUploadAppendRequest (required)

Responses
StatusDescriptionSchema
200The request has succeeded.MediaUploadAppendResponse
defaultThe request has failed.Error
POST/2/chat/media/upload/{id}/finalizeFinalize Chat Media Upload
Parameters
NameInRequiredType
idpathyesstring
Request body

application/jsonChatMediaUploadFinalizeRequest (required)

Responses
StatusDescriptionSchema
200The request has succeeded.ChatMediaUploadFinalizeResponse
defaultThe request has failed.Error
GET/2/chat/media/{id}/{media_hash_key}Download Chat Media
Parameters
NameInRequiredType
idpathyes
media_hash_keypathyes
Responses
StatusDescriptionSchema
200The request has succeeded.BinaryPayload
defaultThe request has failed.Error
POST/2/users/{id}/public_keysAdd public key
Parameters
NameInRequiredType
idpathyes
Request body

application/jsonChatAddPublicKeyRequest (required)

Responses
StatusDescriptionSchema
200The request has succeeded.ChatAddPublicKeyResponse
defaultThe request has failed.Error
Communities2
GET/2/communities/searchSearch Communities
Parameters
NameInRequiredType
queryqueryyesstring
max_resultsquerynointeger
next_tokenqueryno
pagination_tokenqueryno
Responses
StatusDescriptionSchema
200The request has succeeded.Get2CommunitiesSearchResponse
defaultThe request has failed.Error
GET/2/communities/{id}Get Community by ID
Parameters
NameInRequiredType
idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.Get2CommunitiesIdResponse
defaultThe request has failed.Error
Community Notes5
POST/2/evaluate_noteEvaluate a Community Note
Request body

application/jsonEvaluateNoteRequest

Responses
StatusDescriptionSchema
200The request has succeeded.EvaluateNoteResponse
defaultThe request has failed.Error
POST/2/notesCreate a Community Note
Request body

application/jsonCreateNoteRequest

Responses
StatusDescriptionSchema
200The request has succeeded.CreateNoteResponse
defaultThe request has failed.Error
GET/2/notes/search/notes_writtenSearch for Community Notes Written
Parameters
NameInRequiredType
test_modequeryyesboolean
pagination_tokenquerynostring
max_resultsquerynointeger
Responses
StatusDescriptionSchema
200The request has succeeded.Get2NotesSearchNotesWrittenResponse
defaultThe request has failed.Error
GET/2/notes/search/posts_eligible_for_notesSearch for Posts Eligible for Community Notes
Parameters
NameInRequiredType
test_modequeryyesboolean
pagination_tokenquerynostring
max_resultsquerynointeger
post_selectionquerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.Get2NotesSearchPostsEligibleForNotesResponse
defaultThe request has failed.Error
DELETE/2/notes/{id}Delete a Community Note
Parameters
NameInRequiredType
idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.DeleteNoteResponse
defaultThe request has failed.Error
Trends2
GET/2/trends/by/woeid/{woeid}Get Trends by WOEID
Parameters
NameInRequiredType
woeidpathyesinteger
max_trendsquerynointeger
Responses
StatusDescriptionSchema
200The request has succeeded.Get2TrendsByWoeidWoeidResponse
defaultThe request has failed.Error
GET/2/users/personalized_trendsGet personalized Trends
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsersPersonalizedTrendsResponse
defaultThe request has failed.Error
Usage1
GET/2/usage/tweetsGet usage
Parameters
NameInRequiredType
daysquerynointeger
Responses
StatusDescriptionSchema
200The request has succeeded.Get2UsageTweetsResponse
defaultThe request has failed.Error
Webhooks8
GET/2/tweets/search/webhooksGet stream links
Responses
StatusDescriptionSchema
200The request has succeeded.WebhookLinksGetResponse
defaultThe request has failed.Error
POST/2/tweets/search/webhooks/{webhook_id}Create stream link
Parameters
NameInRequiredType
webhook_idpathyes
tweet.fieldsquerynostring
expansionsquerynostring
media.fieldsquerynostring
poll.fieldsquerynostring
user.fieldsquerynostring
place.fieldsquerynostring
Responses
StatusDescriptionSchema
200The request has succeeded.WebhookLinksCreateResponse
defaultThe request has failed.Error
DELETE/2/tweets/search/webhooks/{webhook_id}Delete stream link
Parameters
NameInRequiredType
webhook_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.WebhookLinksDeleteResponse
defaultThe request has failed.Error
GET/2/webhooksGet webhook
Responses
StatusDescriptionSchema
200The request has succeeded.Get2WebhooksResponse
defaultThe request has failed.Error
POST/2/webhooksCreate webhook
Request body

application/jsonWebhookConfigCreateRequest

Responses
StatusDescriptionSchema
200The request has succeeded.WebhookConfigCreateResponse
defaultThe request has failed.Error
POST/2/webhooks/replayCreate replay job for webhook
Request body

application/jsonWebhookReplayCreateRequest

Responses
StatusDescriptionSchema
200The request has succeeded.ReplayJobCreateResponse
defaultThe request has failed.Error
PUT/2/webhooks/{webhook_id}Validate webhook
Parameters
NameInRequiredType
webhook_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.WebhookConfigPutResponse
defaultThe request has failed.Error
DELETE/2/webhooks/{webhook_id}Delete webhook
Parameters
NameInRequiredType
webhook_idpathyes
Responses
StatusDescriptionSchema
200The request has succeeded.WebhookConfigDeleteResponse
defaultThe request has failed.Error

Try it

Developer reference

Base URLhttps://api.x.com
Rate limit

X's own docs (docs.x.com/x-api/fundamentals/rate-limits) enforce limits per endpoint on 15-minute windows for most calls (some, like post creation, use a 24-hour window instead), tracked separately for app-only Bearer-token traffic and per-user OAuth traffic -- e.g. GET /2/tweets/{id} allows 450 requests/15min per app vs 900/15min per user, while POST /2/tweets is capped at 10,000/24hrs per app but only 100/15min per user. Every response reports live standing via x-rate-limit-limit, x-rate-limit-remaining, and x-rate-limit-reset headers, and exceeding a window returns HTTP 429 with error code 88 ('Rate limit exceeded'). Access is no longer split into the named Free/Basic/Pro/Enterprise tiers X used after its 2023 relaunch -- the live pricing page (docs.x.com/x-api/getting-started/pricing) now sells pay-per-usage credits billed per resource (e.g. $0.005/Post read, $0.015/Post write), capped at 2,000,000 Post reads per billing cycle before an Enterprise plan with custom limits is required.

Key endpoints
  • GET/2/tweets/{id}
  • GET/2/users/by/username/{username}
  • GET/2/users/{id}/tweets
  • GET/2/tweets/search/recent
  • GET/2/users/me