Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use this skill whenever a task involves the TikTok Platform API (developers.tiktok.com - Login Kit, Content Posting, Video/Display API, Research Tools, Mini Games/Dramas, Scopes) or the TikTok Shop Partner API (partner.tiktokshop.com - Orders, Products, Authorization, Webhooks, Logistics, Finance, Affiliate, Return/Refund, and the Node.js SDK). Provides consolidated local reference docs and TypeScript SDK models so integration code (auth, signing, endpoints, webhooks) can be written correctly wi
.claude/skills/rioanandaputra-bot-tiktok-docs/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 120% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 217% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 0% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 165% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 163% | 0% |
> Untuk AI Agent - Claude Code, OpenClaw, Hermes Agent, dan agent lain yang bisa membaca skill file.
Skill ini memberikan akses ke dua korpus dokumentasi TikTok, dikonsolidasikan menjadi file-file gabungan (bukan lagi ribuan file kecil) agar ringkas dan mudah di-grep.
| Sumber | Direktori | Format | Cakupan | |---|---|---|---| | developers.tiktok.com | docs/developers_tiktok_com/ | .md per kategori | Platform API: Login, Video, Content, Live, Research, dll | | partner.tiktokshop.com (docs) | docs/partner_tiktokshop_com/ | .json per kategori (array record) | Shop API: Order, Product, Auth, Webhook, Logistics, dll | | partner.tiktokshop.com (SDK) | docs/partner_tiktokshop_com_sdk_models/ | .ts per modul | Model TypeScript Node.js SDK, digabung per modul |
Selalu baca file docs yang relevan sebelum menulis kode integrasi TikTok.
> Semua path docs/... di bawah relatif terhadap direktori skill ini (base directory yang ditampilkan saat skill di-load), bukan working directory project.
docs/developers_tiktok_com/Satu file .md per kategori top-level (contoh: Login_Kit.md, Content_Posting_API.md, Display_API.md, Research_Tools.md, dst). Tiap file berisi gabungan semua dokumen asli di kategori itu, dipisahkan dengan penanda:
---
## SOURCE: <path relatif file asli>docs/partner_tiktokshop_com/Satu file .json per kategori (API_Reference.json, Partner_Guide.json, Developer_Guide.json, Changelog.json, Webhooks.json, Terms_and_Policies.json). Tiap file adalah array of records:
json[ { "path": "Products/Create Product.json", "data": { "meta": {...}, "detail": {...} } }, ... ]
Skema data per shape ada di Bagian 2.
docs/partner_tiktokshop_com_sdk_models/Satu file .ts per modul SDK (product.ts, order.ts, returnRefund.ts, finance.ts, affiliate.ts, affiliateCreator.ts, affiliatePartner.ts, affiliateSeller.ts, analytics.ts, authorization.ts, customerService.ts, dataReconciliation.ts, event.ts, fulfillment.ts, logistics.ts, open.ts, promotion.ts, seller.ts, supplyChain.ts), plus _utils.ts dan _sdk_README.md. Model didefinisikan sebagai export class (bukan interface) hasil OpenAPI Generator, lengkap dengan attributeTypeMap (mapping properti camelCase <-> field API snake_case). Tiap definisi diberi penanda:
// ==== SOURCE: <path relatif file asli> ====data tiap record)Shape A - API Reference (API_Reference.json, meta.is_api_doc: true)
json{ "meta": { "document_id": "...", "name": "Create Product", "document_path": "...", "is_api_doc": true, "keywords": [...], ... }, "detail": { "document_id": "...", "document_api_meta": { "title": "...", "interface_path": "/product/202309/products", "method": 1, "query": "https://open-api.tiktokglobalshop.com/...?app_key=...&sign=...×tamp=...", "request_header_param": [...], "request_query_param": [...], "request_body_param": [...], "response_param": [...], "request_body": "...", "response_body": "...", "error_code_list": [...] } } }
method numerik: 1=POST, 2=GET, 3=PUT, 4=DELETE. Versi API ada di interface_path (segmen 202309 dll). query adalah contoh URL lengkap.
Shape B - Guide / Panduan (file selain API_Reference, meta.is_api_doc: false)
json{ "meta": { ... }, "detail": { "title": "...", "content": "<HTML>", "doc_type": ..., "keywords": [...], "update_time": ..., "next_document_path": "...", "prev_document_path": "..." } }
Shape C - Metadata Fallback (fetch gagal; hanya segelintir record, mis. di Developer_Guide.json)
json{ "note": "Konten tidak tersedia via API publik.", "url": "https://partner.tiktokshop.com/docv2/page/...", "meta": { ... } }
> Jika menemukan Shape C, buka url-nya via fetch tool untuk konten live.
Cari endpoint tertentu (mis. "Create Product"): file JSON besar (satu baris), jangan di-Read langsung - parse per record:
bashpython3 -c " import json data = json.load(open('docs/partner_tiktokshop_com/API_Reference.json')) for r in data: if 'create product' in r['path'].lower(): m = r['data']['detail']['document_api_meta'] print(r['path'], {1:'POST',2:'GET',3:'PUT',4:'DELETE'}[m['method']], m['interface_path']) print(json.dumps(m['request_body_param'], indent=1)[:3000]) "
Daftar semua endpoint: loop record, print r['path'] + interface_path.
Cari model TypeScript (mis. product SKU):
bashgrep -n "class.*Sku" docs/partner_tiktokshop_com_sdk_models/product.ts # Lalu Read file di sekitar line number match untuk lihat properti + attributeTypeMap
Pahami alur autentikasi (Shop API):
docs/partner_tiktokshop_com/Developer_Guide.json - record dengan path:
"Get started/Authorization/..." -> alur OAuth shop
"TikTok Shop API concepts/Sign your API request.json" -> spec HMAC sign
"Get started/Make your first API call/..." -> contoh end-to-end
docs/partner_tiktokshop_com/API_Reference.json - filter path mengandung "Authorization"Untuk Platform API: docs/developers_tiktok_com/Login_Kit.md.
Implementasi webhook:
1. docs/partner_tiktokshop_com/Webhooks.json (semua record)
2. grep -i "webhook" docs/partner_tiktokshop_com/Developer_Guide.jsonVideo / Content API:
1. docs/developers_tiktok_com/Content_Posting_API.md
2. docs/developers_tiktok_com/Display_API.mddevelopers.tiktok.com)https://open.tiktokapis.com/v2/Authorization: Bearer <access_token>partner.tiktokshop.com)https://open-api.tiktokglobalshop.comapp_key, timestamp, access_token, dan sign/product/202309/productspage_tokenjson { "code": 0, "message": "Success", "request_id": "...", "data": {} } code: 0 = sukses. Non-zero = error.
| Masalah | Yang Harus Dicek | |---|---| | sign mismatch | Urutan sort param, exclude access_token dari sign, versi API | | access_token expired | Implementasi refresh flow; token Platform API ~24 jam | | Error permission / scope | Pastikan scope aktif di app + re-authorize user | | Webhook signature invalid | Verifikasi header x-tts-signature - baca Webhooks.json | | Data terpotong di list | Loop via page_token sampai kosong |
bashpython scripts/developers_tiktok_com.py python scripts/partner_tiktokshop_com.py
Resume otomatis - file yang sudah ada dilewati. Naikkan DELAY_SECONDS jika terkena rate limit.
> Script menghasilkan struktur mentah per-file (ribuan file kecil). Jalankan langkah konsolidasi (merge per kategori sesuai layout Bagian 1) sebelum mengganti isi docs/, agar tetap ringkas dan mudah di-grep.
Aktifkan skill ini untuk task yang menyebut: TikTok API, TikTok Shop, Login Kit, Content Posting, Video API, open.tiktokapis.com, tiktokglobalshop, HMAC sign TikTok, TikTok webhook, TikTok OAuth
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 15,601 | 7,886 | -49% | 1 | 1 | 0% | 3,753 | 2,953 | -21% | 0 | 0 | — |
case-02 | fail→fail | 11,928 | 24,315 | +104% | 1 | 1 | 0% | 2,418 | 2,833 | +17% | 0 | 0 | — |
case-03 | pass→pass | 4,661 | 2,813 | -40% | 1 | 1 | 0% | 893 | 2,905 | +225% | 0 | 0 | — |
case-04 | fail→pass | 8,243 | 3,170 | -62% | 1 | 1 | 0% | 1,297 | 2,849 | +120% | 0 | 0 | — |
case-05 | fail→pass | 5,304 | 1,703 | -68% | 1 | 1 | 0% | 859 | 2,725 | +217% | 0 | 0 | — |
case-06 | fail→pass | 15,993 | 1,822 | -89% | 1 | 1 | 0% | 2,660 | 2,670 | +0% | 0 | 0 | — |
case-07 | fail→pass | 5,986 | 3,076 | -49% | 1 | 1 | 0% | 1,047 | 2,775 | +165% | 0 | 0 | — |
case-08 | fail→pass | 5,920 | 2,019 | -66% | 1 | 1 | 0% | 1,046 | 2,754 | +163% | 0 | 0 | — |
case-09 | fail→pass | 9,276 | 1,810 | -80% | 1 | 1 | 0% | 1,510 | 2,686 | +78% | 0 | 0 | — |
case-10 | pass→pass | 13,158 | 4,058 | -69% | 1 | 1 | 0% | 2,160 | 3,146 | +46% | 0 | 0 | — |
case-11 | fail→pass | 8,480 | 2,045 | -76% | 1 | 1 | 0% | 1,524 | 2,762 | +81% | 0 | 0 | — |
case-12 | fail→pass | 8,330 | 2,667 | -68% | 1 | 1 | 0% | 1,342 | 2,781 | +107% | 0 | 0 | — |
case-13 | fail→pass | 9,096 | 2,509 | -72% | 1 | 1 | 0% | 1,377 | 2,831 | +106% | 0 | 0 | — |
case-14 | pass→pass | 4,244 | 3,138 | -26% | 1 | 1 | 0% | 720 | 2,981 | +314% | 0 | 0 | — |
case-15 | pass→pass | 4,405 | 3,857 | -12% | 1 | 1 | 0% | 698 | 2,977 | +327% | 0 | 0 | — |
case-16 | fail→pass | 11,961 | 3,512 | -71% | 1 | 1 | 0% | 1,682 | 3,052 | +81% | 0 | 0 | — |
case-17 | fail→pass | 8,517 | 2,007 | -76% | 1 | 1 | 0% | 1,441 | 2,736 | +90% | 0 | 0 | — |
case-18 | fail→pass | 3,832 | 1,922 | -50% | 1 | 1 | 0% | 701 | 2,716 | +287% | 0 | 0 | — |
case-19 | pass→pass | 8,459 | 4,076 | -52% | 1 | 1 | 0% | 1,638 | 3,160 | +93% | 0 | 0 | — |
case-20 | pass→pass | 11,438 | 9,394 | -18% | 1 | 1 | 0% | 2,289 | 4,277 | +87% | 0 | 0 | — |
case-21 | pass→pass | 2,883 | 2,385 | -17% | 1 | 1 | 0% | 495 | 2,802 | +466% | 0 | 0 | — |
case-22 | pass→pass | 13,860 | 13,223 | -5% | 1 | 1 | 0% | 2,816 | 5,347 | +90% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +55 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.