La API de Trooper AI ofrece acceso integral al manejo de servidores con GPU, incluyendo aprovisionamiento, monitoreo, migración y funciones administrativas. Esta API RESTful permite gestionar programáticamente su infraestructura de servidores con GPU, crear y supervisar pedidos de servidor, manejar plantillas y realizar tareas administrativas.
Los puntos finales de la API y la documentación de la API están actualmente en fase Beta. Contáctenos ante cualquier inconveniente: Contacto de Soporte.
Encuentras tu clave de la API en el Consola de API.
Prueba en el Entorno de Pruebas de la API
Aconsejo profesional: Simplemente entrega esta documentación a tu Agente de Desarrollo LLM y este la integrará en tu código.
Obtén una breve descripción de los fundamentos de la API como URL, autenticación y más:
https://james.trooper.ai
La mayoría de los puntos finales requieren autenticación con token Bearer usando tu clave API de Trooper:
Authorization: Bearer YOUR_API_KEY
Obtén tu clave de API desde el Consola de la API.
Todas las respuestas de la API están en formato JSON. Las respuestas exitosas suelen incluir:
success: Booleano que indica éxito de la operaciónLas respuestas de error incluyen:
error: Cadena que describe el errornext: Campo opcional que sugiere la siguiente acción (ej. «login»)GET /api/probar
Punto de extremo de prueba simple para verificar la conectividad de la API.
GET /api/test
{
"test": "meinstring5"
}
Obtener /api/servidoresgpudisponibles
Obtener todas las configuraciones de servidores GPU públicamente disponibles.
GET /api/blibs
Authorization: Bearer YOUR_API_KEY # Optional - includes your private networks if provided
[
{
"id": 1,
"name": "powerai.example",
"gpu_type": "RTX 4090",
"gpu_num": 1,
"gpu_ram": 24,
"cpu_cores": 8,
"cpu_ram": 32,
"hdd": 500,
"price_h": 0.85,
"is_public": 1,
"country_code": "DE",
"is_available": true,
"available_hosts": ["ai18", "ai89"],
"fitCount": 2,
"maxPossibleInstances": 5
}
]
{
"error": "Error fetching Blibs"
}
OBTENER /api/servidores-gpu-privados
Obtener servidores de GPU accesibles para tu cuenta, incluyendo configuraciones privadas.
GET /api/blibs-private
Authorization: Bearer YOUR_API_KEY
[
{
"id": 2,
"name": "RTX 4090 Dual Private",
"gpu_type": "RTX 4090",
"gpu_num": 2,
"gpu_ram": 24,
"cpu_cores": 16,
"cpu_ram": 64,
"hdd": 1000,
"price_h": 1.65,
"is_public": 1,
"country_code": "DE"
}
]
{
"error": "Missing or invalid Authorization header"
}
POST /orden/api
Crea un nuevo pedido de servidor con GPU. Debes enviar el precio proporcionado; de lo contrario, el pedido no será aceptado. Esto garantiza que el precio actual coincida con tus expectativas.
POST /api/order
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"blib_id": 1,
"price_h": 0.85,
"total_price": 0.85,
"terms_accepted": true,
"contract_interval": "HOUR",
"second_partition_percentage": 20,
"templates": [
{
"id": 1,
"name": "PyTorch Environment"
}
]
}
{
"success": true,
"orderId": 123
}
{
"error": "You must accept the terms and conditions."
}
{
"error": "Invalid or missing contract interval."
}
OBTENER /api/órdenes
Obtenga todos sus pedidos de servidor con información detallada.
Al manejar los estados del servidor, considere la interrelación entre desired_status y current_status. Por ejemplo, un servidor podría tener un desired_status de "detener", pero su current_status podría seguir en "ejecutándose" si el proceso de detención está en curso. Su aplicación debe considerar estas transiciones y manejarlas según corresponda.
GET /api/orders
Authorization: Bearer YOUR_API_KEY
machine_name (opcional): Filtrar por nombre de máquina específico[
{
"order_id": 123,
"serverId": 123,
"title": "My PyTorch Server",
"status": "running",
"status_user": "running",
"server_name": "gpu-server-01",
"machine_name": "ai99_trooperai_000123",
"ip": "192.168.1.100",
"ssh_port": 22001,
"price_h": 0.85,
"paid_until": "2025-09-26T14:30:00.000Z",
"contract_interval": "HOUR",
"is_locked": false,
"is_low_priority": false,
"blib_name": "RTX 4090 Single",
"blib_gpu_type": "RTX 4090",
"blib_gpu_num": 1,
"country_code": "DE",
"template_installs": [
{
"id": 1,
"template_name": "PyTorch Environment",
"status": 1,
"status_readable": "Completed"
}
]
}
]
{
"error": "Missing or invalid Authorization header",
"next": "login"
}
POST /estado-de-pedido-api
Actualiza el estado de tu pedido del servidor (en ejecución, detenido, reiniciado, congelado).
Establecer "migration_allowed": true Si aprueba la migración del alojamiento al pasar de un estado congelado a uno en ejecución, este proceso puede tardar entre 10 y 90 minutos e implicará cambios en el rango de puertos y posiblemente en el modelo o velocidad de la CPU.
POST /api/order-status
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"serverId": 123,
"desired_status": "running",
"migration_allowed": false
}
{
"success": true,
"updated": 1
}
{
"success": false,
"error": "Server is locked and cannot be modified"
}
POST /api/título-pedido
Actualizar el título de visualización de tu servidor.
POST /api/order-title
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"serverId": 123,
"title": "My New Server Title"
}
{
"success": true,
"message": "Title updated successfully"
}
POST /api/bloquear-pedido
Bloquear o desbloquear un servidor para evitar/permitir cambios de estado.
POST /api/order-lock
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"serverId": 123,
"is_locked": true
}
{
"success": true,
"updated": 1
}
POST /api/credenciales
Obtener credenciales SSH y detalles de conexión para tu servidor.
POST /api/credentials
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"serverId": 123
}
{
"success": true,
"ssh_password": "generated-password"
}
{
"error": "Access denied or server not found"
}
Obtener /api/historial-estado-pedido
Obtener los últimos 5 cambios de estado para un pedido de servidor.
GET /api/order-status-history?order_id=123
Authorization: Bearer YOUR_API_KEY
{
"success": true,
"history": [
{
"id": 1,
"status_user": "running",
"status_txt": "Server started successfully",
"status_since": "2025-09-25T10:30:00.000Z"
},
{
"id": 2,
"status_user": "stopped",
"status_txt": "Server stopped by user",
"status_since": "2025-09-25T08:15:00.000Z"
}
]
}
La migración se utiliza para llevar tu servidor de GPU a una configuración diferente. No recomendamos usarla en producción, pero puedes intentarlo si lo deseas.
OBTENER /api/opciones-migración
Obtener configuraciones de servidor disponibles para migración.
GET /api/migration-options?order_id=123
Authorization: Bearer YOUR_API_KEY
{
"success": true,
"currentOrder": {
"id": 123,
"title": "My Server",
"status": "running",
"contract_interval": "HOUR",
"paid_until": "2025-09-26T14:30:00.000Z"
},
"currentBlib": {
"id": 1,
"name": "RTX 4090 Single",
"gpu_type": "RTX 4090",
"gpu_num": 1,
"price_h": 0.85
},
"availableBlibs": [
{
"id": 2,
"name": "RTX 4090 Dual",
"gpu_type": "RTX 4090",
"gpu_num": 2,
"price_h": 1.65,
"is_available": true,
"additionalCostPerCycle": 0.80
}
]
}
POST /api/costo-migración
Calcular el costo para migrar a una configuración de servidor diferente.
POST /api/migration-cost
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"order_id": 123,
"target_blib_id": 2
}
{
"success": true,
"upgradeCost": 15.50,
"remainingValue": 12.30,
"totalDue": 3.20,
"additionalCostPerCycle": 0.80,
"nextBillingDate": "2025-09-26T14:30:00.000Z",
"currentRate": {
"amount": 0.85,
"display": "€0.85/hour"
},
"newRate": {
"amount": 1.65,
"display": "€1.65/hour"
}
}
POST /compra-de-migración/api
Ejecutar la migración hacia una nueva configuración de servidor.
IMPORTANTE Si envía datos inválidos aquí, nada está garantizado. El equipo de soporte no podrá restaurar su pedido si abusa de este punto final para comprar migraciones. Recomendamos usar el Panel UI (Dashboard).
POST /api/buy-migration
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"order_id": 123,
"target_blib_id": 2,
"keep_data": true
}
{
"success": true,
"message": "Migration initiated successfully",
"new_order_id": 124
}
{
"error": "Insufficient budget for migration"
}
Obtener /api/plantillas
Obtener todas las plantillas de software disponibles.
GET /api/templates
Authorization: Bearer YOUR_API_KEY # Optional
[
{
"id": 1,
"name": "PyTorch Environment",
"description": "Pre-configured PyTorch environment with CUDA support",
"category": "Machine Learning",
"is_public": true,
"options": [
{
"id": 1,
"name": "Python Version",
"type": "select",
"default_value": "3.9",
"possible_values": "3.8,3.9,3.10"
}
]
}
]
Obtener /api/configuracion-plantilla
Obtener la configuración de instalación del plantilla para un pedido específico.
GET /api/template-config?order_id=123
Authorization: Bearer YOUR_API_KEY
{
"success": true,
"templates": [
{
"install_id": 1,
"template_id": 1,
"template_name": "PyTorch Environment",
"status": 1,
"status_readable": "Completed",
"config": {
"python_version": "3.9"
}
}
]
}
POST /api/instalación-de-plantilla-agregar
Instalar una nueva plantilla en tu servidor.
POST /api/template-install-add
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"order_id": 123,
"template_id": 1,
"config": {
"python_version": "3.9"
}
}
{
"success": true,
"install_id": 5,
"message": "Template installation queued"
}
POST /api/instalación-de-plantilla-eliminar
Eliminar una instalación de plantilla desde tu servidor.
POST /api/template-install-delete
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"install_id": 5
}
{
"success": true,
"message": "Template removal initiated"
}
POST /api/reintentar-instalación-de-plantilla
Reintentar la instalación fallida de una plantilla.
POST /api/template-install-retry
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"install_id": 5
}
{
"success": true,
"message": "Template installation retry initiated"
}
"Missing or invalid Authorization header": Autenticación requerida"Invalid Trooper key": La clave de la API es inválida"Unauthorized access": Permisos insuficientes"You must accept the terms and conditions": Términos no aceptados en la creación del pedido"Invalid or missing contract interval": El intervalo de contrato debe ser HORA, SEMANA o MES"Insufficient budget": Presupuesto insuficiente para la operación"Server is locked and cannot be modified": El servidor está bloqueado para modificacionesLos puntos finales de la API pueden estar sujetos a límites de tasa para evitar abusos. Si supera el límite de tasa, recibirá un código de estado 429. Implemente una lógica adecuada de reintento con retroceso exponencial.
Para soporte de la API e inquietudes, comuníquese con: [email protected]
Para cualquier pregunta relacionada con la API, contáctenos: Contacto de Soporte