L'API Trooper AI offre un accès complet à la gestion des serveurs GPU, notamment le provisionnement, la surveillance, la migration et les fonctions administratives. Cette API RESTful vous permet de gérer par programmation votre infrastructure GPU, de créer et de surveiller les commandes de serveurs, de gérer les modèles et d'effectuer des tâches administratives.
Les points de terminaison de l'API et la documentation de l'API sont actuellement en version Beta. Veuillez nous contacter pour tout problème : Contacts Support.
Vous trouverez votre clé API dans la console API.
Conseil de pro : Donnez simplement cette documentation à votre agent LLM de développement et il l'intégrera dans votre code.
Obtenez un bref aperçu des bases de l'API, telles que l'URL, l'authentification et plus encore :
https://james.trooper.ai
La plupart des points de terminaison nécessitent une authentification par jeton Bearer en utilisant votre clé API Trooper :
Authorization: Bearer YOUR_API_KEY
Obtenez votre clé API depuis Console API.
Toutes les réponses de l'API sont au format JSON. Les réponses réussies incluent généralement :
success: Booléen indiquant le succès de l'opérationLes réponses d'erreur incluent :
error: Chaîne décrivant l'erreurnextChamp facultatif indiquant la prochaine action à effectuer (par exemple, « connexion »)GET /api/test
Point de terminaison de test simple pour vérifier la connectivité de l’API.
GET /api/test
{
"test": "meinstring5"
}
GET /api/blibs
Récupérer toutes les configurations de serveurs GPU publiquement 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"
}
GET /api/blibs-private
Récupérer les serveurs GPU accessibles à votre compte, y compris les configurations privées.
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
Créez une nouvelle commande de serveur GPU. Vous devez soumettre le prix indiqué, sinon la commande ne sera pas acceptée. Cela garantit que le prix actuel correspond à vos attentes !
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."
}
GET /api/orders
Récupérez toutes vos commandes de serveur avec des informations détaillées.
Lorsque vous gérez les statuts des serveurs, tenez compte de l'interaction entre desired_status et current_statusPar exemple, un serveur peut avoir un desired_status d'"arrêté", mais son current_status pourrait encore être "en cours d'exécution" si le processus d'arrêt est en cours. Votre application doit tenir compte de ces transitions et les gérer en conséquence.
GET /api/orders
Authorization: Bearer YOUR_API_KEY
machine_name (facultatif) : Filtrer par nom de machine spécifique[
{
"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
Mettez à jour le statut de votre commande de serveur (en cours d'exécution, arrêté, redémarré, gelé).
Définir "migration_allowed": true si vous approuvez la migration de l'hôte lors du passage d'un état gelé à un état en cours d'exécution. Ce processus peut prendre 10 à 90 minutes et modifier la plage de ports ainsi que potentiellement le modèle/vitesse du CPU.
POST /api/order-status
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"serverId": 123,
"action": "running",
"migration_allowed": false
}
{
"success": true,
"message": "Server start initiated successfully",
"status": "starting"
}
{
"success": false,
"error": "Server is locked and cannot be modified"
}
POST /api/order-title
Mettez à jour le titre d’affichage de votre serveur.
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
Verrouiller ou déverrouiller un serveur pour empêcher/autoriser les modifications d'état.
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
Récupérer les identifiants SSH et les détails de connexion de votre serveur.
POST /api/credentials
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"serverId": 123
}
{
"success": true,
"ip": "192.168.1.100",
"ssh_port": 22001,
"username": "root",
"password": "generated-password",
"status": "running"
}
{
"error": "Access denied or server not found"
}
GET /api/order-status-history
Obtenir les 5 derniers changements d'état d'une commande de serveur.
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 migration est utilisée pour configurer votre serveur GPU avec une configuration différente. Nous ne recommandons pas d'utiliser cette option pour la production. Mais vous pouvez essayer si vous le souhaitez !
GET /api/migration-options
Obtenir les configurations serveur disponibles pour la migration.
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
Calculer le coût de migration vers une configuration serveur différente.
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
Exécuter la migration vers une nouvelle configuration de serveur.
IMPORTANT Si vous fournissez des données invalides ici, rien n'est garanti. L'équipe de support ne peut pas restaurer votre commande si vous utilisez abusivement ce point de terminaison pour acheter des migrations. Nous vous recommandons d'utiliser le Tableau de bord de l'interface utilisateur.
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
Obtenez tous les modèles logiciels 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"
}
]
}
]
GET /api/template-config
Obtenir la configuration d'installation du modèle pour une commande spécifique.
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/template-install-add
Installer un nouveau modèle sur votre serveur.
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-delete
Supprimer une installation de modèle de votre serveur.
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
Réessayer une installation de modèle ayant échoué.
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": Authentification requise"Invalid Trooper key"Clé API invalide"Unauthorized access"Permissions insuffisantes"You must accept the terms and conditions"Conditions d'utilisation non acceptées lors de la création de la commande"Invalid or missing contract interval"L'intervalle du contrat doit être HEURE, SEMAINIER ou MENSUEL."Insufficient budget"Budget insuffisant pour l'opération"Server is locked and cannot be modified"Serveur verrouillé pour les modificationsLes points de terminaison de l'API peuvent être limités pour éviter les abus. Si vous dépassez la limite de débit, vous recevrez un code d'état 429. Mettez en œuvre une logique de nouvelle tentative appropriée avec un retour exponentiel.
Pour obtenir de l’assistance et des informations sur l’API, veuillez contacter : support@trooper.ai
Pour toute question relative à l’API, veuillez nous contacter : Contacts Support