Mulai
API v1
API v1
Dasar: https://clawhub.ai
OpenAPI: /api/v1/openapi.json
Penggunaan ulang katalog publik
Anda dapat membangun katalog, direktori, atau sarana pencarian pihak ketiga berdasarkan API baca publik ClawHub. Metadata Skills publik dan file Skills dipublikasikan berdasarkan aturan lisensi Skills ClawHub, sedangkan API itu sendiri memiliki batas laju dan harus digunakan secara bertanggung jawab.
Pedoman:
- Gunakan endpoint baca publik seperti
GET /api/v1/skills,GET /api/v1/search, danGET /api/v1/skills/{slug}untuk daftar katalog. - Simpan respons dalam cache dan patuhi
429,Retry-After, serta header batas laju, alih-alih melakukan polling secara agresif. - Tautkan kembali ke URL Skills ClawHub kanonis saat menampilkan daftar agar pengguna dapat memeriksa rekaman registri sumber.
- Gunakan URL halaman kanonis dalam bentuk
https://clawhub.ai/<owner>/skills/<slug>. - Jangan menyiratkan bahwa ClawHub mendukung, memverifikasi, atau mengoperasikan situs pihak ketiga tersebut.
- Jangan mencerminkan konten tersembunyi, privat, atau yang diblokir moderasi dengan melewati filter API publik atau batas autentikasi.
Autentikasi
- Baca publik: tidak memerlukan token.
- Tulis + akun:
Authorization: Bearer clh_....
Batas laju
Penerapan yang memperhitungkan autentikasi:
-
Permintaan anonim: per IP.
-
Permintaan terautentikasi (token Bearer yang valid): per bucket pengguna.
-
Token yang tidak ada/tidak valid kembali menggunakan penerapan per IP.
-
Baca: 3000/menit per IP, 12000/menit per kunci
-
Tulis: 300/menit per IP, 3000/menit per kunci
-
Unduh: 1200/menit per IP, 6000/menit per kunci
Header: X-RateLimit-Limit, X-RateLimit-Reset, RateLimit-Limit, RateLimit-Reset;
X-RateLimit-Remaining, RateLimit-Remaining, dan Retry-After disertakan pada 429.
Semantik:
X-RateLimit-Reset: detik epoch Unix (waktu reset absolut)RateLimit-Reset: penundaan dalam detik hingga resetX-RateLimit-Remaining/RateLimit-Remaining: anggaran tersisa yang tepat jika tersedia; permintaan ter-shard yang berhasil tidak menyertakannya alih-alih mengembalikan nilai global perkiraanRetry-After: penundaan dalam detik yang harus ditunggu pada429
Contoh 429:
HTTP/2 429x-ratelimit-limit: 20x-ratelimit-remaining: 0x-ratelimit-reset: 1771404540ratelimit-limit: 20ratelimit-remaining: 0ratelimit-reset: 34retry-after: 34Penanganan klien:
- Utamakan
Retry-Afterjika tersedia. - Jika tidak, gunakan
RateLimit-Resetatau hitung penundaan dariX-RateLimit-Reset. - Tambahkan jitter pada percobaan ulang.
Kesalahan
- Kesalahan v1 berupa teks biasa (
text/plain; charset=utf-8), termasuk400,401,403,404,429, dan respons unduhan yang diblokir. - Parameter kueri yang tidak dikenal diabaikan demi kompatibilitas.
- Parameter kueri yang dikenal dengan nilai tidak valid mengembalikan
400.
Endpoint
Baca publik:
GET /api/v1/search?q=...- Filter opsional:
highlightedOnly=true,nonSuspiciousOnly=true - Alias lama:
nonSuspicious=true
- Filter opsional:
GET /api/v1/skills?limit=&cursor=&sort=sort:updated(bawaan),recommended(default),createdAt(newest),downloads,stars(rating), alias instalasi lamainstallsCurrent/installs/installsAllTimedipetakan kedownloads,trending- Nilai
sortyang tidak valid mengembalikan400 cursorberlaku untuk pengurutan selaintrending- Filter opsional:
nonSuspiciousOnly=true - Alias lama:
nonSuspicious=true - Dengan
nonSuspiciousOnly=true, halaman berbasis kursor dapat memuat lebih sedikit darilimititem; gunakannextCursoruntuk melanjutkan. recommendedmenggunakan sinyal keterlibatan dan keterkinian.
GET /api/v1/skills/{slug}GET /api/v1/skills/{slug}/moderationGET /api/v1/skills/{slug}/versions?limit=&cursor=GET /api/v1/skills/{slug}/versions/{version}GET /api/v1/skills/{slug}/scan?version=&tag=GET /api/v1/skills/{slug}/file?path=&version=&tag=GET /api/v1/resolve?slug=&hash=GET /api/v1/download?slug=&version=&tag=- Skills yang dihosting mengembalikan byte ZIP deterministik.
- Skills berbasis GitHub saat ini dengan pemindaian
cleanataususpiciousmengembalikan deskriptor serah terima JSONpublic-github, bukan byte ClawHub.
GET /api/v1/skills/export?startDate=&endDate=&limit=&cursor=- Skills yang dihosting diekspor sebagai file yang tersimpan.
- Skills berbasis GitHub saat ini dengan pemindaian
cleanataususpiciousdiekspor sebagai deskriptor serah terimapublic-github.
GET /api/v1/packages?limit=&cursor=&sort=sort:updated(bawaan),recommended,downloads, alias lamainstalls- Nilai
sortyang tidak valid mengembalikan400
GET /api/v1/plugins?limit=&cursor=&sort=sort:recommended(bawaan),downloads,updated, alias lamainstalls
GET /api/v1/plugins/search?q=...GET /api/v1/packages/{name}/versions/{version}/artifactGET /api/v1/packages/{name}/versions/{version}/securityGET /api/v1/packages/{name}/versions/{version}/artifact/downloadGET /api/npm/{package}GET /api/npm/{package}/-/{tarball}.tgz
Memerlukan autentikasi:
POST /api/v1/skills(publikasi, multipart lebih diutamakan)DELETE /api/v1/skills/{slug}DELETE /api/v1/packages/{name}POST /api/v1/skills/{slug}/undeletePOST /api/v1/packages/{name}/undeletePOST /api/v1/skills/{slug}/renamePOST /api/v1/skills/{slug}/mergePOST /api/v1/skills/{slug}/transferPOST /api/v1/packages/{name}/transferPOST /api/v1/skills/{slug}/transfer/acceptPOST /api/v1/skills/{slug}/transfer/rejectPOST /api/v1/skills/{slug}/transfer/cancelGET /api/v1/skills/export?startDate=&endDate=&limit=&cursor=GET /api/v1/plugins/export?startDate=&endDate=&limit=&cursor=&family=GET /api/v1/transfers/incomingGET /api/v1/transfers/outgoingGET /api/v1/whoami
Khusus admin:
POST /api/v1/users/reservemencadangkan slug root dan placeholder paket privat tanpa rilis untuk handle pemilik.
Lama
/api/* dan /api/cli/* lama masih tersedia. Lihat DEPRECATIONS.md.