POST media/upload (FINALIZE)
Overview¶
The FINALIZE
command should be called after the entire media file is uploaded using APPEND
commands. If and (only if) the response of the FINALIZE
command contains a processing_info
field, it may also be necessary to use a STATUS command and wait for it to return success before proceeding to Tweet creation.
Request¶
Requests should be either multipart/form-data
or application/x-www-form-urlencoded
POST formats.
Note: The domain for this endpoint is upload.twitter.com
Response¶
The response provides a media identifier in the media_id
(64-bit integer) and media_id_string
(string) fields. Use the media_id_string
provided in the API response from JavaScript and other languages that cannot accurately represent a long integer.
The returned mediaId is only valid for expires_after_secs
seconds. Any attempt to use mediaId after this time period in other API calls will result in a Bad Request (HTTP 4xx) response.
If the response contains a processing_info
field, then use the STATUS
command to poll for the status of the FINALIZE
operation. The async finalize approach is used for cases where media processing requires more time. In future, all video and animated GIF processing will only be supported using async finalize. This behavior is enabled if an upload session was initialized with a media_category parameter, and when then media type is either video or animated GIF.
If a processing_info
field is NOT returned in the response, then media_id
is ready for use in other API endpoints.
Resource Information¶
Response formats | JSON |
Requires authentication? | Yes (user context only) |
Rate limited? | Yes |
Parameters¶
Name | Required | Description | Default Value | Example |
command | required | Must be set to FINALIZE (case sensitive). |
||
media_id | required | The media_id returned from the INIT command. |
Example request¶
POST https://upload.twitter.com/1.1/media/upload.json?command=FINALIZE&media_id=710511363345354753
Example Result¶
// Example of sync FINALIZE response
{
"media_id": 710511363345354753,
"media_id_string": "710511363345354753",
"size": 11065,
"expires_after_secs": 86400,
"video": {
"video_type": "video/mp4"
}
}
// Example of async FINALIZE response which requires further STATUS command call(s)
{
"media_id": 710511363345354753,
"media_id_string": "710511363345354753",
"expires_after_secs": 86400,
"size": 10240,
"processing_info": {
"state": "pending",
"check_after_secs": 5 // check after 5 seconds for update using STATUS command
}
}