Upload Media
Changed onUploads a media file for use in posts, direct messages, or ads. The response carries the media identifiers, including the media_key used to reference the asset in later calls. The media field carries the file content base64-encoded in JSON bodies (raw bytes in multipart bodies); media_category is tweet_image, tweet_video, or tweet_gif for posts and ads, dm_image/dm_video/dm_gif for DMs, or subtitles. For X Ads accounts, register the returned media_key via create_media_library_item to add it to the account's media library and use it in campaigns.
Request
- Base URLhttps://api.x.com
- URLhttps://api.x.com/2/media/upload
- Auth
- OAuth 2Authorization code: https://api.x.com/2/oauth2/authorizeToken URL: https://api.x.com/2/oauth2/token scopes: media.write
- or HTTP oauth
Request body
Response
The request has succeeded.
Changes
- breaking
added to the response body
oneOflist for the response status - breaking
added to the
/response propertyoneOflist for the response status - info
added
https://api.x.com/2/problems/dm-bad-attachmenthttps://api.x.com/2/problems/dm-bad-ctahttps://api.x.com/2/problems/dm-bad-custom-profilehttps://api.x.com/2/problems/dm-bad-mediahttps://api.x.com/2/problems/dm-bad-quick-replyhttps://api.x.com/2/problems/dm-bad-urlhttps://api.x.com/2/problems/dm-conversation-name-too-longhttps://api.x.com/2/problems/dm-conversation-not-foundhttps://api.x.com/2/problems/dm-duplicatehttps://api.x.com/2/problems/dm-inactive-devicehttps://api.x.com/2/problems/dm-not-deliveredhttps://api.x.com/2/problems/dm-not-foundhttps://api.x.com/2/problems/dm-not-ownerhttps://api.x.com/2/problems/dm-participant-not-addedhttps://api.x.com/2/problems/dm-participant-not-foundhttps://api.x.com/2/problems/dm-participant-restrictedhttps://api.x.com/2/problems/dm-participant-unavailablehttps://api.x.com/2/problems/dm-rate-limitedhttps://api.x.com/2/problems/dm-recipient-blocks-senderhttps://api.x.com/2/problems/dm-recipient-cannot-receivehttps://api.x.com/2/problems/dm-recipient-encrypted-unavailablehttps://api.x.com/2/problems/dm-recipient-not-acceptinghttps://api.x.com/2/problems/dm-recipient-not-foundhttps://api.x.com/2/problems/dm-recipient-restricts-groupshttps://api.x.com/2/problems/dm-recipient-unavailablehttps://api.x.com/2/problems/dm-request-in-progresshttps://api.x.com/2/problems/dm-safety-limitedhttps://api.x.com/2/problems/dm-safety-rejectedhttps://api.x.com/2/problems/dm-sender-blocks-recipienthttps://api.x.com/2/problems/dm-sender-declined-dmshttps://api.x.com/2/problems/dm-sender-dms-closedhttps://api.x.com/2/problems/dm-sender-encrypted-unavailablehttps://api.x.com/2/problems/dm-sender-not-in-conversationhttps://api.x.com/2/problems/dm-sender-not-permittedhttps://api.x.com/2/problems/dm-sender-not-verifiedhttps://api.x.com/2/problems/dm-sender-phone-requiredhttps://api.x.com/2/problems/dm-sender-read-onlyhttps://api.x.com/2/problems/dm-sender-unavailablehttps://api.x.com/2/problems/dm-text-emptyhttps://api.x.com/2/problems/dm-text-too-longhttps://api.x.com/2/problems/dm-too-few-participantshttps://api.x.com/2/problems/dm-too-many-participantshttps://api.x.com/2/problems/dm-unsupported-messagemapping keys to the response discriminator for the response status - info
added
https://api.x.com/2/problems/dm-bad-attachmenthttps://api.x.com/2/problems/dm-bad-ctahttps://api.x.com/2/problems/dm-bad-custom-profilehttps://api.x.com/2/problems/dm-bad-mediahttps://api.x.com/2/problems/dm-bad-quick-replyhttps://api.x.com/2/problems/dm-bad-urlhttps://api.x.com/2/problems/dm-conversation-name-too-longhttps://api.x.com/2/problems/dm-conversation-not-foundhttps://api.x.com/2/problems/dm-duplicatehttps://api.x.com/2/problems/dm-inactive-devicehttps://api.x.com/2/problems/dm-not-deliveredhttps://api.x.com/2/problems/dm-not-foundhttps://api.x.com/2/problems/dm-not-ownerhttps://api.x.com/2/problems/dm-participant-not-addedhttps://api.x.com/2/problems/dm-participant-not-foundhttps://api.x.com/2/problems/dm-participant-restrictedhttps://api.x.com/2/problems/dm-participant-unavailablehttps://api.x.com/2/problems/dm-rate-limitedhttps://api.x.com/2/problems/dm-recipient-blocks-senderhttps://api.x.com/2/problems/dm-recipient-cannot-receivehttps://api.x.com/2/problems/dm-recipient-encrypted-unavailablehttps://api.x.com/2/problems/dm-recipient-not-acceptinghttps://api.x.com/2/problems/dm-recipient-not-foundhttps://api.x.com/2/problems/dm-recipient-restricts-groupshttps://api.x.com/2/problems/dm-recipient-unavailablehttps://api.x.com/2/problems/dm-request-in-progresshttps://api.x.com/2/problems/dm-safety-limitedhttps://api.x.com/2/problems/dm-safety-rejectedhttps://api.x.com/2/problems/dm-sender-blocks-recipienthttps://api.x.com/2/problems/dm-sender-declined-dmshttps://api.x.com/2/problems/dm-sender-dms-closedhttps://api.x.com/2/problems/dm-sender-encrypted-unavailablehttps://api.x.com/2/problems/dm-sender-not-in-conversationhttps://api.x.com/2/problems/dm-sender-not-permittedhttps://api.x.com/2/problems/dm-sender-not-verifiedhttps://api.x.com/2/problems/dm-sender-phone-requiredhttps://api.x.com/2/problems/dm-sender-read-onlyhttps://api.x.com/2/problems/dm-sender-unavailablehttps://api.x.com/2/problems/dm-text-emptyhttps://api.x.com/2/problems/dm-text-too-longhttps://api.x.com/2/problems/dm-too-few-participantshttps://api.x.com/2/problems/dm-too-many-participantshttps://api.x.com/2/problems/dm-unsupported-messagediscriminator mapping keys to the/response property for the response status
- breaking
- breaking
added to the response body
oneOflist for the response status - breaking
added to the
/response propertyoneOflist for the response status - info
added
https://api.twitter.com/2/problems/duplicate-ruleshttps://api.twitter.com/2/problems/invalid-ruleshttps://api.x.com/2/problems/recipient-not-messageablemapping keys to the response discriminator for the response status - info
added
https://api.twitter.com/2/problems/duplicate-ruleshttps://api.twitter.com/2/problems/invalid-ruleshttps://api.x.com/2/problems/recipient-not-messageablediscriminator mapping keys to the/response property for the response status
- breaking