Account posts API
19 endpoints on 17 platforms return the same Post object. The posts an account published, a page at a time. A call costs from $0.0020 to $0.0200, each endpoint at its own price; a failed call is free.
Account posts on each platform
One row per endpoint: what it is called, how much comes back in a call, and what a call costs.
The Post object
Every endpoint above returns these fields, with the same names and types.
idtextID; pass it unchanged to the get endpointurllinkLink that opens the posttypetextContent formattitletextTitletexttextBody textlangtextLanguage of the textpublished_attimeWhen it was publishedauthor.idtextAuthor's account IDauthor.usernametextAuthor's handleauthor.nametextAuthor's display nameauthor.avatar_urllinkAuthor's avatarauthor.verifiedyes/noWhether the author is verifiedauthor.followersintegerAuthor's follower countmetrics.likesintegerLikesmetrics.commentsintegerCommentsmetrics.sharesintegerSharesmetrics.favoritesintegerSavesmetrics.viewsintegerViewsmetrics.repostsintegerRepostsimageslist of linkImage addresseshashtagslist of textHashtags, without the #mentions[].idtextAccount IDmentions[].usernametextHandlementions[].nametextDisplay nameis_pinnedyes/noWhether the author pinned itpost_idtextID of the thread's root post when this is a reply; otherwise nullparent_idtextID of the item it replies to directly; otherwise nullroot_idtextID of the first-level reply its thread hangs underWhich platform fills which field
A field an endpoint cannot give is listed in meta.unavailable on every answer, so a gap is never a surprise.
The same call on two platforms
Same parameter names, same paging, same answer. Only the path changes.
# TikTok curl -G "https://api.dataxapi.com/v1/tiktok/users/videos/list" \ --data-urlencode "username=nasa" \ -H "Authorization: Bearer $DATAXAPI_API_KEY" # Douyin: one word changes curl -G "https://api.dataxapi.com/v1/douyin/users/videos/list" \ --data-urlencode "id=MS4wLjABAAAAZ0aPDJzFhBrs0q3wVsp2a9WWrBuAUMsVyygoaO0bCw8" \ -H "Authorization: Bearer $DATAXAPI_API_KEY"
// TikTok import { DataXAPI } from "@dataxapi/sdk"; const dx = new DataXAPI(); // reads DATAXAPI_API_KEY const result = await dx.tiktok.users.videos.list({ username: "nasa" }); console.log(result.data.items); // Douyin: one word changes const other = await dx.douyin.users.videos.list({ id: "MS4wLjABAAAAZ0aPDJzFhBrs0q3wVsp2a9WWrBuAUMsVyygoaO0bCw8" }); console.log(other.data.items);
# TikTok from dataxapi import DataXAPI dx = DataXAPI() # reads DATAXAPI_API_KEY result = dx.tiktok.users.videos.list(username="nasa") print(result["data"]["items"]) # Douyin: one word changes other = dx.douyin.users.videos.list(id="MS4wLjABAAAAZ0aPDJzFhBrs0q3wVsp2a9WWrBuAUMsVyygoaO0bCw8") print(other["data"]["items"])
# TikTok dataxapi call tiktok.users.videos.list username=nasa # Douyin: one word changes dataxapi call douyin.users.videos.list id=MS4wLjABAAAAZ0aPDJzFhBrs0q3wVsp2a9WWrBuAUMsVyygoaO0bCw8
{
"code": "ok",
"request_id": "a42fa228-bf2c-4880-b287-caceb8e1bd8d",
"data": {
"items": [
{
"id": "7233742999990560590",
"url": "https://www.tiktok.com/@hannah.w.photo/video/7233742999990560590",
"type": "video",
"text": "Everything I wish I knew about weekend hiking before starting.",
"lang": "en",
"published_at": "2026-07-21T20:09:02.000Z",
"author": {
"id": "6149684490433647203",
"username": "hannah.w.photo",
"name": "Hannah Weiss",
"avatar_url": "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/2ab492d722b3543fc068~c5_100x100.jpeg",
"followers": 2060928
},
"metrics": {
"likes": 103312,
"comments": 3021,
"shares": 3253,
"favorites": 7513,
"views": 1592522
},
"hashtags": [],
"mentions": [],
"is_pinned": true
},
// … 9 more
]
},
"page": {
"next_cursor": "c1.yvxWofpiS46rHbSlVZq6wOmvvAKYGTTSKnC13UaD",
"cursor_expires_at": "2026-10-12T19:45:11.000Z",
"has_more": true,
"returned": 10
},
"warnings": [],
"meta": {
"capability": "tiktok.users.videos.list",
"result_status": "complete",
"fetched_at": "2026-10-12T18:45:11.000Z",
"cached": false,
"replayed": false,
"unavailable": {
"title": "platform",
"images": "capability",
"author.verified": "capability",
"metrics.reposts": "capability",
"mentions.username": "capability",
"mentions.name": "capability",
"post_id": "platform",
"parent_id": "platform",
"root_id": "platform"
},
"billing": {
"amount": "0.002",
"currency": "USD",
"balance_after": "9.998"
}
}
}TikTok user videos: From a response recorded 2026-10-12 18:45 UTC. Names, text and IDs are examples, and so are the links: none is the recorded one (the page shows no one's personal data); the figures are as recorded. Long lists are cut. The request ID, cursor and balance are made up.
Ready to use
Skills your AI can run on these endpoints, with what one run costs, and the objects every answer comes back as.
Competitor account monitoring
“What did competitors post this week, and which post took off?”
Account check-up
“How is this account doing?”
The Post object
What every field means, which number each platform puts in it, and where it is missing.
Questions about the Account posts API
Short answers. Each endpoint's page has its own limits and examples.
TikTok user videos API →How much does it cost?
$0.0020 a call on TikTok, YouTube, Instagram, X (Twitter), Douyin, Reddit, Facebook, Bilibili, Weibo, LinkedIn, Threads, Zhihu, Telegram; $0.0200 a call on Xiaohongshu (RedNote), WeChat Official Accounts, WeChat Channels, Kuaishou. You are charged when data comes back; a failed call costs nothing. No subscription, no monthly minimum.
How do I get every page?
Pass page.next_cursor back as cursor until page.has_more is false. Each page is one call at the same price.
Does every platform fill every field?
No. 25 of the 28 fields are missing on at least one platform; the table on this page says which. A field an endpoint cannot give is named in meta.unavailable on every answer, never filled with a guess.
Do I need an account on the platform?
No. One DataXAPI key reads all 17 platforms. No platform account and no cookie.
Other data types
The same idea everywhere: one action, every platform that has it.
Start with one key.
207 endpoints on 21 platforms, from $0.0003 a call. Errors and timeouts are not charged.