Docs/ Referencia API/ Inicio rápido

Inicio rápido de API

Haga su primera llamada a la API de sh0 en pocos minutos: cree una clave de API, liste sus apps, vuelva a desplegar una y lea los formatos de respuesta.

Note
La API la sirve su panel sh0, en su dominio una vez configurado; si no, en el puerto 9000 del servidor. Cada ruta empieza por /api/v1. Los ejemplos usan https://panel.example.com: sustitúyalo por su propia dirección.

Crear una clave de API

En el panel, abra Configuración → Claves API, cree una clave con el nivel de acceso que necesite y cópiela: solo se muestra una vez. Los niveles de acceso se explican en Autenticación de la API. Después guárdela en una variable de entorno:

Terminal
export SH0_TOKEN="sh0_..."
Warning
Trate la clave como una contraseña: guárdela en un almacén de secretos o en una variable de entorno, nunca en un repositorio. Revóquela desde Configuración → Claves API en cuanto haya podido filtrarse.

Paso 2: Listar tus apps

Liste sus aplicaciones. Cualquier nivel de acceso lo permite:

Terminal
curl https://panel.example.com/api/v1/apps \
  -H "Authorization: Bearer $SH0_TOKEN"

Volver a desplegar una app

Lance un nuevo despliegue de una app existente con su ID tomado de la lista. Requiere el nivel Despliegue o Administración. El cuerpo puede estar vacío, pero debe ser JSON válido:

Terminal
curl -X POST https://panel.example.com/api/v1/apps/APP_ID/deployments \
  -H "Authorization: Bearer $SH0_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

Para crear una app a partir de su propio código, el camino más corto es la CLI: sh0 push sube el directorio de su proyecto como archivo y lo despliega, con o sin Dockerfile.

Formato de respuesta

Todas las respuestas de la API de sh0 siguen un formato consistente:

Respuestas exitosas:

Success Format
{
  "data": { ... }
}

Respuestas de lista con paginación:

List Format
{
  "data": [ ... ],
  "total": 42,
  "page": 1,
  "per_page": 20,
  "pages": 3
}

Respuestas de error:

Error Format
{
  "error": {
    "code": "NOT_FOUND",
    "message": "App with id 'app_xyz' not found"
  }
}

Paginación

Los endpoints de lista soportan paginación con dos parámetros de consulta:

ParámetroPor defectoDescripción
page1Número de página (indexado desde 1)
per_page20Elementos por página (máximo 100)
Terminal
# Get page 2, 50 items per page
curl "https://panel.example.com/api/v1/apps/APP_ID/deployments?page=2&per_page=50" \
  -H "Authorization: Bearer $SH0_TOKEN"

Manejo de errores

La API usa códigos de estado HTTP estándar. Estos son los más comunes:

EstadoSignificado
200Éxito
201Recurso creado
400Solicitud inválida (parámetros inválidos)
401No autorizado (token faltante o inválido)
403Prohibido (permisos insuficientes)
404Recurso no encontrado
409Conflicto (nombre duplicado, etc.)
422Error de validación
429Tasa limitada
500Error interno del servidor
Tip
Siempre verifica el campo error.code para el manejo programático de errores en lugar de analizar la cadena del mensaje, que puede cambiar entre versiones.

Próximos pasos

Ahora que puedes autenticarte y hacer llamadas API básicas, explora las capacidades completas de la API de sh0:

Explorador API de sh0 mostrando categorías de endpoints disponibles