Twitter / X connector
Bearer TokenCommunicationMarketingConnect to Twitter. Read and write Tweets, read users, manage follows, bookmarks, etc.
Twitter / X connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Set up the connector
Section titled “Set up the connector”Register your Twitter / X credentials with Scalekit so it can authenticate requests on your behalf. You do this once per environment.
Dashboard setup steps
Register your Twitter app credentials with Scalekit so it can manage the OAuth 2.0 authentication flow and token lifecycle on your behalf. You’ll need a Client ID and Client Secret from the Twitter Developer Portal.
-
Create a Twitter connection in Scalekit
-
In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Search for Twitter and click Create.

-
In the Configure Twitter Connection panel, copy the Redirect URI. It looks like
https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback. You’ll paste this into Twitter in the next step.
-
-
Create an app in the Twitter Developer Portal
-
Go to the Twitter Developer Portal and sign in.
-
Click + Add App (or + Create Project to group apps by environment).

-
Select Production environment and give your app a name.
-
-
Configure user authentication settings
-
In your app’s overview, find User authentication settings and click Set up.

-
Set the following values:
Setting Value App permissions Read and Write — needed to post and manage content on behalf of users Type of App Web App, Automated App or Bot Callback URI / Redirect URL Paste the Redirect URI from Scalekit Website URL Your application’s public homepage -
Click Save.
-
-
Copy OAuth 2.0 credentials
-
In your app, navigate to Keys and tokens.
-
Under OAuth 2.0 Client ID and Client Secret, click Generate (or Regenerate if credentials already exist).
-
Copy the Client ID and Client Secret.

-
-
Add credentials in Scalekit
-
In Scalekit dashboard, go to AgentKit > Connections and open the Twitter connection you created.
-
Enter your credentials:
- Client ID — from the Twitter OAuth 2.0 section
- Client Secret — copied in the previous step
- Scopes — select the permissions your app needs:
tweet.read— read tweets and timelinestweet.write— create, delete, and manage tweetsusers.read— read user profile datafollows.read— read follower/following listsfollows.write— follow and unfollow userslike.read— read liked tweetslike.write— like and unlike tweetsbookmark.read— read bookmarked tweetsbookmark.write— add and remove bookmarkslist.read— read list membership and tweetslist.write— create, update, and delete listsdm.read— read direct messagesdm.write— send direct messagesmute.read— read muted usersmute.write— mute and unmute usersblock.read— read blocked usersblock.write— block and unblock usersoffline.access— obtain refresh tokens for long-lived access

-
Click Save.
-
-
-
Make your first call
Section titled “Make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'twitter'const identifier = 'user_123'// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'twitter_dm_events_get',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "twitter"identifier = "user_123"# Make your first callresult = actions.execute_tool(tool_input={},tool_name="twitter_dm_events_get",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Get media upload status, post likers, user followed lists — Gets the status of a media upload for X/Twitter
- Lookup users, posts, user — Retrieves detailed information for specified X (formerly Twitter) user IDs
- Unmute user — Unmutes a target user for the authenticated user, allowing them to see Tweets and notifications from the target user again
- List delete, member remove, follow — Permanently deletes a specified Twitter List using its ID
- Search full archive, recent — Searches the full archive of public Tweets from March 2006 onwards
- Upload media — Uploads media (images only) to X/Twitter using the v2 API
Common workflows
Section titled “Common workflows”Proxy API call
const me = await actions.request({ connectionName: 'twitter', identifier: 'user_123', path: '/2/users/me', method: 'GET', params: { 'user.fields': 'name,username,profile_image_url,description' },});console.log('Authenticated user:', me);
// Example: post a tweetconst tweet = await actions.request({ connectionName: 'twitter', identifier: 'user_123', path: '/2/tweets', method: 'POST', body: { text: 'Hello from Scalekit Agent Auth!' },});console.log('Posted tweet:', tweet);
// Example: search recent tweetsconst search = await actions.request({ connectionName: 'twitter', identifier: 'user_123', path: '/2/tweets/search/recent', method: 'GET', params: { query: 'from:twitterdev', max_results: '10' },});console.log('Search results:', search);me = actions.request( connection_name='twitter', identifier='user_123', path="/2/users/me", method="GET", params={"user.fields": "name,username,profile_image_url,description"})print("Authenticated user:", me)
# Example: post a tweettweet = actions.request( connection_name='twitter', identifier='user_123', path="/2/tweets", method="POST", body={"text": "Hello from Scalekit Agent Auth!"})print("Posted tweet:", tweet)
# Example: search recent tweetssearch = actions.request( connection_name='twitter', identifier='user_123', path="/2/tweets/search/recent", method="GET", params={"query": "from:twitterdev", "max_results": "10"})print("Search results:", search)Execute a tool
const result = await actions.executeTool({ connector: 'twitter', identifier: 'user_123', toolName: 'twitter_blocked_users_get', toolInput: { id: '<YOUR_USER_ID>', // use the id from /2/users/me },});console.log(result);result = actions.execute_tool( tool_name='twitter_blocked_users_get', tool_input={ "id": "<YOUR_USER_ID>", # use the id from /2/users/me }, connection_name='twitter', identifier='user_123',)print(result)Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
twitter_activity_subscription_create#Creates a subscription for an X activity event. Use when you need to monitor specific user activities like profile updates, follows, or spaces events.2 params
Creates a subscription for an X activity event. Use when you need to monitor specific user activities like profile updates, follows, or spaces events.
event_typesarrayrequiredList of event types to subscribe to, e.g. profile.updated, follows, spacesuser_idstringrequiredTwitter user ID to subscribe to activities fortwitter_blocked_users_get#Retrieves the authenticated user's block list. The id parameter must be the authenticated user's ID. Use Get Authenticated User action first to obtain your user ID.5 params
Retrieves the authenticated user's block list. The id parameter must be the authenticated user's ID. Use Get Authenticated User action first to obtain your user ID.
idstringrequiredAuthenticated user's Twitter ID — must match the authenticated userexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-1000)pagination_tokenstringoptionalPagination token for next pageuser_fieldsstringoptionalComma-separated user fieldstwitter_bookmark_add#Adds a specified, existing, and accessible Tweet to a user's bookmarks. Success is indicated by the 'bookmarked' field in the response.2 params
Adds a specified, existing, and accessible Tweet to a user's bookmarks. Success is indicated by the 'bookmarked' field in the response.
idstringrequiredAuthenticated user's Twitter IDtweet_idstringrequiredID of the Tweet to bookmarktwitter_bookmark_remove#Removes a Tweet from the authenticated user's bookmarks. The Tweet must have been previously bookmarked by the user for the action to have an effect.2 params
Removes a Tweet from the authenticated user's bookmarks. The Tweet must have been previously bookmarked by the user for the action to have an effect.
idstringrequiredAuthenticated user's Twitter IDtweet_idstringrequiredID of the bookmarked tweet to removetwitter_bookmarks_get#Retrieves Tweets bookmarked by the authenticated user. The provided User ID must match the authenticated user's ID.5 params
Retrieves Tweets bookmarked by the authenticated user. The provided User ID must match the authenticated user's ID.
idstringrequiredAuthenticated user's Twitter IDexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-100)pagination_tokenstringoptionalPagination token for next pagetweet_fieldsstringoptionalComma-separated tweet fieldstwitter_compliance_job_create#Creates a new compliance job to check the status of Tweet or user IDs. Upload IDs as a plain text file (one ID per line) to the upload_url received in the response.2 params
Creates a new compliance job to check the status of Tweet or user IDs. Upload IDs as a plain text file (one ID per line) to the upload_url received in the response.
typestringrequiredType of compliance jobresumablebooleanoptionalWhether the job should be resumabletwitter_compliance_job_get#Retrieves status, download/upload URLs, and other details for an existing Twitter compliance job specified by its unique ID.1 param
Retrieves status, download/upload URLs, and other details for an existing Twitter compliance job specified by its unique ID.
idstringrequiredCompliance job IDtwitter_compliance_jobs_list#Returns a list of recent compliance jobs, filtered by type (tweets or users) and optionally by status.2 params
Returns a list of recent compliance jobs, filtered by type (tweets or users) and optionally by status.
typestringrequiredType of compliance jobs to liststatusstringoptionalFilter by job statustwitter_dm_conversation_events_get#Fetches Direct Message (DM) events for a one-on-one conversation with a specified participant ID, ordered chronologically newest to oldest. Does not support group DMs.6 params
Fetches Direct Message (DM) events for a one-on-one conversation with a specified participant ID, ordered chronologically newest to oldest. Does not support group DMs.
participant_idstringrequiredUser ID of the DM conversation participantdm_event_fieldsstringoptionalComma-separated DM event fieldsevent_typesstringoptionalFilter by event typesexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-100)pagination_tokenstringoptionalPagination token for next pagetwitter_dm_conversation_retrieve#Retrieves Direct Message (DM) events for a specific conversation ID on Twitter. Useful for analyzing messages and participant activities.5 params
Retrieves Direct Message (DM) events for a specific conversation ID on Twitter. Useful for analyzing messages and participant activities.
dm_conversation_idstringrequiredDM conversation IDdm_event_fieldsstringoptionalComma-separated DM event fieldsexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-100)pagination_tokenstringoptionalPagination token for next pagetwitter_dm_conversation_send#Sends a message with optional text and/or media attachments (using pre-uploaded media_ids) to a specified Twitter Direct Message conversation.3 params
Sends a message with optional text and/or media attachments (using pre-uploaded media_ids) to a specified Twitter Direct Message conversation.
dm_conversation_idstringrequiredDM conversation ID to send the message tomedia_idstringoptionalPre-uploaded media ID to attachtextstringoptionalMessage texttwitter_dm_delete#Permanently deletes a specific Twitter Direct Message (DM) event using its event_id, if the authenticated user sent it. This action is irreversible and does not delete entire conversations.2 params
Permanently deletes a specific Twitter Direct Message (DM) event using its event_id, if the authenticated user sent it. This action is irreversible and does not delete entire conversations.
event_idstringrequiredID of the DM event to deleteparticipant_idstringrequiredUser ID of the DM conversation participanttwitter_dm_event_get#Fetches a specific Direct Message (DM) event by its unique ID. Allows optional expansion of related data like users or tweets.3 params
Fetches a specific Direct Message (DM) event by its unique ID. Allows optional expansion of related data like users or tweets.
event_idstringrequiredDM event IDdm_event_fieldsstringoptionalComma-separated DM event fieldsexpansionsstringoptionalComma-separated expansionstwitter_dm_events_get#Returns recent Direct Message events for the authenticated user, such as new messages or changes in conversation participants.5 params
Returns recent Direct Message events for the authenticated user, such as new messages or changes in conversation participants.
dm_event_fieldsstringoptionalComma-separated DM event fieldsevent_typesstringoptionalFilter by event typesexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-100)pagination_tokenstringoptionalPagination token for next pagetwitter_dm_group_conversation_create#Creates a new group Direct Message (DM) conversation on Twitter. The conversation_type must be 'Group'. Include participant_ids and an initial message with text and optional media attachments using media_id (not media_url). Media must be uploaded first.3 params
Creates a new group Direct Message (DM) conversation on Twitter. The conversation_type must be 'Group'. Include participant_ids and an initial message with text and optional media attachments using media_id (not media_url). Media must be uploaded first.
message_textstringrequiredInitial message textparticipant_idsarrayrequiredList of Twitter user IDs to includemessage_media_idsarrayoptionalMedia IDs to attach to initial messagetwitter_dm_send#Sends a new Direct Message with text and/or media (media_id for attachments must be pre-uploaded) to a specified Twitter user. Creates a new DM and does not modify existing messages.3 params
Sends a new Direct Message with text and/or media (media_id for attachments must be pre-uploaded) to a specified Twitter user. Creates a new DM and does not modify existing messages.
participant_idstringrequiredTwitter user ID of the DM recipientmedia_idstringoptionalPre-uploaded media ID to attachtextstringoptionalMessage texttwitter_followers_get#Retrieves a list of users who follow a specified public Twitter user ID.5 params
Retrieves a list of users who follow a specified public Twitter user ID.
idstringrequiredTwitter user ID to get followers forexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-1000)pagination_tokenstringoptionalPagination token for next pageuser_fieldsstringoptionalComma-separated user fieldstwitter_following_get#Retrieves users followed by a specific Twitter user, allowing pagination and customization of returned user and tweet data fields via expansions.5 params
Retrieves users followed by a specific Twitter user, allowing pagination and customization of returned user and tweet data fields via expansions.
idstringrequiredTwitter user IDexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-1000)pagination_tokenstringoptionalPagination token for next pageuser_fieldsstringoptionalComma-separated user fieldstwitter_full_archive_search#Searches the full archive of public Tweets from March 2006 onwards. Use start_time and end_time together for a defined time window. Requires Academic Research access.10 params
Searches the full archive of public Tweets from March 2006 onwards. Use start_time and end_time together for a defined time window. Requires Academic Research access.
querystringrequiredSearch query using X search syntaxend_timestringoptionalISO 8601 end timeexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (10-500)next_tokenstringoptionalNext page tokensince_idstringoptionalMinimum tweet IDstart_timestringoptionalISO 8601 start time e.g. 2021-01-01T00:00:00Ztweet_fieldsstringoptionalComma-separated tweet fieldsuntil_idstringoptionalMaximum tweet IDuser_fieldsstringoptionalComma-separated user fieldstwitter_full_archive_search_counts#Returns a count of Tweets from the full archive that match a specified query, aggregated by day, hour, or minute. start_time must be before end_time if both are provided. since_id/until_id cannot be used with start_time/end_time.7 params
Returns a count of Tweets from the full archive that match a specified query, aggregated by day, hour, or minute. start_time must be before end_time if both are provided. since_id/until_id cannot be used with start_time/end_time.
querystringrequiredSearch queryend_timestringoptionalISO 8601 end timegranularitystringoptionalAggregation granularitynext_tokenstringoptionalNext page tokensince_idstringoptionalMinimum tweet IDstart_timestringoptionalISO 8601 start timeuntil_idstringoptionalMaximum tweet IDtwitter_list_create#Creates a new, empty List on X (formerly Twitter). The provided name must be unique for the authenticated user. Accounts are added separately.3 params
Creates a new, empty List on X (formerly Twitter). The provided name must be unique for the authenticated user. Accounts are added separately.
namestringrequiredUnique name for the new listdescriptionstringoptionalDescription of the listprivatebooleanoptionalWhether the list should be privatetwitter_list_delete#Permanently deletes a specified Twitter List using its ID. The list must be owned by the authenticated user. This action is irreversible.1 param
Permanently deletes a specified Twitter List using its ID. The list must be owned by the authenticated user. This action is irreversible.
list_idstringrequiredID of the Twitter List to deletetwitter_list_follow#Allows the authenticated user to follow a specific Twitter List they are permitted to access, subscribing them to the list's timeline. This does not automatically follow individual list members.2 params
Allows the authenticated user to follow a specific Twitter List they are permitted to access, subscribing them to the list's timeline. This does not automatically follow individual list members.
idstringrequiredAuthenticated user's Twitter IDlist_idstringrequiredID of the list to followtwitter_list_followers_get#Fetches a list of users who follow a specific Twitter List, identified by its ID. Ensure the authenticated user has access if the list is private.5 params
Fetches a list of users who follow a specific Twitter List, identified by its ID. Ensure the authenticated user has access if the list is private.
idstringrequiredTwitter List IDexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-100)pagination_tokenstringoptionalPagination token for next pageuser_fieldsstringoptionalComma-separated user fieldstwitter_list_lookup#Returns metadata for a specific Twitter List, identified by its ID. Does not return list members. Can expand the owner's User object via the expansions parameter.4 params
Returns metadata for a specific Twitter List, identified by its ID. Does not return list members. Can expand the owner's User object via the expansions parameter.
idstringrequiredTwitter List IDexpansionsstringoptionalComma-separated expansionslist_fieldsstringoptionalComma-separated list fieldsuser_fieldsstringoptionalComma-separated user fieldstwitter_list_member_add#Adds a user to a specified Twitter List. The list must be owned by the authenticated user.2 params
Adds a user to a specified Twitter List. The list must be owned by the authenticated user.
list_idstringrequiredID of the Twitter Listuser_idstringrequiredID of the user to addtwitter_list_member_remove#Removes a user from a Twitter List. The response is_member field will be false if removal was successful or the user was not a member. The updated list of members is not returned.2 params
Removes a user from a Twitter List. The response is_member field will be false if removal was successful or the user was not a member. The updated list of members is not returned.
idstringrequiredTwitter List IDuser_idstringrequiredID of the user to remove from the listtwitter_list_members_get#Fetches members of a specific Twitter List, identified by its unique ID.5 params
Fetches members of a specific Twitter List, identified by its unique ID.
idstringrequiredTwitter List IDexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-100)pagination_tokenstringoptionalPagination token for next pageuser_fieldsstringoptionalComma-separated user fieldstwitter_list_pin#Pins a specified List to the authenticated user's profile. The List must exist, the user must have access rights, and the pin limit (typically 5 Lists) must not be exceeded.2 params
Pins a specified List to the authenticated user's profile. The List must exist, the user must have access rights, and the pin limit (typically 5 Lists) must not be exceeded.
idstringrequiredAuthenticated user's Twitter IDlist_idstringrequiredID of the list to pintwitter_list_timeline_get#Fetches the most recent Tweets posted by members of a specified Twitter List.6 params
Fetches the most recent Tweets posted by members of a specified Twitter List.
idstringrequiredTwitter List IDexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-100)pagination_tokenstringoptionalPagination token for next pagetweet_fieldsstringoptionalComma-separated tweet fieldsuser_fieldsstringoptionalComma-separated user fieldstwitter_list_unfollow#Enables a user to unfollow a specific Twitter List, which removes its tweets from their timeline and stops related notifications. Reports following: false on success, even if the user was not initially following the list.2 params
Enables a user to unfollow a specific Twitter List, which removes its tweets from their timeline and stops related notifications. Reports following: false on success, even if the user was not initially following the list.
idstringrequiredAuthenticated user's Twitter IDlist_idstringrequiredID of the list to unfollowtwitter_list_unpin#Unpins a List from the authenticated user's profile. The user ID is automatically retrieved if not provided.2 params
Unpins a List from the authenticated user's profile. The user ID is automatically retrieved if not provided.
idstringrequiredAuthenticated user's Twitter IDlist_idstringrequiredID of the list to unpintwitter_list_update#Updates an existing Twitter List's name, description, or privacy status. Requires the List ID and at least one mutable property.4 params
Updates an existing Twitter List's name, description, or privacy status. Requires the List ID and at least one mutable property.
idstringrequiredTwitter List ID to updatedescriptionstringoptionalNew descriptionnamestringoptionalNew name for the listprivatebooleanoptionalSet to true to make private, false for publictwitter_media_upload#Uploads media (images only) to X/Twitter using the v2 API. Only supports images (tweet_image, dm_image) and subtitle files. For GIFs, videos, or any file larger than ~5 MB, use twitter_media_upload_large instead.3 params
Uploads media (images only) to X/Twitter using the v2 API. Only supports images (tweet_image, dm_image) and subtitle files. For GIFs, videos, or any file larger than ~5 MB, use twitter_media_upload_large instead.
mediastringrequiredBase64-encoded image datamedia_typestringrequiredMIME type, e.g. image/jpeg or image/pngmedia_categorystringoptionalMedia category for use contexttwitter_media_upload_append#Appends a data chunk to an ongoing media upload session on X/Twitter. Use during chunked media uploads to append each segment of media data in sequence.3 params
Appends a data chunk to an ongoing media upload session on X/Twitter. Use during chunked media uploads to append each segment of media data in sequence.
media_datastringrequiredBase64-encoded chunk datamedia_idstringrequiredMedia ID from the INIT stepsegment_indexintegerrequiredZero-based index of the chunk segmenttwitter_media_upload_base64#Uploads media to X/Twitter using base64-encoded data. Use when you have media content as a base64 string. Only supports images and subtitle files. For videos or GIFs, use twitter_media_upload_large.3 params
Uploads media to X/Twitter using base64-encoded data. Use when you have media content as a base64 string. Only supports images and subtitle files. For videos or GIFs, use twitter_media_upload_large.
media_datastringrequiredBase64-encoded media datamedia_typestringrequiredMIME type, e.g. image/jpegmedia_categorystringoptionalMedia category for use contexttwitter_media_upload_init#Initializes a media upload session for X/Twitter. Returns a media_id for subsequent APPEND and FINALIZE commands. Required for uploading large files or when using the chunked upload workflow.4 params
Initializes a media upload session for X/Twitter. Returns a media_id for subsequent APPEND and FINALIZE commands. Required for uploading large files or when using the chunked upload workflow.
media_typestringrequiredMIME type, e.g. video/mp4 or image/giftotal_bytesintegerrequiredTotal size of the media file in bytesadditional_ownersstringoptionalComma-separated user IDs to also own the mediamedia_categorystringoptionalMedia category for use contexttwitter_media_upload_large#Uploads media files to X/Twitter. Automatically uses chunked upload for GIFs, videos, and images larger than 5 MB. Use for videos, GIFs, or any file larger than 5 MB.5 params
Uploads media files to X/Twitter. Automatically uses chunked upload for GIFs, videos, and images larger than 5 MB. Use for videos, GIFs, or any file larger than 5 MB.
media_datastringrequiredBase64-encoded media file datamedia_typestringrequiredMIME type, e.g. video/mp4 or image/giftotal_bytesintegerrequiredTotal size of the file in bytesadditional_ownersstringoptionalComma-separated user IDs to also own the mediamedia_categorystringoptionalMedia category for use contexttwitter_media_upload_status_get#Gets the status of a media upload for X/Twitter. Use to check the processing status of uploaded media, especially for videos and GIFs. Only needed if the FINALIZE command returned processing_info.1 param
Gets the status of a media upload for X/Twitter. Use to check the processing status of uploaded media, especially for videos and GIFs. Only needed if the FINALIZE command returned processing_info.
media_idstringrequiredMedia ID from the upload INIT steptwitter_muted_users_get#Returns user objects muted by the X user identified by the id path parameter.5 params
Returns user objects muted by the X user identified by the id path parameter.
idstringrequiredTwitter user IDexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-1000)pagination_tokenstringoptionalPagination token for next pageuser_fieldsstringoptionalComma-separated user fieldstwitter_openapi_spec_get#Fetches the OpenAPI specification (JSON) for Twitter's API v2. Used to programmatically understand the API's structure for developing client libraries or tools.0 params
Fetches the OpenAPI specification (JSON) for Twitter's API v2. Used to programmatically understand the API's structure for developing client libraries or tools.
twitter_post_analytics_get#Retrieves analytics data for specified Posts within a defined time range. Returns engagement metrics, impressions, and other analytics. Requires OAuth 2.0 with tweet.read and users.read scopes.3 params
Retrieves analytics data for specified Posts within a defined time range. Returns engagement metrics, impressions, and other analytics. Requires OAuth 2.0 with tweet.read and users.read scopes.
end_timestringrequiredISO 8601 end timestart_timestringrequiredISO 8601 start timetweet_idsstringrequiredComma-separated list of Tweet IDstwitter_post_create#Creates a Tweet on Twitter. The `text` field is required unless card_uri, media_media_ids, poll_options, or quote_tweet_id is provided. Supports media, polls, geo, and reply targeting.7 params
Creates a Tweet on Twitter. The `text` field is required unless card_uri, media_media_ids, poll_options, or quote_tweet_id is provided. Supports media, polls, geo, and reply targeting.
geo_place_idstringoptionalPlace ID for geo tagmedia_media_idsarrayoptionalMedia IDs to attachpoll_duration_minutesintegeroptionalDuration of poll in minutespoll_optionsarrayoptionalUp to 4 poll optionsquote_tweet_idstringoptionalID of the tweet to quotereply_in_reply_to_tweet_idstringoptionalID of the tweet to reply totextstringoptionalText content of the tweettwitter_post_delete#Irreversibly deletes a specific Tweet by its ID. The Tweet may persist in third-party caches after deletion.1 param
Irreversibly deletes a specific Tweet by its ID. The Tweet may persist in third-party caches after deletion.
idstringrequiredID of the Tweet to deletetwitter_post_like#Allows the authenticated user to like a specific, accessible Tweet. The authenticated user's ID is automatically determined from the OAuth token — you only need to provide the tweet_id.2 params
Allows the authenticated user to like a specific, accessible Tweet. The authenticated user's ID is automatically determined from the OAuth token — you only need to provide the tweet_id.
idstringrequiredAuthenticated user's Twitter IDtweet_idstringrequiredID of the Tweet to liketwitter_post_likers_get#Retrieves users who have liked the Post (Tweet) identified by the provided ID.5 params
Retrieves users who have liked the Post (Tweet) identified by the provided ID.
idstringrequiredTweet IDexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-100)pagination_tokenstringoptionalPagination token for next pageuser_fieldsstringoptionalComma-separated user fieldstwitter_post_lookup#Fetches comprehensive details for a single Tweet by its unique ID, provided the Tweet exists and is accessible.5 params
Fetches comprehensive details for a single Tweet by its unique ID, provided the Tweet exists and is accessible.
idstringrequiredTweet IDexpansionsstringoptionalComma-separated expansionsmedia_fieldsstringoptionalComma-separated media fieldstweet_fieldsstringoptionalComma-separated tweet fieldsuser_fieldsstringoptionalComma-separated user fieldstwitter_post_quotes_get#Retrieves Tweets that quote a specified Tweet. Requires a valid Tweet ID.5 params
Retrieves Tweets that quote a specified Tweet. Requires a valid Tweet ID.
idstringrequiredTweet IDexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-100)pagination_tokenstringoptionalPagination token for next pagetweet_fieldsstringoptionalComma-separated tweet fieldstwitter_post_retweet#Retweets a Tweet for the authenticated user. The user ID is automatically fetched from the authenticated session — you only need to provide the tweet_id.2 params
Retweets a Tweet for the authenticated user. The user ID is automatically fetched from the authenticated session — you only need to provide the tweet_id.
idstringrequiredAuthenticated user's Twitter IDtweet_idstringrequiredID of the Tweet to retweettwitter_post_retweeters_get#Retrieves users who publicly retweeted a specified public Post ID, excluding Quote Tweets and retweets from private accounts.5 params
Retrieves users who publicly retweeted a specified public Post ID, excluding Quote Tweets and retweets from private accounts.
idstringrequiredTweet IDexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-100)pagination_tokenstringoptionalPagination token for next pageuser_fieldsstringoptionalComma-separated user fieldstwitter_post_retweets_get#Retrieves Tweets that Retweeted a specified public or authenticated-user-accessible Tweet ID. Optionally customize the response with fields and expansions.5 params
Retrieves Tweets that Retweeted a specified public or authenticated-user-accessible Tweet ID. Optionally customize the response with fields and expansions.
idstringrequiredTweet IDexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-100)pagination_tokenstringoptionalPagination token for next pagetweet_fieldsstringoptionalComma-separated tweet fieldstwitter_post_unlike#Allows an authenticated user to remove their like from a specific post. The action is idempotent and completes successfully even if the post was not liked.2 params
Allows an authenticated user to remove their like from a specific post. The action is idempotent and completes successfully even if the post was not liked.
idstringrequiredAuthenticated user's Twitter IDtweet_idstringrequiredID of the Tweet to unliketwitter_post_unretweet#Removes a user's retweet of a specified Post, if the user had previously retweeted it.2 params
Removes a user's retweet of a specified Post, if the user had previously retweeted it.
idstringrequiredAuthenticated user's Twitter IDsource_tweet_idstringrequiredID of the Tweet to unretweettwitter_posts_lookup#Retrieves detailed information for one or more Posts (Tweets) identified by their unique IDs. Allows selection of specific fields and expansions.5 params
Retrieves detailed information for one or more Posts (Tweets) identified by their unique IDs. Allows selection of specific fields and expansions.
idsstringrequiredComma-separated list of Tweet IDs (up to 100)expansionsstringoptionalComma-separated expansionsmedia_fieldsstringoptionalComma-separated media fieldstweet_fieldsstringoptionalComma-separated tweet fieldsuser_fieldsstringoptionalComma-separated user fieldstwitter_recent_search#Searches Tweets from the last 7 days matching a query using X's search syntax. Ideal for real-time analysis, trend monitoring, or retrieving posts from specific users (e.g., from:username). Note: impression_count returns 0 for other users' tweets — use retweet_count, like_count, or quote_count for engagement filtering instead.11 params
Searches Tweets from the last 7 days matching a query using X's search syntax. Ideal for real-time analysis, trend monitoring, or retrieving posts from specific users (e.g., from:username). Note: impression_count returns 0 for other users' tweets — use retweet_count, like_count, or quote_count for engagement filtering instead.
querystringrequiredSearch query using X search syntax, e.g. from:username -is:retweetend_timestringoptionalISO 8601 end timeexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (10-100)media_fieldsstringoptionalComma-separated media fieldsnext_tokenstringoptionalNext page tokensince_idstringoptionalMinimum tweet IDstart_timestringoptionalISO 8601 start timetweet_fieldsstringoptionalComma-separated tweet fieldsuntil_idstringoptionalMaximum tweet IDuser_fieldsstringoptionalComma-separated user fieldstwitter_recent_tweet_counts#Retrieves the count of Tweets matching a specified search query within the last 7 days, aggregated by 'minute', 'hour', or 'day'.6 params
Retrieves the count of Tweets matching a specified search query within the last 7 days, aggregated by 'minute', 'hour', or 'day'.
querystringrequiredSearch queryend_timestringoptionalISO 8601 end timegranularitystringoptionalAggregation granularitysince_idstringoptionalMinimum tweet IDstart_timestringoptionalISO 8601 start timeuntil_idstringoptionalMaximum tweet IDtwitter_reply_visibility_set#Hides or unhides an existing reply Tweet. Allows the authenticated user to hide or unhide a reply to a conversation they own. You can only hide replies to posts you authored. Requires tweet.moderate.write OAuth scope.2 params
Hides or unhides an existing reply Tweet. Allows the authenticated user to hide or unhide a reply to a conversation they own. You can only hide replies to posts you authored. Requires tweet.moderate.write OAuth scope.
hiddenbooleanrequiredtrue to hide, false to unhidetweet_idstringrequiredID of the reply tweet to hide or unhidetwitter_space_get#Retrieves details for a Twitter Space by its ID, allowing for customization and expansion of related data.4 params
Retrieves details for a Twitter Space by its ID, allowing for customization and expansion of related data.
idstringrequiredTwitter Space IDexpansionsstringoptionalComma-separated expansionsspace_fieldsstringoptionalComma-separated space fieldsuser_fieldsstringoptionalComma-separated user fieldstwitter_space_posts_get#Retrieves Tweets that were shared/posted during a Twitter Space broadcast. Returns Tweets that participants explicitly shared during the Space session, NOT audio transcripts. Most Spaces have zero associated Tweets — empty results are normal.4 params
Retrieves Tweets that were shared/posted during a Twitter Space broadcast. Returns Tweets that participants explicitly shared during the Space session, NOT audio transcripts. Most Spaces have zero associated Tweets — empty results are normal.
idstringrequiredTwitter Space IDexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-100)tweet_fieldsstringoptionalComma-separated tweet fieldstwitter_space_ticket_buyers_get#Retrieves a list of users who purchased tickets for a specific, valid, and ticketed Twitter Space.3 params
Retrieves a list of users who purchased tickets for a specific, valid, and ticketed Twitter Space.
idstringrequiredTwitter Space IDexpansionsstringoptionalComma-separated expansionsuser_fieldsstringoptionalComma-separated user fieldstwitter_spaces_by_creator_get#Retrieves Twitter Spaces created by a list of specified User IDs, with options to customize returned data fields.4 params
Retrieves Twitter Spaces created by a list of specified User IDs, with options to customize returned data fields.
user_idsstringrequiredComma-separated list of user IDs to get spaces forexpansionsstringoptionalComma-separated expansionsspace_fieldsstringoptionalComma-separated space fieldsuser_fieldsstringoptionalComma-separated user fieldstwitter_spaces_get#Fetches detailed information for one or more Twitter Spaces (live, scheduled, or ended) by their unique IDs. At least one Space ID must be provided.4 params
Fetches detailed information for one or more Twitter Spaces (live, scheduled, or ended) by their unique IDs. At least one Space ID must be provided.
idsstringrequiredComma-separated list of Space IDsexpansionsstringoptionalComma-separated expansionsspace_fieldsstringoptionalComma-separated space fieldsuser_fieldsstringoptionalComma-separated user fieldstwitter_spaces_search#Searches for Twitter Spaces by a textual query. Optionally filter by state (live, scheduled, all) to discover audio conversations.5 params
Searches for Twitter Spaces by a textual query. Optionally filter by state (live, scheduled, all) to discover audio conversations.
querystringrequiredText to search for in Space titlesexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-100)space_fieldsstringoptionalComma-separated space fieldsstatestringoptionalFilter by space statetwitter_tweet_label_stream#Stream real-time Tweet label events (apply/remove). Requires Enterprise access and App-Only OAuth 2.0 auth. Returns PublicTweetNotice or PublicTweetUnviewable events. 403 errors indicate missing Enterprise access or wrong auth type.3 params
Stream real-time Tweet label events (apply/remove). Requires Enterprise access and App-Only OAuth 2.0 auth. Returns PublicTweetNotice or PublicTweetUnviewable events. 403 errors indicate missing Enterprise access or wrong auth type.
backfill_minutesintegeroptionalMinutes of backfill to stream on reconnect (0-5)expansionsstringoptionalComma-separated expansionstweet_fieldsstringoptionalComma-separated tweet fieldstwitter_tweet_usage_get#Fetches Tweet usage statistics for a Project (e.g., consumption, caps, daily breakdowns for Project and Client Apps) to monitor API limits. Data can be retrieved for 1 to 90 days.2 params
Fetches Tweet usage statistics for a Project (e.g., consumption, caps, daily breakdowns for Project and Client Apps) to monitor API limits. Data can be retrieved for 1 to 90 days.
daysintegeroptionalNumber of days to retrieve usage data for, default 7usage_fieldsstringoptionalComma-separated usage fields to includetwitter_user_follow#Allows an authenticated user to follow another user. Results in a pending request if the target user's tweets are protected.2 params
Allows an authenticated user to follow another user. Results in a pending request if the target user's tweets are protected.
idstringrequiredAuthenticated user's Twitter IDtarget_user_idstringrequiredID of the user to followtwitter_user_followed_lists_get#Returns metadata (not Tweets) for lists a specific Twitter user follows. Optionally includes expanded owner details.6 params
Returns metadata (not Tweets) for lists a specific Twitter user follows. Optionally includes expanded owner details.
idstringrequiredTwitter user IDexpansionsstringoptionalComma-separated expansionslist_fieldsstringoptionalComma-separated list fieldsmax_resultsintegeroptionalMax results per page (1-100)pagination_tokenstringoptionalPagination token for next pageuser_fieldsstringoptionalComma-separated user fieldstwitter_user_liked_tweets_get#Retrieves Tweets liked by a specified Twitter user, provided their liked tweets are public or accessible.6 params
Retrieves Tweets liked by a specified Twitter user, provided their liked tweets are public or accessible.
idstringrequiredTwitter user IDexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (5-100)pagination_tokenstringoptionalPagination token for next pagetweet_fieldsstringoptionalComma-separated tweet fieldsuser_fieldsstringoptionalComma-separated user fieldstwitter_user_list_memberships_get#Retrieves all Twitter Lists a specified user is a member of, including public Lists and private Lists the authenticated user is authorized to view.6 params
Retrieves all Twitter Lists a specified user is a member of, including public Lists and private Lists the authenticated user is authorized to view.
idstringrequiredTwitter user IDexpansionsstringoptionalComma-separated expansionslist_fieldsstringoptionalComma-separated list fieldsmax_resultsintegeroptionalMax results per page (1-100)pagination_tokenstringoptionalPagination token for next pageuser_fieldsstringoptionalComma-separated user fieldstwitter_user_lookup#Retrieves detailed public information for a Twitter user by their ID. Optionally expand related data (e.g., pinned tweets) and specify particular user or tweet fields to return.4 params
Retrieves detailed public information for a Twitter user by their ID. Optionally expand related data (e.g., pinned tweets) and specify particular user or tweet fields to return.
idstringrequiredTwitter user IDexpansionsstringoptionalComma-separated expansionstweet_fieldsstringoptionalComma-separated tweet fieldsuser_fieldsstringoptionalComma-separated user fieldstwitter_user_lookup_by_username#Fetches public profile information for a valid and existing Twitter user by their username. Optionally expands related data like pinned Tweets. Results may be limited for protected profiles not followed by the authenticated user.4 params
Fetches public profile information for a valid and existing Twitter user by their username. Optionally expands related data like pinned Tweets. Results may be limited for protected profiles not followed by the authenticated user.
usernamestringrequiredTwitter username without the @ symbol, e.g. elonmuskexpansionsstringoptionalComma-separated expansionstweet_fieldsstringoptionalComma-separated tweet fieldsuser_fieldsstringoptionalComma-separated user fieldstwitter_user_me#Returns profile information for the currently authenticated X user. Use this to get the authenticated user's ID before calling endpoints that require it.3 params
Returns profile information for the currently authenticated X user. Use this to get the authenticated user's ID before calling endpoints that require it.
expansionsstringoptionalComma-separated expansionstweet_fieldsstringoptionalComma-separated tweet fieldsuser_fieldsstringoptionalComma-separated user fields to return, e.g. created_at,description,public_metricstwitter_user_mute#Mutes a target user on behalf of an authenticated user, preventing the target's Tweets and Retweets from appearing in the authenticated user's home timeline without notifying the target.2 params
Mutes a target user on behalf of an authenticated user, preventing the target's Tweets and Retweets from appearing in the authenticated user's home timeline without notifying the target.
idstringrequiredAuthenticated user's Twitter IDtarget_user_idstringrequiredID of the user to mutetwitter_user_owned_lists_get#Retrieves Lists created (owned) by a specific Twitter user, not Lists they follow or are subscribed to.6 params
Retrieves Lists created (owned) by a specific Twitter user, not Lists they follow or are subscribed to.
idstringrequiredTwitter user IDexpansionsstringoptionalComma-separated expansionslist_fieldsstringoptionalComma-separated list fieldsmax_resultsintegeroptionalMax results per page (1-100)pagination_tokenstringoptionalPagination token for next pageuser_fieldsstringoptionalComma-separated user fieldstwitter_user_pinned_lists_get#Retrieves the Lists a specific, existing Twitter user has pinned to their profile to highlight them.4 params
Retrieves the Lists a specific, existing Twitter user has pinned to their profile to highlight them.
idstringrequiredTwitter user IDexpansionsstringoptionalComma-separated expansionslist_fieldsstringoptionalComma-separated list fieldsuser_fieldsstringoptionalComma-separated user fieldstwitter_user_timeline_get#Retrieves the home timeline (reverse chronological feed) for the authenticated Twitter user. Returns tweets from accounts the user follows and the user's own tweets. CRITICAL: The id parameter MUST be the authenticated user's own numeric Twitter user ID. Use twitter_user_me to get your ID first. Cannot fetch another user's home timeline.7 params
Retrieves the home timeline (reverse chronological feed) for the authenticated Twitter user. Returns tweets from accounts the user follows and the user's own tweets. CRITICAL: The id parameter MUST be the authenticated user's own numeric Twitter user ID. Use twitter_user_me to get your ID first. Cannot fetch another user's home timeline.
idstringrequiredAuthenticated user's own numeric Twitter ID — must be your own IDexcludestringoptionalComma-separated types to exclude: retweets,repliesexpansionsstringoptionalComma-separated expansionsmax_resultsintegeroptionalMax results per page (1-100)pagination_tokenstringoptionalPagination token for next pagetweet_fieldsstringoptionalComma-separated tweet fieldsuser_fieldsstringoptionalComma-separated user fieldstwitter_user_unfollow#Allows the authenticated user to unfollow an existing Twitter user, which removes the follow relationship. The source user ID is automatically determined from the authenticated session.2 params
Allows the authenticated user to unfollow an existing Twitter user, which removes the follow relationship. The source user ID is automatically determined from the authenticated session.
idstringrequiredAuthenticated user's Twitter IDtarget_user_idstringrequiredID of the user to unfollowtwitter_user_unmute#Unmutes a target user for the authenticated user, allowing them to see Tweets and notifications from the target user again. The source_user_id is automatically populated from the authenticated user's credentials.2 params
Unmutes a target user for the authenticated user, allowing them to see Tweets and notifications from the target user again. The source_user_id is automatically populated from the authenticated user's credentials.
idstringrequiredAuthenticated user's Twitter IDtarget_user_idstringrequiredID of the user to unmutetwitter_users_lookup#Retrieves detailed information for specified X (formerly Twitter) user IDs. Optionally customize returned fields and expand related entities like pinned tweets.4 params
Retrieves detailed information for specified X (formerly Twitter) user IDs. Optionally customize returned fields and expand related entities like pinned tweets.
idsstringrequiredComma-separated list of Twitter user IDs (up to 100)expansionsstringoptionalComma-separated expansionstweet_fieldsstringoptionalComma-separated tweet fieldsuser_fieldsstringoptionalComma-separated user fieldstwitter_users_lookup_by_username#Retrieves detailed information for 1 to 100 Twitter users by their usernames (each 1-15 alphanumeric characters/underscores). Allows customizable user/tweet fields and expansion of related data like pinned tweets.4 params
Retrieves detailed information for 1 to 100 Twitter users by their usernames (each 1-15 alphanumeric characters/underscores). Allows customizable user/tweet fields and expansion of related data like pinned tweets.
usernamesstringrequiredComma-separated list of Twitter usernames without @ symbols (up to 100)expansionsstringoptionalComma-separated expansionstweet_fieldsstringoptionalComma-separated tweet fieldsuser_fieldsstringoptionalComma-separated user fields