Uploads a media file for use in posts or other content.
curl --request POST \
--url https://api.x.com/2/media/upload \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"media": "<string>",
"media_category": "tweet_image",
"additional_owners": [
"2244994945"
],
"media_type": "image/png",
"shared": false
}
'{
"data": {
"expires_after_secs": 123,
"id": "1146654567674912769",
"media_key": "<string>",
"processing_info": {
"check_after_secs": 123,
"progress_percent": 123,
"state": "succeeded"
},
"size": 123
},
"errors": [
{
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"status": 123
}
]
}Documentation Index
Fetch the complete documentation index at: https://docs.x.com/llms.txt
Use this file to discover all available pages before exploring further.
The access token received from the authorization server in the OAuth 2.0 flow.
The file to upload.
A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size) and enable advanced features.
tweet_image, dm_image, subtitles "tweet_image"
Unique identifier of this User. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.
^[0-9]{1,19}$The type of image or subtitle.
text/srt, text/vtt, image/jpeg, image/bmp, image/png, image/webp, image/pjpeg, image/tiff "image/png"
Whether this media is shared or not.
The request has succeeded.
A response from getting a media upload request status.
Show child attributes
1An HTTP Problem Details object, as defined in IETF RFC 7807 (https://tools.ietf.org/html/rfc7807).
Show child attributes
curl --request POST \
--url https://api.x.com/2/media/upload \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"media": "<string>",
"media_category": "tweet_image",
"additional_owners": [
"2244994945"
],
"media_type": "image/png",
"shared": false
}
'{
"data": {
"expires_after_secs": 123,
"id": "1146654567674912769",
"media_key": "<string>",
"processing_info": {
"check_after_secs": 123,
"progress_percent": 123,
"state": "succeeded"
},
"size": 123
},
"errors": [
{
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"status": 123
}
]
}