POST
/
2
/
media
/
upload
/
initialize
curl --request POST \
  --url https://api.twitter.com/2/media/upload/initialize \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "additional_owners": [
    "2244994945"
  ],
  "media_category": "tweet_video",
  "media_type": "video/mp4",
  "total_bytes": 268435456
}'
{
  "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

The access token received from the authorization server in the OAuth 2.0 flow.

Body

application/json
additional_owners
string[]

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.

media_category
enum<string>

A string enum value which identifies a media use-case. This identifier is used to enforce use-case specific constraints (e.g. file size, video duration) and enable advanced features.

Available options:
amplify_video,
tweet_gif,
tweet_image,
tweet_video,
dm_gif,
dm_image,
dm_video,
subtitles
Example:

"tweet_video"

media_type
enum<string>

The type of media.

Available options:
video/mp4,
video/webm,
video/mp2t,
text/srt,
text/vtt,
image/jpeg,
image/gif,
image/bmp,
image/png,
image/webp,
image/pjpeg,
image/tiff,
model/gltf-binary,
model/vnd.usdz+zip
Example:

"video/mp4"

total_bytes
integer

The total size of the media upload in bytes.

Required range: 0 <= x <= 536870912

Response

200
application/json
The request has succeeded.

A response from getting a media upload request status.

data
object
errors
object[]

An HTTP Problem Details object, as defined in IETF RFC 7807 (https://tools.ietf.org/html/rfc7807).