Get started
API v1
API v1
ベース: https://clawhub.ai
OpenAPI: /api/v1/openapi.json
公開カタログの再利用
ClawHub の公開読み取り API の上に、サードパーティのカタログ、ディレクトリ、検索サーフェスを構築できます。公開 skill メタデータと skill ファイルは ClawHub の skill ライセンス規則に基づいて公開されます。一方で API 自体にはレート制限があり、責任を持って利用する必要があります。
ガイドライン:
- カタログ一覧には、
GET /api/v1/skills、GET /api/v1/search、GET /api/v1/skills/{slug}などの公開読み取りエンドポイントを使用します。 - 積極的にポーリングするのではなく、レスポンスをキャッシュし、
429、Retry-After、レート制限ヘッダーを尊重します。 - 一覧を表示するときは、ユーザーがソースのレジストリレコードを確認できるように、正規の ClawHub skill URL へリンクします。
https://clawhub.ai/<owner>/skills/<slug>の形式の正規ページ URL を使用します。- ClawHub がそのサードパーティサイトを推奨、検証、運営していると示唆しないでください。
- 公開 API フィルターや認証境界を迂回して、非表示、非公開、またはモデレーションでブロックされたコンテンツをミラーしないでください。
認証
- 公開読み取り: トークン不要。
- 書き込み + アカウント:
Authorization: Bearer clh_...。
レート制限
認証を考慮した適用:
-
匿名リクエスト: IP ごと。
-
認証済みリクエスト(有効な Bearer トークン): ユーザーバケットごと。
-
トークンがない、または無効な場合は IP による適用にフォールバックします。
-
読み取り: IP ごとに 3000/分、キーごとに 12000/分
-
書き込み: IP ごとに 300/分、キーごとに 3000/分
-
ダウンロード: IP ごとに 1200/分、キーごとに 6000/分
ヘッダー: X-RateLimit-Limit、X-RateLimit-Reset、RateLimit-Limit、RateLimit-Reset;
X-RateLimit-Remaining、RateLimit-Remaining、Retry-After は 429 に含まれます。
セマンティクス:
X-RateLimit-Reset: Unix エポック秒(絶対リセット時刻)RateLimit-Reset: リセットまでの遅延秒数X-RateLimit-Remaining/RateLimit-Remaining: 存在する場合は正確な残り予算。シャーディングされた成功リクエストでは、近似のグローバル値を返すのではなく省略されますRetry-After:429で待機する遅延秒数
429 の例:
HTTP/2 429x-ratelimit-limit: 20x-ratelimit-remaining: 0x-ratelimit-reset: 1771404540ratelimit-limit: 20ratelimit-remaining: 0ratelimit-reset: 34retry-after: 34クライアントでの処理:
- 存在する場合は
Retry-Afterを優先します。 - それ以外の場合は
RateLimit-Resetを使用するか、X-RateLimit-Resetから遅延を導出します。 - リトライにジッターを追加します。
エラー
- v1 エラーは
400、401、403、404、429、およびブロックされたダウンロードレスポンスを含め、プレーンテキスト(text/plain; charset=utf-8)です。 - 不明なクエリパラメーターは互換性のため無視されます。
- 既知のクエリパラメーターに無効な値がある場合は
400を返します。
エンドポイント
公開読み取り:
GET /api/v1/search?q=...- 任意フィルター:
highlightedOnly=true、nonSuspiciousOnly=true - レガシーエイリアス:
nonSuspicious=true
- 任意フィルター:
GET /api/v1/skills?limit=&cursor=&sort=sort:updated(デフォルト)、recommended(default)、createdAt(newest)、downloads、stars(rating)、レガシーインストールエイリアスinstallsCurrent/installs/installsAllTimeはdownloadsにマップされます、trending- 無効な
sort値は400を返します cursorはtrending以外のソートに適用されます- 任意フィルター:
nonSuspiciousOnly=true - レガシーエイリアス:
nonSuspicious=true nonSuspiciousOnly=trueの場合、カーソルベースのページに含まれる項目数がlimitより少ないことがあります。続行するにはnextCursorを使用します。recommendedはエンゲージメントと新しさのシグナルを使用します。
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 は決定論的な ZIP バイトを返します。
- 現在の GitHub バックの Skills で
cleanまたはsuspiciousのスキャンがあるものは、ClawHub バイトの代わりに JSON のpublic-githubハンドオフ記述子を返します。
GET /api/v1/skills/export?startDate=&endDate=&limit=&cursor=- ホストされた Skills は保存済みファイルとしてエクスポートされます。
- 現在の GitHub バックの Skills で
cleanまたはsuspiciousのスキャンがあるものは、public-githubハンドオフ記述子としてエクスポートされます。
GET /api/v1/packages?limit=&cursor=&sort=sort:updated(デフォルト)、recommended、downloads、レガシーエイリアスinstalls- 無効な
sort値は400を返します
GET /api/v1/plugins?limit=&cursor=&sort=sort:recommended(デフォルト)、downloads、updated、レガシーエイリアスinstalls
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
認証が必要:
POST /api/v1/skills(公開、multipart 推奨)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
管理者のみ:
POST /api/v1/users/reserveはオーナーハンドル用にルート slug と非公開のリリースなしパッケージプレースホルダーを予約します。
レガシー
レガシーの /api/* と /api/cli/* は引き続き利用できます。DEPRECATIONS.md を参照してください。
Was this useful?