Données sociales (bêta)

GET /v1/social/{platform}/{capability} renvoie des données publiques de Douyin, Xiaohongshu, TikTok, YouTube et d’autres plateformes sociales, avec la même clé API et le même solde que vos appels de modèles. Chaque plateforme et chaque capacité est facturée par appel réussi, et data est la réponse propre de la plateforme — les champs ne sont pas normalisés d’une plateforme à l’autre.

GET /v1/social/{platform}/{capability}
curl --get "https://api.chinaapi.ai/v1/social/bilibili/search" \
  -H "Authorization: Bearer $CHINAAPI_KEY" \
  --data-urlencode 'keyword=Python'

# HTTP 200
# {"object": "social.result", "platform": "tiktok", "capability": "search", "data": {...}}
Bêta : comptes payants uniquement Effectuez votre première recharge avant d’appeler. Le crédit d’essai ne peut pas être dépensé sur ces endpoints ; un compte qui n’a jamais rechargé reçoit HTTP 403 model_requires_topup. La bêta n’a pas de SLA, et ses plateformes, endpoints et prix peuvent changer.

Authentification et facturation

Envoyez votre clé ChinaAPI comme jeton bearer à https://api.chinaapi.ai, comme pour tout appel de modèle. Un appel est facturé une seule fois, au prix indiqué pour son endpoint, et seulement s’il renvoie HTTP 200 avec des données ; un résultat vide, un paramètre refusé ou un échec en amont ne coûte rien. Chaque page récupérée est un appel distinct. Votre journal d’utilisation liste chaque appel sous le nom indiqué avec son endpoint, par exemple social-douyin-search.

Réponses et erreurs

Une réponse réussie enveloppe les données de la plateforme dans une petite structure. Tout ce qui se trouve dans data — noms de champs, curseurs de pagination, identifiants — appartient à la plateforme ; renvoyez les curseurs exactement tels que vous les avez reçus.

{
  "object": "social.result",
  "platform": "douyin",
  "capability": "search",
  "data": { "...": "the platform's own fields" }
}
  • 400 — un paramètre est inconnu, répété, trop long, du mauvais type ou manquant, y compris quand aucun membre d’un groupe « au moins un de » n’est fourni. Le code de l’erreur précise lequel, par exemple unknown_parameter ou missing_parameter.
  • 403 model_requires_topup — le compte n’a pas effectué sa première recharge.
  • 404 — le couple plateforme-capacité n’existe pas, ou la plateforme n’a rien trouvé pour ces paramètres (social_data_no_result).
  • 429 social_data_capacity_reached — la capacité quotidienne de la bêta est épuisée et se réinitialise à 00:00 UTC, ou la plateforme est occupée et une nouvelle tentative quelques secondes plus tard suffira. Ne relancez pas en boucle serrée.
  • 502 social_data_no_result — la source de données n’a pas répondu, ou a répondu sans données.
  • 503 social_data_unavailable — cet endpoint est suspendu en ce moment ; le catalogue en direct l’indique comme paused.

Aucune de ces réponses n’est facturée.

LinkedIn asynchronous tasks

The post-async, user-async and company-async capabilities use POST, query parameters and an empty body. Supply an Idempotency-Key (8–128 characters) unique to your intended operation. Reusing the same key and parameters returns the original submission without another charge; changing parameters under that key returns HTTP 409. A lost response is retried with the same key.

curl --get -X POST "https://api.chinaapi.ai/v1/social/linkedin/company-async" \
  -H "Authorization: Bearer $CHINAAPI_KEY" \
  -H "Idempotency-Key: company-research-20261029-001" \
  --data-urlencode 'url=https://www.linkedin.com/company/microsoft/'

# HTTP 202 returns a ChinaAPI task id and Location.
curl "https://api.chinaapi.ai/v1/social-tasks/TASK_ID" \
  -H "Authorization: Bearer $CHINAAPI_KEY"

Creation reserves the catalog price. A task with usable records keeps that charge; failure, empty results or timeout refund the reservation. Status and result reads are free, require the same account, and do not create another task. Poll no faster than every five seconds. Results are available for 30 days; do not submit another paid task just to read the same result. submission_pending means the submission outcome is uncertain: keep the same key and contact support if it persists.

These asynchronous capabilities are available through REST. The data MCP fetch tool lists synchronous capabilities only.

Xiaohongshu creator hot topics

GET /v1/social/xiaohongshu/creator-hot-topics returns the creator center’s hot inspiration feed. This is a separate capability, not a platform-wide trending ranking; the old trending endpoint remains unavailable. The live catalog lists its per-call price.

Leave cursor empty on the first request. Pass the response’s data.data.cursor unchanged to fetch the next page; items are in data.data.items. Stop when data.data.end_flag is true, a cursor repeats, or a page has no new items. Each successful nonempty page is billed separately. Empty results and business errors are not charged.

Telegram public channels

Telegram user returns a public channel profile, post returns one channel post, and user-posts returns channel posts. These endpoints do not retrieve personal account profiles or private chats. Pass channel=durov; a post also needs its post_id. Comments remain unavailable.

For user-posts, limit is 1–100 (upstream default 20). Fetch older posts with the preceding response's data.pagination.before_cursor as before; fetch newer posts with data.pagination.after_cursor as after. Choose one direction per request. Read posts from data.messages, deduplicate by post ID, and stop on an empty page, repeated cursor, no new IDs or your page/spending limit. has_more_before=false ends backward collection. Each nonempty successful page is billed separately; unavailable previews and empty results are not charged. Media links can expire.

Search implementation changes

TikTok search uses the App V3 implementation with keyword, offset, count, sort_type and publish_time. Start at offset 0; the former Web search_id is not supported. Returned data retains App V3 fields. Threads search returns top results and supports no pagination; results can vary by query and retrieval time. These path changes keep the previous per-call prices.

Pagination and bounded collection

Douyin comments and comment replies use the App V3 cursor contract. Start with cursor=0 and count=20; only count 20 is supported. Comment replies require both item_id (video ID) and comment_id (parent comment ID). Pass the returned cursor unchanged within the same capability. Old Web cursors cannot be reused.

Pages can overlap even when the cursor advances. Deduplicate by cid, stop when has_more is false, when a cursor repeats, or when no new IDs arrive; set a maximum page count and a spending limit. Each successful page is separately billed, including overlapping items. An empty page returns an uncharged no-result error and should end collection.

Threads comments and top search currently support the first page only. Sending a nonempty end_cursor is rejected before billing. Do not interpret a first-page response as a complete comment history. For every platform, use only the pagination parameters advertised in the live catalog.

Usage acceptable

Respectez les conditions de chaque plateforme et les règles de protection des données qui s’appliquent à vous. N’utilisez pas cette API pour établir des profils de personnes. La connexion à des comptes, l’extraction de coordonnées, la manipulation de l’engagement et l’accès à des contenus privés ou payants sont hors du périmètre de cette bêta.

Plateformes et prix

USD par appel réussi. Chaque prix renvoie à son endpoint ci-dessous, et un tiret signifie que la plateforme ne propose pas cette capacité. Le catalogue en direct — GET https://dash.chinaapi.ai/api/social/catalog, sans clé — fait foi sur ce qui est en vente à l’instant, y compris tout endpoint suspendu.

Endpoints

Les paramètres vont dans la query string, sous les noms propres à la plateforme. Les exemples viennent du catalogue ; remplacez les identifiants par ceux du contenu à récupérer.