A media object represents a single photo, video or animated GIF. Media objects are used by many endpoints within the Twitter API, and may be included in Tweets, Direct Messages, user profiles, advertising creatives and elsewhere. Each media object may have multiple display or playback variants, with different resolutions or formats.

Media types & size restrictions

Size restrictions for uploading via API 

  • Image 5MB
  • GIF 15MB
  • Video 15MB


Objects such as Tweets, Direct Messages, user profile pictures, hosted Ads cards, etc. can contain one or more media objects. These top-level objects are collectively known as entities. The relevant entity creation API (e.g. POST statuses/update) can be passed one or more media objects using a unique media_id.

An entity which contains media object(s) can be created by following these steps:

  1. Upload the media file(s) using either the recommended chunked upload (images/GIF/video), or the older simple upload (images only).
  2. Receive a media_id from step 1. This step may be repeated multiple times with different media if the entity allows multiple media_id parameters to be passed in.
  3. Create the entity by calling the appropriate endpoint, including the media_id and other required parameters. For example, attach a media_id to a Tweet using the POST statuses/update endpoint.


Please refer to the Media Object in the Tweet data dictionary.

Was this document helpful?

Thank you

Thank you for the feedback. We’re really glad we could help!

Thank you for the feedback. How could we improve this document?

Thank you for the feedback. Your comments will help us improve our documents in the future.