AstrApp
Docs

Endpoints

Las rutas de la API de AstrApp agrupadas por recurso, con las que aceptan API Key y sus límites de peticiones.

Cómo leer esta lista

Todas las rutas cuelgan de https://app.astrapp.lat/api/v1 y requieren autenticación. Las marcadas Solo sesión leen los datos con la sesión del navegador: llamadas con una API Key responden una lista vacía o un 404, aunque la key sea válida. Úsalas desde la app.

Proyectos

GET/projects
Lista los proyectos de tu organización
POST/projects
Crea un proyecto
GET/projects/{projectId}
Detalle de un proyecto
PATCH/projects/{projectId}
Actualiza un proyecto
DELETE/projects/{projectId}
Archiva el proyecto

Detalle y ejemplos en API de proyectos.

Datasets

GET/datasets
Lista los datasets de tu organización
POST/datasets
Crea un dataset con sus ejemplos
GET/datasets/{datasetId}
Metadatos y conteo por split
PUT/datasets/{datasetId}
Cambia nombre, descripción o metadata
DELETE/datasets/{datasetId}
Elimina el dataset y sus ejemplos
GET/datasets/{datasetId}/items
Ejemplos del dataset, paginados
POST/datasets/upload
Sube un archivo a tu almacenamiento
POST/ingest
Importa un archivo y detecta su formato
GET/projects/{projectId}/datasets
Datasets de un proyectoSolo sesión
POST/projects/{projectId}/datasets
Crea un dataset vacíoSolo sesión

Detalle y ejemplos en API de datasets.

Entrenamiento y GPU

GET/gpu/offers
Ofertas de GPU con su precio por hora
POST/gpu/instances/training
Renta una GPU y lanza el fine-tuning
GET/training/history
Historial de entrenamientos, con su estado y progreso
GET/training/limits
Límites de trabajos de síntesis de tu plan
POST/gpu/instances
Renta una GPU sin entrenamiento
GET/gpu/instances
Tus instancias de GPU
GET/gpu/instances/{instanceId}
Detalle de una instancia
PUT/gpu/instances/{instanceId}
Detiene, arranca o reinicia una instancia (action: stop, start o restart)
DELETE/gpu/instances/{instanceId}
Destruye una instancia
GET/training-jobs/{jobId}
Estado de un entrenamientoSolo sesión
POST/training/{jobId}/cancel
Cancela un entrenamientoSolo sesión

Con una API Key lanzas un entrenamiento, lo sigues en el historial y detienes o destruyes la máquina. Consultar un entrenamiento por su id y cancelarlo todavía se hace desde la app. Detalle en API de entrenamiento.

Inferencia

POST/chat
Chat con un modelo del proxy. Cobra créditos
GET/chat
Modelos disponibles en el proxy
POST/inference/{modelId}/chat
Chat con un modelo de tu proyectoSolo sesión
POST/inference/{modelId}/predict
Predicción con un modelo de tu proyectoSolo sesión

Detalle y ejemplos en API de inferencia.

Cuenta y API Keys

GET/auth/me
Tu perfil. Con API Key trae solo id, correo y nombre
GET/auth/api-keys
Lista tus API KeysSolo sesión
POST/auth/api-keys
Crea una API KeySolo sesión
PATCH/auth/api-keys/{keyId}
Renombra o desactiva una keySolo sesión
DELETE/auth/api-keys/{keyId}
Elimina una keySolo sesión

Cómo crear y rotar keys en API Keys.

Rutas de la app

Estas rutas alimentan pantallas de la app y leen con la sesión. Con una API Key no devuelven tus datos.

Facturación

GET/billing/balance
Saldo de créditos
GET/billing/subscription
Tu suscripción
GET/billing/usage
Uso del periodo
GET/billing/transactions
Movimientos de créditos
GET/gpu/credits
Saldo de GPU y saldo total disponible

Modelos

GET/models
Modelos de tu organización
GET/projects/{projectId}/models
Modelos de un proyecto
POST/projects/{projectId}/models
Registra un modelo
GET/projects/{projectId}/models/{modelId}
Detalle de un modelo
PATCH/projects/{projectId}/models/{modelId}
Actualiza un modelo
DELETE/projects/{projectId}/models/{modelId}
Elimina un modelo

Evaluaciones

GET/evaluations
Lista evaluaciones
POST/evaluations
Crea una evaluación
GET/evaluations/{id}
Detalle de una evaluación
POST/evaluations/{id}/run
Ejecuta una evaluación
GET/evaluations/{id}/runs
Ejecuciones de una evaluación
GET/evaluations/{id}/results
Resultados

Integraciones

GET/integrations/webhooks
Lista webhooks
POST/integrations/webhooks
Crea un webhook
DELETE/integrations/webhooks/{webhookId}
Elimina un webhook
GET/integrations/connections
Lista tus conexiones
POST/integrations/connections
Crea una conexión
POST/integrations/connections/{provider}/test
Prueba una conexión

Analítica

GET/analytics/experiments
Analítica de experimentos
GET/analytics/models
Analítica de modelos
GET/analytics/usage
Analítica de uso

Estado del servicio

bash
curl https://app.astrapp.lat/api/health

GET /api/health vive fuera de /api/v1 y no pide autenticación. Responde status con healthy, degraded o unhealthy.

Límites de peticiones

No hay un límite global: solo las rutas de esta tabla tienen tope, y cada una cuenta por separado.

RutaLímiteCuenta por
POST /auth/register3 por minutoIP
POST /auth/login5 por minutoIP
POST /ingest10 por minutoIP
POST /datasets/synthesize20 por minutoIP
POST /chat30 por minutoUsuario
POST /inference/{modelId}/chat y /predict30 por minutoUsuario
POST /evaluations/{id}/run10 por minutoUsuario
POST /gpu/instances/training12 por horaUsuario
POST /gpu/instances12 por horaUsuario
  • Los topes “por usuario” leen tu sesión. Con una API Key no hay sesión y el contador cae a tu IP.
  • La mayoría de los contadores viven en la memoria de cada instancia del servidor, así que el tope real puede ser mayor. Tómalos como un máximo, no como una cuota garantizada.
  • Al pasarte recibes 429 con el código RATE_LIMIT_EXCEEDED y el header Retry-After en segundos. Las respuestas de estas rutas también traen X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset.

El formato completo del error está en Códigos de error.