How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

X Media API

Endpoints related to retrieving and uploading Media — 11 operation(s) in the X-published contract.

X Media API is one of 23 APIs that X publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Media. The published artifact set on APIs.io includes an OpenAPI specification and API documentation.

This API exposes 11 operations across 9 paths, and defines 67 schemas. It is described by OpenAPI 3.2.0, at version 2.168.

Requests are made against a single base URL, https://api.x.com.

11 operations 9 paths 67 schemas 1 DELETE4 GET6 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
2.168
Base URL
https://api.x.com
Authentication
HTTP Bearer, OAuth 2.0, HTTP Oauth
Terms of Service
Resource Areas
1

Authentication & Security 3

X Media API declares 3 security schemes for authenticating requests. It accepts HTTP bearer tokens (BearerToken). It supports OAuth 2.0 (OAuth2UserToken) using the authorizationCode flow, exposing 26 scopes. It uses HTTP oauth authentication (UserToken).

Paths & Operations 11

Across 9 paths, the API surfaces 11 operations — 1 DELETE, 4 GET, 6 POST. Each is listed below with its method, path, parameters, and response codes.

Media 11

Endpoints related to retrieving and uploading Media

GET
/2/media
Get Media by media keys
getMediaByMediaKeys 2 params → 200default
GET
/2/media/analytics
Get Media analytics
getMediaAnalytics 5 params → 200default
POST
/2/media/metadata
Create Media metadata
createMediaMetadata body → 200default
DELETE
/2/media/subtitles
Delete Media subtitles
deleteMediaSubtitles body → 200default
POST
/2/media/subtitles
Create Media subtitles
createMediaSubtitles body → 200default
GET
/2/media/upload
Get Media upload status
getMediaUploadStatus 2 params → 200default
POST
/2/media/upload
Upload a media file and get back its identifiers, including a mediakey. The media field carries the file content base64-encoded in JSON bodies (raw bytes in multipart bodies); mediacategory is tweeti…
mediaUpload body → 200default
POST
/2/media/upload/initialize
Initialize media upload
initializeMediaUpload body → 200default
POST
/2/media/upload/{id}/append
Append Media Upload
appendMediaUpload 1 param body → 200default
POST
/2/media/upload/{id}/finalize
Finalize Media upload
finalizeMediaUpload 1 param → 200default
GET
/2/media/{media_key}
Get Media by media key
getMediaByMediaKey 2 params → 200default

Schemas 67

The contract defines 67 schemas that model the data the API accepts and returns. The most detailed are CreateMediaMetadataMetadata (13 properties), MediaAnalytics (13 properties), Media (13 properties), NotAuthorizedForFieldProblem (10 properties). Each schema is shown below with its type and property counts.

CreateMediaMetadataMetadataPreviewImage
object
1 property 1 required
MediaUploadRequest
object
3 properties 2 required
CreateMediaMetadataMetadataUploadSource
object
1 property 1 required
Media
object
13 properties
FinalizeMediaUploadResponseDataProcessingInfo
object
3 properties
MediaAnalytics
object
13 properties
AppendMediaUploadResponseData
object
1 property
CreateMediaSubtitlesResponseData
object
3 properties
InitializeMediaUploadResponseData
object
3 properties 1 required
MediaId
string
Unique identifier of a Media
GetMediaByMediaKeyResponse
object
2 properties
FieldHydrationFailureProblem
object
7 properties 4 required
MediaUploadResponseData
object
7 properties 1 required
CreateMediaSubtitlesSubtitles
object
3 properties
NotAuthorizedForResourceProblem
object
9 properties 4 required
MediaUploadResponseDataVideo
object
1 property
GetMediaUploadStatusResponse
object
2 properties
MediaVariants
array
Each media object may have multiple display or playback variants, with different resolutions or formats.
FinalizeMediaUploadResponse
object
2 properties
CreateMediaMetadataResponseData
object
2 properties 1 required
MediaNonPublicMetrics
object
Nonpublic engagement metrics for the media at the time of the request.
5 properties
GetMediaAnalyticsResponse
object
2 properties
CreateMediaMetadataRequest
object
2 properties 1 required
CreateMediaMetadataMetadataStickerInfoStickers
object
NotAuthorizedForFieldProblem
object
10 properties 4 required
FinalizeMediaUploadResponseDataImage
object
3 properties
MediaUploadResponseDataProcessingInfo
object
3 properties
CreateMediaMetadataMetadataStickerInfo
object
1 property 1 required
MediaPromotedMetrics
object
Promoted nonpublic engagement metrics for the media at the time of the request.
6 properties
CreateMediaSubtitlesResponse
object
2 properties
Error
object
2 properties 2 required
InvalidRequestProblem
object
6 properties 3 required
DeleteMediaSubtitlesRequest
object
3 properties 3 required
ResourceUnavailableProblem
object
6 properties 4 required
AppendMediaUploadResponse
object
2 properties
InitializeMediaUploadResponse
object
2 properties
DisallowedResourceProblem
object
7 properties 3 required
FinalizeMediaUploadResponseData
object
7 properties 1 required
CreateMediaMetadataMetadata
object
13 properties
CreateMediaMetadataMetadataContentExpiration
object
1 property 1 required
CreateMediaMetadataMetadataFoundMediaOrigin
object
2 properties 2 required
GetMediaUploadStatusResponseData
object
7 properties 1 required
CreateMediaMetadataMetadataAllowDownloadStatus
object
1 property
CreateMediaMetadataMetadataAltText
object
1 property 1 required
GetMediaByMediaKeysResponse
object
2 properties
GetMediaUploadStatusResponseDataImage
object
3 properties
InternalErrorProblem
object
4 properties 3 required
GetMediaUploadStatusResponseDataVideo
object
1 property
CreateMediaMetadataMetadataManagementInfo
object
1 property 1 required
AppendMediaUploadRequest
object
2 properties 2 required
CreateMediaMetadataMetadataSharedInfo
object
1 property 1 required
FinalizeMediaUploadResponseDataVideo
object
1 property
CreateMediaMetadataResponse
object
2 properties
InitializeMediaUploadRequest
object
5 properties
DeleteMediaSubtitlesResponseData
object
1 property 1 required
MediaUploadResponse
object
2 properties
Problem
MediaUploadResponseDataImage
object
3 properties
MediaOrganicMetrics
object
Organic nonpublic engagement metrics for the media at the time of the request.
6 properties
ResourceNotFoundProblem
object
8 properties 4 required
CreateMediaMetadataMetadataDomainRestrictions
object
1 property 1 required
CreateMediaSubtitlesRequest
object
3 properties
MediaPublicMetrics
object
Public engagement metrics for the media at the time of the request.
1 property 1 required
FieldUnauthorizedProblem
object
7 properties 4 required
GetMediaUploadStatusResponseDataProcessingInfo
object
3 properties
MediaAnalyticsTimestampedMetrics
array
Time-bucketed video metrics for the media, one entry per granularity bucket.
DeleteMediaSubtitlesResponse
object
2 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

x-media-api-openapi.yml Raw ↑

Other APIs X publishes across the network.

X Account Activity API
X Account API
X Activity API
X Articles API
X Bots API
X Broadcasts API
X Chat API
X Communities API
X Community Notes API
X Compliance API
X Connections API
X Direct Messages API
Where this information came from

This is an independent, third-party profile of X Media API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.