L'API di Trooper.AI offre un accesso completo alla gestione dei GPU Server, inclusi la configurazione, il monitoraggio, la migrazione e le funzioni amministrative. Questa API RESTful Le consente di gestire in modo programmatico la Sua infrastruttura GPU, creare e monitorare ordini per server, gestire modelli e svolgere compiti amministrativi.
Gli endpoint API e la documentazione dell'API sono attualmente in fase Beta. Contattaci per qualsiasi problema: Contatti di Assistenza.
Trova la Sua chiave API nella Console API.
Consiglio pratico: Basta fornire questa documentazione al Suo agente LLM di Sviluppo e lo integrerà automaticamente nel codice.
Ottenga una panoramica rapida sui concetti base dell'API come URL, autenticazione e altro:
https://james.trooper.ai
La maggior parte degli endpoint richiede autenticazione con Bearer token utilizzando la Sua chiave Trooper API:
Authorization: Bearer YOUR_API_KEY
Ottenga la Sua chiave API dalla API Console.
Tutte le risposte dell'API sono in formato JSON. Le risposte di successo includono tipicamente:
success: Boolean che indica il successo dell'operazioneLe risposte di errore includono:
error: String che descrive l’errorenext: Campo facoltativo che suggerisce la prossima azione da compiere (es. «login»)GET /api/test
Punto di accesso di test semplice per verificare la connettività dell'API.
GET /api/test
{
"test": "meinstring5"
}
GET /api/blibs
Recuperi tutte le configurazioni pubblicamente disponibili dei GPU Server.
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"
}
GET /api/blibs-private
Recuperi i GPU Server accessibili al Suo account, inclusi i configurazioni private.
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 /api/order
Crea un nuovo ordine per il GPU Server. Lei deve inserire il prezzo fornito, altrimenti l'ordine non verrà accettato. Questo garantisce che il prezzo attuale corrisponda alle Sue aspettative!
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."
}
OTTENI /api/ordini
Recuperi tutti i Suoi ordini di server con informazioni dettagliate.
Nel gestire gli status del server, tenga conto dell'interazione tra desired_status e current_status. Ad esempio, un server potrebbe avere un desired_status di «fermo», ma il suo current_status potrebbe ancora essere "in esecuzione" se il processo di arresto è in corso. La Sua applicazione deve tenere conto di queste transizioni e gestirle di conseguenza.
GET /api/orders
Authorization: Bearer YOUR_API_KEY
machine_name (facoltativo): Filtra per nome specifico della macchina[
{
"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 /api/order-status
Aggiorni il Suo stato dell'ordine del server (in esecuzione, fermato, riavviato, congelato, terminato).
Impostare "migration_allowed": true Se Lei approva la migrazione dell'host durante il passaggio da uno stato congelato a quello attivo, questo processo potrebbe richiedere 10–90 minuti e modificare la Ports Range nonché eventualmente il modello/velocità della 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/order-title
Aggiorni il titolo di visualizzazione della Sua macchina.
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/order-lock
Bloccare o sbloccare un server per impedire/consentire modifiche allo stato.
POST /api/order-lock
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"serverId": 123,
"is_locked": true
}
{
"success": true,
"updated": 1
}
POST /api/credentials
Recuperi le credenziali SSH e i dettagli di connessione per la Sua macchina.
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"
}
GET /api/storia-stato-ordine
Recuperi gli ultimi 5 cambiamenti di stato per un ordine di macchina.
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 migrazione viene utilizzata per portare il Suo GPU Server a una configurazione diversa. Non raccomandiamo di utilizzarla per ambienti di produzione. Tuttavia, può provare se lo desidera!
GET /api/migration-options
Ottenga le configurazioni disponibili del server per la migrazione.
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/migration-cost
Calcoli il costo per migrare a una configurazione di server diversa.
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 /api/buy-migration
Esegua la migrazione alla nuova configurazione della macchina.
IMPORTANTE Se invia dati non validi qui, nulla è garantito. Il team di supporto non può ripristinare il Suo ordine se Lei utilizza impropriamente questa endpoint per l'acquisto di migrazioni. Le raccomandiamo di utilizzare l’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"
}
GET /api/templates
Ottieni tutti i modelli software disponibili.
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"
}
]
}
]
GET /api/configurazione-template
Recuperi la configurazione di installazione del template per un ordine specifico.
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/installazione-template-add
Installa un nuovo template sulla Sua macchina.
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/template-install-elimina
Rimuova un'installazione di template dal Suo server.
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/template-install-retry
Riavvio l'installazione di un template fallita.
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": Autenticazione richiesta"Invalid Trooper key": Chiave API non valida"Unauthorized access": Permessi insufficienti"You must accept the terms and conditions": I termini non sono stati accettati durante la creazione dell'ordine"Invalid or missing contract interval": L'intervallo contrattuale deve essere HOUR, WEEK o MONTH"Insufficient budget": Budget insufficiente per l'operazione"Server is locked and cannot be modified": La macchina è bloccata e non può essere modificataGli endpoint API potrebbero essere soggetti a rate-limiting per prevenire abusi. Se supera il limite di richieste, riceverà uno status code 429. Implemeniti una logica di retry con backoff esponenziale.
Per il supporto dell'API e domande, contatti: [email protected]
Per qualsiasi domanda relativa all'API, contatti pure Support Contacts