Get started
API v1
API v1
Base: https://clawhub.ai
OpenAPI: /api/v1/openapi.json
Reutilización del catálogo público
Puedes crear un catálogo, directorio o superficie de búsqueda de terceros sobre las API públicas de lectura de ClawHub. Los metadatos públicos de Skills y los archivos de Skills se publican bajo las reglas de licencia de Skills de ClawHub, mientras que la API en sí tiene límites de tasa y debe consumirse de forma responsable.
Pautas:
- Usa endpoints públicos de lectura como
GET /api/v1/skills,GET /api/v1/searchyGET /api/v1/skills/{slug}para listados de catálogo. - Almacena en caché las respuestas y respeta
429,Retry-Aftery los encabezados de límite de tasa en lugar de sondear agresivamente. - Enlaza a la URL canónica de Skills de ClawHub al mostrar listados para que los usuarios puedan inspeccionar el registro de origen del registro.
- Usa URL de página canónicas con la forma
https://clawhub.ai/<owner>/skills/<slug>. - No des a entender que ClawHub respalda, verifica u opera el sitio de terceros.
- No repliques contenido oculto, privado o bloqueado por moderación eludiendo filtros de la API pública o límites de autenticación.
Autenticación
- Lectura pública: no se requiere token.
- Escritura + cuenta:
Authorization: Bearer clh_....
Límites de tasa
Aplicación consciente de autenticación:
-
Solicitudes anónimas: por IP.
-
Solicitudes autenticadas (token Bearer válido): por grupo de usuario.
-
Un token ausente/no válido recurre a la aplicación 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 de época Unix (hora absoluta de restablecimiento)RateLimit-Reset: segundos de demora hasta el restablecimientoX-RateLimit-Remaining/RateLimit-Remaining: presupuesto restante exacto cuando está presente; las solicitudes exitosas fragmentadas lo omiten en lugar de devolver un valor global aproximadoRetry-After: segundos de demora que se deben esperar en429
Ejemplo 429:
HTTP/2 429x-ratelimit-limit: 20x-ratelimit-remaining: 0x-ratelimit-reset: 1771404540ratelimit-limit: 20ratelimit-remaining: 0ratelimit-reset: 34retry-after: 34Manejo del cliente:
- Prefiere
Retry-Aftercuando esté presente. - De lo contrario, usa
RateLimit-Reseto deriva la demora deX-RateLimit-Reset. - Añade 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 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 de instalación heredadosinstallsCurrent/installs/installsAllTimese asignan adownloads,trending- Los valores de
sortno válidos devuelven400 cursorse aplica a ordenaciones que no seantrending- Filtro opcional:
nonSuspiciousOnly=true - Alias heredado:
nonSuspicious=true - Con
nonSuspiciousOnly=true, las páginas basadas en cursor pueden contener menos delimitelementos; usanextCursorpara continuar. recommendedusa 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 de traspaso JSONpublic-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 traspasopublic-github.
GET /api/v1/packages?limit=&cursor=&sort=sort:updated(predeterminado),recommended,downloads, alias heredadoinstalls- Los valores de
sortno válidos devuelven400
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
Autenticación requerida:
POST /api/v1/skills(publicar, 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 administradores:
POST /api/v1/users/reservereserva slugs raíz y marcadores de posición de paquetes privados sin lanzamiento para un identificador de propietario.
Heredado
Los /api/* y /api/cli/* heredados siguen disponibles. Consulta DEPRECATIONS.md.