X user media
Read one cursor-paginated page of image or video Tweets from a public account.
/v1/x/users/mediaChinese name: X 用户媒体 Tweet · 用户媒体帖子 · 列表 分页读取一个公开账号的图片或视频 Tweet。
Terminology: Tweet — 帖子x.users.media@v1
Price per call
¥0.06/ call
Complete and empty results are charged; partial results and failures are not.
Checking live statusTry it
This API is coming soon
We are running launch checks. Once live, you can try it right here at the price shown above; nothing is charged before then. You can already read the parameters and response example.
Available now on the same platform
- X user profile
- X user posts
- X user followers
- X user following
- X user mentions
- X batch user detail
- X verified followers
- X bulk follower IDs
- X community members
- X post search
- X post detail
- X post replies
- X post quotes
- X user search
- X retweeters
- X trends
- X user replies
- X thread context
- X article detail
- X list tweets
- X community detail
- X community tweets
Sign in and run one real call. The result and charge appear right here.
Security check
Loading the security check…
Checking live execution status…
Execution result
// Result
Request parameters
usernamestringrequiredpattern: "^@?[A-Za-z0-9_]+$" · minLength: 1 · maxLength: 64
Example:
"OpenAI"cursorstringoptionalminLength: 1
Request JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"username": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^@?[A-Za-z0-9_]+$"
},
"cursor": {
"type": "string",
"minLength": 1
}
},
"required": [
"username"
],
"additionalProperties": false
}Code samples
Install the SDK with npm i @dataxapi/sdk or pip install dataxapi, and put your API key in the DATAXAPI_API_KEY environment variable.
curl -X POST https://api.dataxapi.com/v1/x/users/media \
-H "Authorization: Bearer $DATAXAPI_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"username":"OpenAI"}'import { ExactApiClient } from "@dataxapi/sdk";
const client = new ExactApiClient({
baseUrl: "https://api.dataxapi.com",
apiKey: process.env.DATAXAPI_API_KEY,
});
const result = await client.call("x_users_media_v1", {
"username": "OpenAI"
});
console.log(result.data);import os
from dataxapi import ExactApiClient
client = ExactApiClient("https://api.dataxapi.com", os.environ["DATAXAPI_API_KEY"])
result = client.call("x_users_media_v1", {
"username": "OpenAI",
})
print(result["data"])[mcp_servers.dataxapi]
url = "https://api.dataxapi.com/mcp"
bearer_token_env_var = "DATAXAPI_API_KEY"Response example
{
"code": 200,
"request_id": "req_example_x_users_media",
"message": "success",
"data": {
"items": [
{
"id": "1900000000000000001",
"text": "Public fixture Tweet",
"created_at": "Wed Aug 26 12:00:00 +0000 2026",
"language": "en",
"conversation_id": "1900000000000000001",
"sensitive": false,
"status": "active",
"author": {
"id": "4398626122",
"username": "OpenAI",
"name": "OpenAI",
"avatar_url": "https://pbs.twimg.com/profile_images/fixture.jpg",
"verified": true,
"verified_type": null,
"followers_count": null
},
"metrics": {
"replies": 1,
"reposts": 2,
"quotes": 0,
"likes": 10,
"bookmarks": 1,
"views": "100"
},
"media": {
"photos": [],
"videos": [
{
"id": "media-video-1",
"preview_url": "https://pbs.twimg.com/ext_tw_video_thumb/video.jpg",
"duration_ms": 12000,
"aspect_ratio": [
16,
9
],
"variants": [
{
"content_type": "video/mp4",
"url": "https://video.twimg.com/ext_tw_video/video.mp4"
}
]
}
]
}
}
]
},
"page": {
"next_cursor": "opaque_cursor_example"
},
"warnings": [],
"meta": {
"listing_id": "x.users.media",
"version": "v1",
"catalog_release_id": "catalog-production-2026-09-19.b069be57",
"price_book_version": "pricebook-production-2026-09-19.4487e352",
"result_status": "complete",
"charged_amount": "0.06",
"balance_after": "1.00",
"currency": "CNY"
}
}Response fields
codenumber- const: 200
request_idstringmessagestring- const: "success"
dataobjectpageobjectwarningsarraymetaobject
Response JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"code": {
"type": "number",
"const": 200
},
"request_id": {
"type": "string"
},
"message": {
"type": "string",
"const": "success"
},
"data": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"text": {
"type": "string"
},
"created_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"conversation_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"sensitive": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"author": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"username": {
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"avatar_url": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
]
},
"verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"verified_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"followers_count": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"username",
"name",
"avatar_url",
"verified",
"verified_type",
"followers_count"
],
"additionalProperties": false
},
"metrics": {
"type": "object",
"properties": {
"replies": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"reposts": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"quotes": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"likes": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"bookmarks": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"views": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"replies",
"reposts",
"quotes",
"likes",
"bookmarks",
"views"
],
"additionalProperties": false
},
"media": {
"type": "object",
"properties": {
"photos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
}
},
"required": [
"id",
"url"
],
"additionalProperties": false
}
},
"videos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"preview_url": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
]
},
"duration_ms": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"aspect_ratio": {
"anyOf": [
{
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
{
"type": "null"
}
]
},
"variants": {
"type": "array",
"items": {
"type": "object",
"properties": {
"content_type": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
}
},
"required": [
"content_type",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"preview_url",
"duration_ms",
"aspect_ratio",
"variants"
],
"additionalProperties": false
}
}
},
"required": [
"photos",
"videos"
],
"additionalProperties": false
}
},
"required": [
"id",
"text",
"created_at",
"language",
"conversation_id",
"sensitive",
"status",
"author",
"metrics",
"media"
],
"additionalProperties": false
}
}
},
"required": [
"items"
],
"additionalProperties": false
},
"page": {
"type": "object",
"properties": {
"next_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"next_cursor"
],
"additionalProperties": false
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"meta": {
"type": "object",
"properties": {
"listing_id": {
"type": "string",
"const": "x.users.media"
},
"version": {
"type": "string",
"const": "v1"
},
"catalog_release_id": {
"type": "string",
"minLength": 1
},
"price_book_version": {
"type": "string",
"minLength": 1
},
"result_status": {
"type": "string",
"enum": [
"complete",
"empty",
"partial"
]
},
"charged_amount": {
"type": "string"
},
"balance_after": {
"type": "string"
},
"currency": {
"type": "string",
"const": "CNY"
}
},
"required": [
"listing_id",
"version",
"catalog_release_id",
"price_book_version",
"result_status",
"charged_amount",
"balance_after",
"currency"
],
"additionalProperties": false
}
},
"required": [
"code",
"request_id",
"message",
"data",
"page",
"warnings",
"meta"
],
"additionalProperties": false
}Usage notes
Good for
- Use this when the matching public X snapshot is needed in a fixed workflow.
Not for
- Do not use it for private data, exhaustive archives, or representative audience claims.
Known limitations
- The observed first page contained 19 media Tweets and a cursor, but the result is not a complete archive.
- Only HTTPS media URLs and allowlisted public fields are returned.
- A provider media row can contain no mappable media object; in that case the public media arrays remain empty instead of inventing a URL.
- Only media Tweets posted by the account itself are returned; for posts that mention the account, use the X user mentions API.
Billing
¥0.06 per call. Complete and empty results are charged; partial results and failures are not.
See all pricing →