X Post API
Collect X post details and available author, media and comment data.
API Description
X Post API — Collect X post details and available author, media and comment data.
Authenticate with your Pangolinfo API Key to receive structured JSON data.
Request URL
Request Headers
| Parameters | Parameter value | Type | Description |
|---|---|---|---|
| Content-Type | application/json | string | Data format |
| Authorization | Bearer xxx | string | Authorization Token |
Collection takes up to approximately 75 seconds. Set your client timeout to 90 seconds.
Request Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
| target | Yes | string | Target URL, supported ID or search keyword for this operation. |
Only the request parameters listed on this page are used; other fields are ignored. Pass pagination cursors back unchanged, without encoding, decoding or conversion.
Included comments are limited to one page. Use the corresponding comments operation for more.
Response Fields
| Field | Type | Description |
|---|---|---|
| code | integer | Status code; 0 indicates success. |
| message | string | Response message; ok on success. |
| pointCost | number | Points charged for this request. |
| data | object | Collected data, with fields described below. |
| meta | object | Request identifier and duration in milliseconds. |
| billing | object | Charged units, unit price and billing rule version. |
data Fields
| Field | Type | Description |
|---|---|---|
| type | string | Result type. |
| poster | object | Poster |
| post | object | Post, video or business details. |
| thread | object[] | Thread |
| comments | object[] | Root comments in comment mode. |
| pagination | object | Continuation cursor and whether more results are available. |
data.poster Fields
| Field | Type | Description |
|---|---|---|
| nickname | string | null | Author display name. |
| username | string | null | Username |
| avatar | string | null | Avatar URL. |
| profileUrl | string | null | Author profile URL. |
| id | string | null | Record identifier. |
| verified | boolean | Verified |
| verificationType | string | null | Verification type |
| followersCount | number | null | Followers count |
| followingCount | number | null | Following count |
| protected | boolean | Protected |
data.post Fields
| Field | Type | Description |
|---|---|---|
| id | string | null | Record identifier. |
| url | string | null | Content URL. |
| content | string | Content text; may be null for records without text. |
| rawText | string | null | Raw text |
| publishedAt | object | null | Publication time. |
| likes | number | null | Like count. |
| commentsCount | number | null | Platform-reported comment total; not the number billed. |
| reposts | number | null | Repost count. |
| quotes | number | null | Quotes |
| bookmarks | number | null | Bookmarks |
| views | number | null | View count. |
| lang | string | null | Subtitle language code, e.g. en. Manual captions take priority. If unavailable, the default track is returned. |
| possiblySensitive | boolean | Possibly sensitive |
| isNoteTweet | boolean | Is note tweet |
| communityNote | any | Community note |
| replyingTo | string | null | Replying to |
| replyingToStatus | string | null | Replying to status |
| source | string | null | Source |
| media | object[] | Media |
| mentions | object[] | Mentions |
| hashtags | string | null[] | Hashtags |
| urls | object[] | Urls |
| repostedBy | object | null | Reposted by |
| quote | object | null | Quote |
data.post.publishedAt Fields
| Field | Type | Description |
|---|---|---|
| text | string | null | Text value. |
| value | number | null | Parsed value. |
data.post.media[] Fields
| Field | Type | Description |
|---|---|---|
| type | string | null | Result type. |
| id | string | null | Record identifier. |
| url | string | null | Content URL. |
| thumbnailUrl | string | null | Thumbnail url |
| width | number | null | Width |
| height | number | null | Height |
| durationSec | number | null | Duration sec |
| format | string | null | Format |
| variants | object[] | Variants |
data.post.mentions[] Fields
| Field | Type | Description |
|---|---|---|
| username | string | null | Username |
| id | string | null | Record identifier. |
data.post.urls[] Fields
| Field | Type | Description |
|---|---|---|
| url | string | null | Content URL. |
| display | string | null | Display |
data.post.repostedBy Fields
| Field | Type | Description |
|---|---|---|
| nickname | string | null | Author display name. |
| username | string | null | Username |
| avatar | string | null | Avatar URL. |
| profileUrl | string | null | Author profile URL. |
| id | string | null | Record identifier. |
| verified | boolean | Verified |
| verificationType | string | null | Verification type |
| followersCount | number | null | Followers count |
| followingCount | number | null | Following count |
| protected | boolean | Protected |
data.post.quote Fields
| Field | Type | Description |
|---|---|---|
| id | string | null | Record identifier. |
| url | string | null | Content URL. |
| content | string | Content text; may be null for records without text. |
| rawText | string | null | Raw text |
| publishedAt | object | null | Publication time. |
| likes | number | null | Like count. |
| commentsCount | number | null | Platform-reported comment total; not the number billed. |
| reposts | number | null | Repost count. |
| quotes | number | null | Quotes |
| bookmarks | number | null | Bookmarks |
| views | number | null | View count. |
| lang | string | null | Subtitle language code, e.g. en. Manual captions take priority. If unavailable, the default track is returned. |
| possiblySensitive | boolean | Possibly sensitive |
| isNoteTweet | boolean | Is note tweet |
| communityNote | any | Community note |
| replyingTo | string | null | Replying to |
| replyingToStatus | string | null | Replying to status |
| source | string | null | Source |
| media | object[] | Media |
| mentions | object[] | Mentions |
| hashtags | string | null[] | Hashtags |
| urls | object[] | Urls |
| repostedBy | object | null | Reposted by |
| quote | any | Quote |
| poster | object | Poster |
data.thread[] Fields
| Field | Type | Description |
|---|---|---|
| id | string | null | Record identifier. |
| url | string | null | Content URL. |
| content | string | Content text; may be null for records without text. |
| rawText | string | null | Raw text |
| publishedAt | object | null | Publication time. |
| likes | number | null | Like count. |
| commentsCount | number | null | Platform-reported comment total; not the number billed. |
| reposts | number | null | Repost count. |
| quotes | number | null | Quotes |
| bookmarks | number | null | Bookmarks |
| views | number | null | View count. |
| lang | string | null | Subtitle language code, e.g. en. Manual captions take priority. If unavailable, the default track is returned. |
| possiblySensitive | boolean | Possibly sensitive |
| isNoteTweet | boolean | Is note tweet |
| communityNote | any | Community note |
| replyingTo | string | null | Replying to |
| replyingToStatus | string | null | Replying to status |
| source | string | null | Source |
| media | object[] | Media |
| mentions | object[] | Mentions |
| hashtags | string | null[] | Hashtags |
| urls | object[] | Urls |
| repostedBy | object | null | Reposted by |
| quote | object | null | Quote |
data.thread[].publishedAt Fields
| Field | Type | Description |
|---|---|---|
| text | string | null | Text value. |
| value | number | null | Parsed value. |
data.thread[].media[] Fields
| Field | Type | Description |
|---|---|---|
| type | string | null | Result type. |
| id | string | null | Record identifier. |
| url | string | null | Content URL. |
| thumbnailUrl | string | null | Thumbnail url |
| width | number | null | Width |
| height | number | null | Height |
| durationSec | number | null | Duration sec |
| format | string | null | Format |
| variants | object[] | Variants |
data.thread[].mentions[] Fields
| Field | Type | Description |
|---|---|---|
| username | string | null | Username |
| id | string | null | Record identifier. |
data.thread[].urls[] Fields
| Field | Type | Description |
|---|---|---|
| url | string | null | Content URL. |
| display | string | null | Display |
data.thread[].repostedBy Fields
| Field | Type | Description |
|---|---|---|
| nickname | string | null | Author display name. |
| username | string | null | Username |
| avatar | string | null | Avatar URL. |
| profileUrl | string | null | Author profile URL. |
| id | string | null | Record identifier. |
| verified | boolean | Verified |
| verificationType | string | null | Verification type |
| followersCount | number | null | Followers count |
| followingCount | number | null | Following count |
| protected | boolean | Protected |
data.thread[].quote Fields
| Field | Type | Description |
|---|---|---|
| id | string | null | Record identifier. |
| url | string | null | Content URL. |
| content | string | Content text; may be null for records without text. |
| rawText | string | null | Raw text |
| publishedAt | object | null | Publication time. |
| likes | number | null | Like count. |
| commentsCount | number | null | Platform-reported comment total; not the number billed. |
| reposts | number | null | Repost count. |
| quotes | number | null | Quotes |
| bookmarks | number | null | Bookmarks |
| views | number | null | View count. |
| lang | string | null | Subtitle language code, e.g. en. Manual captions take priority. If unavailable, the default track is returned. |
| possiblySensitive | boolean | Possibly sensitive |
| isNoteTweet | boolean | Is note tweet |
| communityNote | any | Community note |
| replyingTo | string | null | Replying to |
| replyingToStatus | string | null | Replying to status |
| source | string | null | Source |
| media | object[] | Media |
| mentions | object[] | Mentions |
| hashtags | string | null[] | Hashtags |
| urls | object[] | Urls |
| repostedBy | object | null | Reposted by |
| quote | any | Quote |
| poster | object | Poster |
data.comments[] Fields
| Field | Type | Description |
|---|---|---|
| id | string | null | Record identifier. |
| url | string | null | Content URL. |
| content | string | Content text; may be null for records without text. |
| rawText | string | null | Raw text |
| publishedAt | object | null | Publication time. |
| likes | number | null | Like count. |
| commentsCount | number | null | Platform-reported comment total; not the number billed. |
| reposts | number | null | Repost count. |
| quotes | number | null | Quotes |
| bookmarks | number | null | Bookmarks |
| views | number | null | View count. |
| lang | string | null | Subtitle language code, e.g. en. Manual captions take priority. If unavailable, the default track is returned. |
| possiblySensitive | boolean | Possibly sensitive |
| isNoteTweet | boolean | Is note tweet |
| communityNote | any | Community note |
| replyingTo | string | null | Replying to |
| replyingToStatus | string | null | Replying to status |
| source | string | null | Source |
| media | object[] | Media |
| mentions | object[] | Mentions |
| hashtags | string | null[] | Hashtags |
| urls | object[] | Urls |
| repostedBy | object | null | Reposted by |
| quote | object | null | Quote |
| time | object | null | Publication time. |
| avatar | string | null | Avatar URL. |
| nickname | string | null | Author display name. |
| profileUrl | string | null | Author profile URL. |
| replys | any[] | Nested replies. |
| replyCount | number | null | Platform-reported reply count. |
| poster | object | Poster |
data.comments[].publishedAt Fields
| Field | Type | Description |
|---|---|---|
| text | string | null | Text value. |
| value | number | null | Parsed value. |
data.comments[].media[] Fields
| Field | Type | Description |
|---|---|---|
| type | string | null | Result type. |
| id | string | null | Record identifier. |
| url | string | null | Content URL. |
| thumbnailUrl | string | null | Thumbnail url |
| width | number | null | Width |
| height | number | null | Height |
| durationSec | number | null | Duration sec |
| format | string | null | Format |
| variants | object[] | Variants |
data.comments[].mentions[] Fields
| Field | Type | Description |
|---|---|---|
| username | string | null | Username |
| id | string | null | Record identifier. |
data.comments[].urls[] Fields
| Field | Type | Description |
|---|---|---|
| url | string | null | Content URL. |
| display | string | null | Display |
data.comments[].repostedBy Fields
| Field | Type | Description |
|---|---|---|
| nickname | string | null | Author display name. |
| username | string | null | Username |
| avatar | string | null | Avatar URL. |
| profileUrl | string | null | Author profile URL. |
| id | string | null | Record identifier. |
| verified | boolean | Verified |
| verificationType | string | null | Verification type |
| followersCount | number | null | Followers count |
| followingCount | number | null | Following count |
| protected | boolean | Protected |
data.comments[].quote Fields
| Field | Type | Description |
|---|---|---|
| id | string | null | Record identifier. |
| url | string | null | Content URL. |
| content | string | Content text; may be null for records without text. |
| rawText | string | null | Raw text |
| publishedAt | object | null | Publication time. |
| likes | number | null | Like count. |
| commentsCount | number | null | Platform-reported comment total; not the number billed. |
| reposts | number | null | Repost count. |
| quotes | number | null | Quotes |
| bookmarks | number | null | Bookmarks |
| views | number | null | View count. |
| lang | string | null | Subtitle language code, e.g. en. Manual captions take priority. If unavailable, the default track is returned. |
| possiblySensitive | boolean | Possibly sensitive |
| isNoteTweet | boolean | Is note tweet |
| communityNote | any | Community note |
| replyingTo | string | null | Replying to |
| replyingToStatus | string | null | Replying to status |
| source | string | null | Source |
| media | object[] | Media |
| mentions | object[] | Mentions |
| hashtags | string | null[] | Hashtags |
| urls | object[] | Urls |
| repostedBy | object | null | Reposted by |
| quote | any | Quote |
| poster | object | Poster |
data.comments[].time Fields
| Field | Type | Description |
|---|---|---|
| text | string | null | Text value. |
| value | number | null | Parsed value. |
data.comments[].poster Fields
| Field | Type | Description |
|---|---|---|
| nickname | string | null | Author display name. |
| username | string | null | Username |
| avatar | string | null | Avatar URL. |
| profileUrl | string | null | Author profile URL. |
| id | string | null | Record identifier. |
| verified | boolean | Verified |
| verificationType | string | null | Verification type |
| followersCount | number | null | Followers count |
| followingCount | number | null | Following count |
| protected | boolean | Protected |
data.pagination Fields
| Field | Type | Description |
|---|---|---|
| comments | object | Root comments in comment mode. |
data.pagination.comments Fields
| Field | Type | Description |
|---|---|---|
| cursor | null | Continuation cursor from the previous response. Pass the value unchanged. |
| hasMore | boolean | Whether more results are available. |
Request Example
Response Example
This excerpt shows the first item of each list. Long text and URLs are shortened; pointCost is the charge for the complete response. The playground contains the full schema.
Points Usage
0.8 points per post, video or business. Included comments, replies and author details are free.
Empty results and failed requests are not charged. Duplicate IDs are counted once within a response. Separate calls and pages are billed separately. See Social Media Reviews API billing.

