はじめに
API v1
API v1
ベース: https://clawhub.ai
OpenAPI: /api/v1/openapi.json
公開カタログの再利用
ClawHub の公開読み取り API を基盤として、サードパーティのカタログ、ディレクトリ、または検索インターフェースを構築できます。公開されている Skills のメタデータとファイルは ClawHub の Skills ライセンス規則に従って公開されています。一方、API 自体にはレート制限があるため、責任を持って使用してください。
ガイドライン:
- カタログ一覧には、
GET /api/v1/skills、GET /api/v1/search、GET /api/v1/skills/{slug}などの公開読み取りエンドポイントを使用します。 - 頻繁なポーリングは避け、レスポンスをキャッシュし、
429、Retry-After、およびレート制限ヘッダーに従います。 - 一覧を表示する際は、ユーザーがソースレジストリのレコードを確認できるように、正規の ClawHub Skills URL へのリンクを設定します。
- ページの正規 URL には
https://clawhub.ai/<owner>/skills/<slug>の形式を使用します。 - 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 のエラーはプレーンテキスト(
text/plain; charset=utf-8)です。これには400、401、403、404、429、およびブロックされたダウンロードのレスポンスが含まれます。 - 互換性のため、不明なクエリパラメーターは無視されます。
- 既知のクエリパラメーターに無効な値を指定すると、
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 バイト列を返します。
cleanまたはsuspiciousのスキャン結果を持つ現在の GitHub ベースの Skills は、ClawHub のバイト列ではなく、 JSON のpublic-github引き継ぎ記述子を返します。
GET /api/v1/skills/export?startDate=&endDate=&limit=&cursor=- ホストされている Skills は、保存されているファイルのままエクスポートされます。
cleanまたはsuspiciousのスキャン結果を持つ現在の GitHub ベースの Skills は、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は、所有者のハンドル用にルートスラッグと非公開のリリースなしパッケージプレースホルダーを予約します。
レガシー
レガシーの /api/* と /api/cli/* は引き続き利用できます。DEPRECATIONS.md を参照してください。
Was this useful?