DataXAPI MCP
A remote MCP server providing AI agents with access to market data from 21 platforms including Douyin, Xiaohongshu, TikTok, WeChat, and X. It offers five tools: find, describe, call, read_more, and account, allowing agents to search endpoints, fetch paginated data, and manage usage budgets with a pay-per-call model.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://api.dataxapi.com/mcpWhat its tools do
5 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Can change data (1)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to dataxapi.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search for trending topics on Douyin, Weibo, and Bilibili
- Find specific posts or videos on TikTok and analyze engagement
- Monitor ads running for specific keywords on Meta and TikTok
- Retrieve public market data and usage receipts for AI agents
Source and maintenance
Protocol and capabilities
- Server
- dataxapi 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 5 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
5 advertised
find
Find which capability returns the data you need, when its ID is not obvious from the `call` list. Say the need in plain words, English or Chinese. Returns up to 5, each with its required parameters, price and a ready-made call. Free, no key. When nothing matches on a named platform it lists everything that platform has: pick from it, or tell the user it is not there. Never use another platform's capability instead.
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "e.g. \"comments on a douyin video\", \"小红书笔记详情\""
},
"category": {
"enum": [
"ads",
"commerce",
"creator",
"social"
],
"type": "string"
},
"platform": {
"type": "string",
"description": "Only this platform, by ID or name; alone, lists all it has"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}describe
The whole contract of 1 to 5 capabilities: parameters, fields returned in each view, paging, price and the most one call can cost, what it cannot give, example calls. Free, no key. Use it before `call` when unsure of the parameters.
{
"type": "object",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5,
"minItems": 1,
"description": "Capability IDs"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}call
Fetch one page of data from one capability. Charged per call or per item, as `describe` says; an error costs nothing. IDs read platform.resource.action; give only the parameters that capability takes. The first line of the result says how many items, the charge, the balance, and how to get the next page (`cursor`: a new charged call) or the rest of a result cut to about 20 KB (`read_more`: free). Needs an API key.
{
"type": "object",
"required": [
"capability"
],
"properties": {
"id": {
"type": "string",
"description": "ID of the first resource in the path"
},
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Several IDs in one request"
},
"tab": {
"type": "string",
"description": "Tab as shown on the platform"
},
"url": {
"type": "string",
"description": "Link to the object, instead of its ID"
},
"lang": {
"type": "string",
"description": "Language code"
},
"sort": {
"type": "string",
"description": "Sort order"
},
"type": {
"type": "string",
"description": "Content format"
},
"view": {
"enum": [
"compact",
"standard",
"full"
],
"type": "string",
"description": "How much of each item to return; compact when left out"
},
"board": {
"type": "string",
"description": "Which board"
},
"brand": {
"type": "string",
"description": "Name of the brand asked about"
},
"limit": {
"type": "integer",
"description": "Items per page. Only wechat_mp.accounts.search takes it; every other capability returns a fixed number per page and refuses it, so leave it out"
},
"query": {
"type": "string",
"description": "Search terms"
},
"since": {
"type": "string",
"description": "Published at or after"
},
"until": {
"type": "string",
"description": "Published at or before"
},
"cursor": {
"type": "string",
"description": "Cursor returned by the previous page"
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Return only these fields"
},
"region": {
"type": "string",
"description": "Country or region code"
},
"window": {
"type": "string",
"description": "Statistics period"
},
"include": {
"type": "array",
"items": {
"type": "string"
},
"description": "Extra parts to return alongside"
},
"keyword": {
"type": "string",
"description": "The keyword asked about"
},
"post_id": {
"type": "string",
"description": "ID of the post it belongs to"
},
"keywords": {
"type": "array",
"items": {
"type": "string"
},
"description": "Several terms in one request"
},
"username": {
"type": "string",
"description": "Account handle, instead of its ID"
},
"export_id": {
"type": "string",
"description": "A video's encrypted ID as a search result gives it, starting with export/; it expires"
},
"max_price": {
"type": "string",
"description": "Refuse if the call could cost more US dollars than this, as text: \"1.00\". Below the most the capability can cost, which `find` and `describe` give, the call is refused."
},
"capability": {
"enum": [
"douyin.comments.replies.list",
"douyin.hashtags.videos.list",
"bilibili.comments.replies.list",
"bilibili.trends.list",
"bilibili.users.get",
"bilibili.users.videos.list",
"bilibili.videos.comments.list",
"bilibili.videos.get",
"bilibili.videos.search",
"bilibili.videos.trending",
"douyin.index.brands.history",
"douyin.index.brands.metrics",
"douyin.index.creators.videos.list",
"douyin.index.creators.audience.get",
"douyin.index.creators.metrics",
"douyin.index.keywords.audience.get",
"douyin.index.keywords.history",
"douyin.index.keywords.related",
"douyin.index.trends.list",
"douyin.index.videos.search",
"douyin.trends.list",
"douyin.users.get",
"douyin.users.history",
"douyin.users.search",
"douyin.users.videos.list",
"douyin.videos.comments.list",
"douyin.videos.get",
"douyin.videos.metrics",
"douyin.videos.related",
"douyin.videos.search",
"douyin.videos.trending",
"douyin.xingtu.creators.rates.get",
"kuaishou.comments.replies.list",
"kuaishou.trends.list",
"kuaishou.users.get",
"kuaishou.users.search",
"kuaishou.users.videos.list",
"kuaishou.videos.comments.list",
"kuaishou.videos.get",
"kuaishou.videos.search",
"telegram.channels.get",
"telegram.channels.messages.list",
"telegram.messages.get",
"x.communities.posts.list",
"x.lists.posts.list",
"x.posts.article.get",
"x.posts.get",
"facebook.pages.get",
"facebook.pages.posts.list",
"facebook.posts.comments.list",
"facebook.posts.get",
"google.ads.get",
"google.advertisers.ads.list",
"google.advertisers.search",
"linkedin.ads.get",
"linkedin.ads.search",
"linkedin.companies.get",
"linkedin.companies.posts.list",
"linkedin.posts.get",
"linkedin.posts.search",
"meta.ads.get",
"meta.ads.search",
"meta.ads.transcript.get",
"meta.advertisers.ads.list",
"meta.advertisers.search",
"threads.posts.get",
"threads.posts.search",
"threads.users.get",
"threads.users.posts.list",
"instagram.comments.replies.list",
"instagram.hashtags.posts.list",
"instagram.posts.comments.list",
"instagram.posts.get",
"instagram.posts.transcript.get",
"instagram.users.get",
"instagram.users.posts.list",
"instagram.users.search",
"tiktok.ads.search",
"tiktok.ads.get",
"tiktok.comments.replies.list",
"tiktok.creative_center.ads.get",
"tiktok.creative_center.ads.search",
"tiktok.hashtags.videos.list",
"tiktok.users.get",
"tiktok.users.search",
"tiktok.users.videos.list",
"tiktok.videos.comments.list",
"tiktok.videos.get",
"tiktok.videos.search",
"tiktok.videos.transcript.get",
"weibo.comments.replies.list",
"weibo.posts.comments.list",
"weibo.posts.get",
"weibo.posts.likers.list",
"weibo.posts.search",
"weibo.trends.list",
"weibo.users.followers.list",
"weibo.users.get",
"weibo.users.posts.list",
"weibo.users.search",
"x.posts.quotes.list",
"x.posts.replies.list",
"x.posts.retweeters.list",
"x.posts.search",
"x.threads.posts.list",
"x.trends.list",
"x.users.followers.list",
"x.users.following.list",
"x.users.get",
"x.users.mentions.list",
"x.users.posts.list",
"x.users.search",
"xiaohongshu.images.search",
"xiaohongshu.notes.get",
"xiaohongshu.comments.replies.list",
"xiaohongshu.notes.comments.list",
"xiaohongshu.notes.search",
"xiaohongshu.pgy.keywords.history",
"xiaohongshu.pgy.keywords.related",
"xiaohongshu.topics.notes.list",
"xiaohongshu.topics.get",
"xiaohongshu.trends.list",
"xiaohongshu.users.get",
"xiaohongshu.users.notes.list",
"xiaohongshu.users.search",
"youtube.channels.get",
"youtube.channels.search",
"youtube.channels.videos.list",
"youtube.comments.replies.list",
"youtube.videos.comments.list",
"youtube.videos.get",
"youtube.videos.search",
"youtube.videos.transcript.get",
"wechat_channels.users.get",
"wechat_channels.videos.get",
"wechat_channels.videos.comments.list",
"wechat_channels.videos.share_link.get",
"wechat_channels.users.collections.list",
"wechat_channels.collections.videos.list",
"wechat_channels.users.videos.list",
"wechat_channels.videos.search",
"wechat.posts.search",
"wechat_mp.accounts.articles.list",
"wechat_mp.accounts.get",
"wechat_mp.articles.comments.list",
"wechat_mp.articles.get",
"wechat_mp.articles.metrics",
"wechat_mp.comments.replies.list",
"wechat_channels.backup.users.get",
"wechat_channels.backup.users.videos.list",
"wechat.backup.posts.search",
"wechat.accounts.search",
"wechat_channels.backup.videos.search",
"wechat_mp.accounts.search",
"wechat_mp.accounts.owner.get",
"wechat.index.keywords.history",
"wechat.keywords.related",
"wechat.miniprograms.search",
"wechat_channels.users.search",
"wechat_channels.videos.metrics",
"wechat_channels.comments.replies.list",
"wechat_channels.users.live_replays.list",
"reddit.posts.comments.list",
"reddit.posts.get",
"reddit.posts.search",
"reddit.posts.trending",
"reddit.subreddits.posts.list",
"reddit.trends.list",
"reddit.users.get",
"reddit.users.posts.list",
"zhihu.answers.comments.list",
"zhihu.answers.get",
"zhihu.articles.get",
"zhihu.columns.articles.list",
"zhihu.comments.replies.list",
"zhihu.pins.get",
"zhihu.posts.search",
"zhihu.questions.answers.list",
"zhihu.questions.get",
"zhihu.trends.list",
"zhihu.users.answers.list",
"zhihu.users.articles.list",
"zhihu.users.followers.list",
"zhihu.users.get",
"zhihu.users.pins.list",
"zhihu.users.search",
"reddit.subreddits.get",
"reddit.users.subreddits.list",
"x.communities.get",
"tiktok.shop.products.get",
"tiktok.shop.products.reviews.list",
"tiktok.shop.products.search",
"tiktok.shop.sellers.products.list",
"xiaohongshu.shop.products.get",
"xiaohongshu.shop.products.reviews.list",
"xiaohongshu.shop.products.search",
"x.communities.members.list",
"x.lists.followers.list",
"x.lists.members.list",
"linkedin.posts.transcript.get",
"reddit.posts.transcript.get",
"x.posts.transcript.get",
"tiktok.users.followers.list",
"youtube.channels.posts.list",
"youtube.posts.get",
"pinterest.pins.get",
"pinterest.pins.search",
"douyin.xingtu.creators.search",
"douyin.xingtu.creators.get",
"douyin.xingtu.creators.audience.get",
"douyin.xingtu.creators.metrics",
"douyin.xingtu.creators.videos.list",
"douyin.xingtu.creators.keywords.get",
"douyin.xingtu.creators.scores.get",
"douyin.xingtu.creators.content_mix.get",
"douyin.xingtu.creators.conversion.get",
"douyin.xingtu.campaigns.list",
"xiaohongshu.pgy.creators.search",
"xiaohongshu.pgy.creators.get",
"xiaohongshu.pgy.creators.audience.get",
"xiaohongshu.pgy.creators.metrics",
"xiaohongshu.pgy.creators.notes.list",
"douyin.xingtu.videos.get",
"douyin.keywords.related",
"xiaohongshu.keywords.related",
"xiaohongshu.videos.get",
"bilibili.backup.users.videos.list",
"douyin.backup.users.videos.list",
"douyin.backup.videos.search",
"weibo.backup.trends.list"
],
"type": "string"
},
"idempotency_key": {
"type": "string",
"description": "Optional: left out, the server makes a new one. To be able to repeat a call whose answer you did not get, give a new unique value (a UUID) and send the same value again: that returns the first result, charged once."
},
"published_within": {
"type": "string",
"description": "Published within the last period"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}read_more
Read the rest of a result that `call` cut to fit, or the same result in another view. Free: nothing is fetched again; results are kept 24 hours. Needs the API key that made the call.
{
"type": "object",
"required": [
"result_id"
],
"properties": {
"view": {
"enum": [
"compact",
"standard",
"full"
],
"type": "string",
"description": "How much of each item to return; compact when left out"
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Return only these fields"
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Where to go on, as printed; from the start when left out"
},
"result_id": {
"type": "string",
"description": "As `call` printed it"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}account
balance: the balance, this key's budget and spending. receipt: what one call was charged, by its result ID. usage: calls and charges by day or capability. status: which capabilities are up (no key). Free.
{
"type": "object",
"required": [
"what"
],
"properties": {
"what": {
"enum": [
"balance",
"receipt",
"usage",
"status"
],
"type": "string"
},
"since": {
"type": "string",
"description": "usage: from this time, ISO 8601; 30 days back when left out"
},
"until": {
"type": "string",
"description": "usage: up to this time"
},
"group_by": {
"type": "string",
"description": "usage: day, capability, key_id, entry, source, end_user; commas between several"
},
"request_id": {
"type": "string",
"description": "receipt: the result ID"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 536 ms
- 95th percentile latency
- 536 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 536 ms · metadata changed · 5 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http dataxapi-mcp https://api.dataxapi.com/mcpCodex
codex mcp add dataxapi-mcp --url https://api.dataxapi.com/mcpCursor
{
"mcpServers": {
"dataxapi-mcp": {
"url": "https://api.dataxapi.com/mcp"
}
}
}Cline
{
"mcpServers": {
"dataxapi-mcp": {
"type": "streamableHttp",
"url": "https://api.dataxapi.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"dataxapi-mcp": {
"type": "http",
"url": "https://api.dataxapi.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http dataxapi-mcp https://api.dataxapi.com/mcpClaude Desktop
https://api.dataxapi.com/mcpWindsurf
{
"mcpServers": {
"dataxapi-mcp": {
"serverUrl": "https://api.dataxapi.com/mcp"
}
}
}Let your agent find its tools
Find servers like DataXAPI MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other data and analytics servers
Do you run DataXAPI MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.