Skip to main content
This guide walks you through uploading videos and large media files using the chunked upload workflow. For video or large media uploads, you must:
  1. INIT — Initialize the upload and get a media_id
  2. APPEND — Upload each chunk of the file
  3. FINALIZE — Complete the upload
  4. STATUS — (If needed) Wait for processing to complete
See this sample code for a complete Python example.

Step 1: Initialize upload (INIT)

Start the upload session to get a media_id:
cURL
Response:

Step 2: Upload chunks (APPEND)

Upload each chunk of the file. For example, split a 3 MB file into 3 chunks:
cURL
Chunking advantages:
  • Improved reliability on slow networks
  • Uploads can be paused and resumed
  • Failed chunks can be retried individually

Step 3: Finalize upload (FINALIZE)

Complete the upload after all chunks are sent:
cURL
Response:
If processing_info is returned, proceed to Step 4 to wait for processing. If not, the media is ready to use.

Step 4: Check status (STATUS)

If processing_info was returned, poll for processing completion:
cURL
Processing states: pendingin_progresssucceeded or failed

Step 5: Create Post with media

Once processing is complete, create a Post with the media:
cURL

Media categories


Next steps

Best practices

File constraints and requirements

Create Posts

Post with media

API Reference

Full endpoint documentation