Skip to content
All X APIs
Accounts & creatorsX (Twitter / 推特)User Media Post · List

X user media

Read one cursor-paginated page of image or video Tweets from a public account.

POST/v1/x/users/media

Chinese 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.

Current statusAvailableChecking live status
Checking live status

Try it

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

usernamestringrequired

pattern: "^@?[A-Za-z0-9_]+$" · minLength: 1 · maxLength: 64

Example: "OpenAI"

cursorstringoptional

minLength: 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"}'

Response example

200 · application/json
{
  "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_idstring
messagestring
const: "success"
dataobject
pageobject
warningsarray
metaobject
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 →