Skip to main content
POST
/
2
/
media
/
upload
Upload media
curl --request POST \
  --url https://api.x.com/2/media/upload \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "additional_owners": [
    "2244994945"
  ],
  "media_category": "tweet_image",
  "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": [
    {
      "detail": "<string>",
      "status": 123,
      "title": "<string>",
      "type": "<string>"
    }
  ]
}

Authorizations

Authorization
string
header
required

Body

media
required
media_category
enum<string>
required
Available options:
tweet_image,
dm_image,
subtitles
Example:
additional_owners
string[]
media_type
enum<string>
Available options:
text/srt,
text/vtt,
image/jpeg,
image/bmp,
image/png,
image/webp,
image/pjpeg,
image/tiff
Example:
shared
boolean
default:false

Response

data
object
errors
object[]
Minimum length: 1