Documentation

vaaya / docs / reference

Social data

Per-call reads of social platforms: 913 endpoints across 21 platforms behind two actions — tikhub/fetch for reads and tikhub/submit for POST-style operations. The endpoint is a param, most calls cost , and this is the only catalog source for CN platforms (Douyin, Weibo, Xiaohongshu, Bilibili, Kuaishou, WeChat, Zhihu, and more).

Finding the endpoint

Never guess an endpoint path. vaaya/discover (free) keyword-searches all 913 endpoints and returns exactly what you need — the endpoint, the real price_cents, and required_params. See Discovery.

# 1) find the endpoint — free
curl -X POST https://vaaya.ai/api/run/vaaya/discover \
  -H "Authorization: Bearer $VAAYA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "douyin trending"}'

# 2) call it — the endpoint is a param
curl -X POST https://vaaya.ai/api/run/tikhub/fetch \
  -H "Authorization: Bearer $VAAYA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"endpoint": "/api/v1/instagram/v2/fetch_user_info", "username": "nike"}'

This vs bulk scraping

Apify actors (see Web scraping) are bulk collectors — N results for a capped per-result price, best for “get 100 posts matching X”. TikHub is precise per-object reads — one profile, one video’s comments, one search page — at a flat ~1¢, best for lookups, drill-downs, and the CN platforms Apify doesn’t cover.

Platform coverage

Price
most calls 1¢ — vaaya/discover shows the real price per endpoint
Endpoints
913 across 21 platforms
Actions
tikhub/fetch (reads) · tikhub/submit (POST ops)

Endpoint counts per platform family: Douyin 275 · TikTok 173 · Weibo 64 · Instagram 56 · Bilibili 41 · Zhihu 41 · Kuaishou 38 · YouTube 38 · Xiaohongshu 36 · LinkedIn 29 (public content only — see policy below) · Reddit 24 · Pipixia 17 · Lemon8 16 · Twitter/X 12 · WeChat Channels 12 · Threads 9 · WeChat MP 9 · Xigua 7 · Toutiao 7 · Telegram 7 · WeChat Search 2.

Param conventions

Params are validated server-side, and the required_params list from discover is authoritative. The conventions:

  • Profile reads take username or user_id/sec_user_id.
  • Content reads take the platform’s id — aweme_id, note_id, tweet_id, or a url.
  • Searches take keyword.
  • Paginated reads return a pagination_token/cursor — pass it back to page.
  • Missing required params are rejected before any charge.
# platform-native ids, keyword searches, and job search all follow the same shape
curl -X POST https://vaaya.ai/api/run/tikhub/fetch \
  -H "Authorization: Bearer $VAAYA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"endpoint": "/api/v1/twitter/web/fetch_search_timeline", "keyword": "vaaya"}'
curl -X POST https://vaaya.ai/api/run/tikhub/fetch \
  -H "Authorization: Bearer $VAAYA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"endpoint": "/api/v1/douyin/web/fetch_user_post_videos", "sec_user_id": "MS4wLjABAAAA..."}'

LinkedIn policy

Gotchas

  • Price is flat per call and charged on success only.
  • Video-download style endpoints run up to 38¢ — vaaya/discover shows the real price_cents per endpoint before you call.
  • A 503 upstream_not_configured means the vendor is temporarily unavailable — nothing is charged; see Errors & billing.