TikHub API Python SDK
High-performance asynchronous Douyin(抖音) TikTok Xiaohongshu(小红书) Kuaishou(快手) Weibo(微博) Instagram YouTube(油管) Twitter(X) Captcha Solver(验证码解决器) Temp Mail(临时邮箱) API(接口).
Ask AI about TikHub API Python SDK
Powered by Claude · Grounded in docs
I know everything about TikHub API Python SDK. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
TikHub API Python SDK
English | 中文 | Français | Español | 日本語
The official Python SDK for the TikHub social media data API — a unified REST API that provides real-time access to 16+ social media platforms including TikTok, Douyin, Instagram, YouTube, Twitter/X, Xiaohongshu (Red Note), Bilibili, Weibo, Threads, LinkedIn, Reddit, Kuaishou, WeChat, Lemon8, Zhihu, and more.
Built for developers, data scientists, and AI engineers who need structured social media data at scale — for AI training, influencer analytics, trend monitoring, sentiment analysis, market research, and competitive intelligence.
Why TikHub?
- 1000+ endpoints across 16 platforms through a single API key
- Real-time data — video details, user profiles, comments, search results, live streams, trending content, and e-commerce analytics
- RESTful & OpenAPI-native — every endpoint is documented in the OpenAPI spec and testable via Swagger UI
- MCP integration — connect AI agents (Claude, LangChain, Coze, n8n) directly to social media data via Model Context Protocol
- Datasets available — 1B+ pre-collected, structured records for training and research
Why This SDK?
- 100% endpoint coverage — 1010 / 1010 endpoints from OpenAPI spec V5.3.2, mechanically generated and verified
- Sync + async —
TikHubandAsyncTikHubclients with identical APIs - Production-ready — automatic retries with exponential backoff, rate-limit handling, structured error hierarchy with full debugging context
- Type-safe —
mypy --strictclean, built onhttpx+pydantic v2 - Zero config — flat kwargs, no config objects; set one env var and go
Version:
2.1.1— Requires Python 3.9+
Supported Platforms
| Platform | Resource | Endpoints |
|---|---|---|
| TikTok | tiktok_web, tiktok_app_v3, tiktok_creator, tiktok_analytics, tiktok_ads, tiktok_shop_web | 200+ |
| Douyin | douyin_web, douyin_app_v3, douyin_search, douyin_billboard, douyin_creator, douyin_xingtu | 400+ |
instagram_v1, instagram_v2, instagram_v3 | 80+ | |
| YouTube | youtube_web, youtube_web_v2 | 50+ |
| Twitter / X | twitter_web | 13+ |
| Xiaohongshu (Red Note) | xiaohongshu_web, xiaohongshu_app (+ v2/v3 variants) | 80+ |
| Bilibili | bilibili_web, bilibili_app | 40+ |
weibo_web, weibo_web_v2, weibo_app | 30+ | |
| Threads | threads_web | 10+ |
linkedin_web | 10+ | |
reddit_app | 10+ | |
| Kuaishou | kuaishou_web, kuaishou_app | 20+ |
wechat_channels, wechat_media_platform_web | 20+ | |
| Lemon8 | lemon8_app | 10+ |
| Zhihu | zhihu_web | 30+ |
| Others | toutiao_web, toutiao_app, xigua_app_v2, pipixia_app, sora2 | 30+ |
Install
pip install tikhub
Requires Python 3.9+.
From source
git clone https://github.com/TikHub/TikHub-API-Python-SDK.git
cd TikHub-API-Python-SDK
pip install -e ".[dev]"
pytest -q
Get your API Key
- Go to https://user.tikhub.io/login and sign up / log in.
- Copy your API key from the dashboard.
- Set it as an environment variable or pass it directly:
export TIKHUB_API_KEY="YOUR_API_KEY"
Quickstart
from tikhub import TikHub
client = TikHub(api_key="YOUR_API_KEY")
# 1:1 with the OpenAPI spec — resource = tag, method = path basename
video = client.douyin_web.fetch_one_video(aweme_id="7251234567890123456")
print(video.aweme_detail.desc)
client.close()
Or with the recommended context manager:
with TikHub(api_key="YOUR_API_KEY") as client:
health = client.health_check.check()
print(health.status)
Async
import asyncio
from tikhub import AsyncTikHub
async def main():
async with AsyncTikHub(api_key="YOUR_API_KEY") as client:
video = await client.douyin_web.fetch_one_video(aweme_id="...")
print(video.aweme_detail.desc)
asyncio.run(main())
Configuration
The constructor takes one required argument and a small handful of optional kwargs:
TikHub(
api_key=None, # str | None — defaults to $TIKHUB_API_KEY
timeout=30, # float | None — total request timeout in seconds
base_url=None, # str | None — only override for a private mirror
# Advanced (rare):
max_retries=3,
proxy=None,
user_agent=None,
parse_response=True,
http_client=None, # bring your own httpx.Client
)
That's the entire configuration surface. There is no ClientConfig object — knobs are flat kwargs.
Naming rules
The SDK is mechanically derived from the TikHub OpenAPI spec. Two rules:
- Resource attribute = OpenAPI tag, lowercased, dashes → underscores,
-APIstripped.Douyin-Web-API→client.douyin_web.TikTok-App-V3-API→client.tiktok_app_v3. - Method name = the last segment of the API path, verbatim.
/api/v1/douyin/web/fetch_one_video→client.douyin_web.fetch_one_video(...).
Parameter names match the OpenAPI spec verbatim. If you can read the TikHub API docs, you already know how to use the SDK.
Status
100% endpoint coverage against TikHub OpenAPI spec V5.3.2.
| Resources | 52 (one per OpenAPI tag) |
| Endpoints | 1010 / 1010 |
| Tests | 110 passing |
| Type-check | mypy --strict clean across 71 source files |
| Lint | ruff clean |
| Phase | Scope | State |
|---|---|---|
| 0 | Foundation: client, transport, errors, retries, pagination | ✅ done |
| 1 | Codegen pipeline (scripts/refresh_spec.py, generate_resources.py, verify_coverage.py) | ✅ done |
| 2 | Douyin + TikTok core (412 endpoints) | ✅ done |
| 3 | Other Chinese platforms (302 endpoints) | ✅ done |
| 4 | International platforms (234 endpoints) | ✅ done |
| 5 | TikTok specialty + utilities (94 endpoints) | ✅ done |
| 6 | Docs site, CLI, migration guide, release workflow | ✅ done |
The resource layer is mechanically generated from spec/openapi.json. To refresh after a TikHub spec update:
python scripts/refresh_spec.py # pulls latest openapi.json, prints diff
python scripts/generate_resources.py # regenerates all 52 resource files + clients
python scripts/generate_docs.py # regenerates docs/reference.md
python scripts/verify_coverage.py # asserts 100% coverage
pytest -q # 110 tests
CLI
A small console wrapper ships in the cli extra:
pip install "tikhub[cli]"
export TIKHUB_API_KEY="YOUR_API_KEY"
tikhub health # ping the API
tikhub fetch https://v.douyin.com/abc/ # universal video URL parser
tikhub user info # plan + quota
tikhub user usage # today's request count
Every command prints JSON to stdout — pipe to jq or any other formatter.
Documentation
Full docs (mkdocs-material): authentication, async, errors, pagination, retries, logging, CLI, migration guide, naming rules, and the auto-generated reference for all 1010 endpoints.
pip install -e ".[docs]"
mkdocs serve # http://127.0.0.1:8000
License
MIT.
