Comenzar
API v1
API v1
Base: https://clawhub.ai
OpenAPI: /api/v1/openapi.json
Reutilización del catálogo público
Se puede crear un catálogo, directorio o sistema de búsqueda de terceros sobre las API públicas de lectura de ClawHub. Los metadatos y archivos públicos de Skills se publican conforme a las reglas de licencia de Skills de ClawHub, mientras que la propia API está sujeta a límites de frecuencia y debe utilizarse de forma responsable.
Directrices:
- Utilice endpoints públicos de lectura como
GET /api/v1/skills,GET /api/v1/searchyGET /api/v1/skills/{slug}para los listados del catálogo. - Almacene las respuestas en caché y respete
429,Retry-Aftery los encabezados de límite de frecuencia en lugar de realizar consultas frecuentes de forma agresiva. - Incluya un enlace a la URL canónica de la Skill de ClawHub al mostrar los listados para que los usuarios puedan inspeccionar el registro de origen.
- Utilice URL de páginas canónicas con el formato
https://clawhub.ai/<owner>/skills/<slug>. - No dé a entender que ClawHub respalda, verifica u opera el sitio de terceros.
- No replique contenido oculto, privado o bloqueado por moderación eludiendo los filtros de la API pública o los límites de autenticación.
Autenticación
- Lectura pública: no se requiere token.
- Escritura y cuenta:
Authorization: Bearer clh_....
Límites de frecuencia
Aplicación según la autenticación:
-
Solicitudes anónimas: por IP.
-
Solicitudes autenticadas (token Bearer válido): por cuota de usuario.
-
Si falta el token o no es válido, se aplica el límite por IP.
-
Lectura: 3000/min por IP, 12000/min por clave
-
Escritura: 300/min por IP, 3000/min por clave
-
Descarga: 1200/min por IP, 6000/min por clave
Encabezados: X-RateLimit-Limit, X-RateLimit-Reset, RateLimit-Limit, RateLimit-Reset;
X-RateLimit-Remaining, RateLimit-Remaining y Retry-After se incluyen en 429.
Semántica:
X-RateLimit-Reset: segundos desde la época Unix (hora absoluta de restablecimiento)RateLimit-Reset: segundos de espera hasta el restablecimientoX-RateLimit-Remaining/RateLimit-Remaining: presupuesto restante exacto cuando está presente; las solicitudes distribuidas que se realizan correctamente lo omiten en lugar de devolver un valor global aproximadoRetry-After: segundos que se deben esperar en429
Ejemplo de 429:
HTTP/2 429x-ratelimit-limit: 20x-ratelimit-remaining: 0x-ratelimit-reset: 1771404540ratelimit-limit: 20ratelimit-remaining: 0ratelimit-reset: 34retry-after: 34Gestión del cliente:
- Dé preferencia a
Retry-Aftercuando esté presente. - En caso contrario, utilice
RateLimit-Reseto calcule la espera a partir deX-RateLimit-Reset. - Añada una variación aleatoria a los reintentos.
Errores
- Los errores de v1 son texto sin formato (
text/plain; charset=utf-8), incluidos400,401,403,404,429y las respuestas de descarga bloqueada. - Los parámetros de consulta desconocidos se ignoran por compatibilidad.
- Los parámetros de consulta conocidos con valores no válidos devuelven
400.
Endpoints
Lectura pública:
GET /api/v1/search?q=...- Filtros opcionales:
highlightedOnly=true,nonSuspiciousOnly=true - Alias heredado:
nonSuspicious=true
- Filtros opcionales:
GET /api/v1/skills?limit=&cursor=&sort=sort:updated(predeterminado),recommended(default),createdAt(newest),downloads,stars(rating), los alias heredados de instalacióninstallsCurrent/installs/installsAllTimese asignan adownloads,trending- Los valores no válidos de
sortdevuelven400 cursorse aplica a las ordenaciones distintas detrending- Filtro opcional:
nonSuspiciousOnly=true - Alias heredado:
nonSuspicious=true - Con
nonSuspiciousOnly=true, las páginas basadas en cursor pueden contener menos delimitelementos; utilicenextCursorpara continuar. recommendedutiliza señales de interacción y actualidad.
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=- Las Skills alojadas devuelven bytes ZIP deterministas.
- Las Skills actuales respaldadas por GitHub con un análisis
cleanosuspiciousdevuelven un descriptor JSON de transferenciapublic-githuben lugar de bytes de ClawHub.
GET /api/v1/skills/export?startDate=&endDate=&limit=&cursor=- Las Skills alojadas se exportan como archivos almacenados.
- Las Skills actuales respaldadas por GitHub con un análisis
cleanosuspiciousse exportan como descriptores de transferenciapublic-github.
GET /api/v1/packages?limit=&cursor=&sort=sort:updated(predeterminado),recommended,downloads, alias heredadoinstalls- Los valores no válidos de
sortdevuelven400
GET /api/v1/plugins?limit=&cursor=&sort=sort:recommended(predeterminado),downloads,updated, alias heredadoinstalls
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
Se requiere autenticación:
POST /api/v1/skills(publicación; se prefiere 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
Solo para administradores:
POST /api/v1/users/reservereserva slugs raíz y marcadores de posición privados de paquetes sin versión para el identificador de un propietario.
Heredado
Los antiguos /api/* y /api/cli/* siguen disponibles. Consulte DEPRECATIONS.md.