API Trooper AI zapewnia kompleksowy dostęp do zarządzania serwerami GPU, w tym do ich tworzenia, monitorowania, migracji i funkcji administracyjnych. To RESTful API umożliwia programowe zarządzanie infrastrukturą GPU, tworzenie i monitorowanie zamówień na serwery, obsługę szablonów oraz wykonywanie zadań administracyjnych.
Punkty końcowe API oraz dokumentacja API są obecnie w fazie Beta. W przypadku jakichkolwiek problemów skontaktuj się z nami: Kontakty z wsparciem.
Znajdziesz swój klucz API w Konsoli API.
Wskazówka: Po prostu przekaż tę dokumentację swojemu Agentowi LLM dla programistów, a on zintegruje ją z twoim kodem.
Uzyskaj krótki przegląd podstaw API, takich jak URL, uwierzytelnianie i więcej:
https://james.trooper.ai
Większość punktów końcowych wymaga uwierzytelniania za pomocą tokenu Bearer, używając Twojego klucza API Trooper:
Authorization: Bearer YOUR_API_KEY
Pobierz swój klucz API z Konsola API.
Wszystkie odpowiedzi API są w formacie JSON. Pomyślne odpowiedzi zazwyczaj zawierają:
successWartość logiczna wskazująca powodzenie operacjiOdpowiedzi w przypadku błędów zawierają:
error: Ciąg znaków opisujący błądnextOpcjonalne pole sugerujące następną akcję (np. „login”)GET /api/test
Prosty punkt końcowy testowy służący do weryfikacji połączenia z API.
GET /api/test
{
"test": "meinstring5"
}
GET /api/blibs
Pobierz wszystkie publicznie dostępne konfiguracje serwerów GPU.
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
Pobierz serwery GPU dostępne na Twoim koncie, w tym konfiguracje prywatne.
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
Utwórz nowe zamówienie na serwer GPU. Musisz podać podaną cenę, w przeciwnym razie zamówienie nie zostanie przyjęte. Zapewnia to zgodność aktualnej ceny z Twoimi oczekiwaniami!
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
Pobierz wszystkie zamówienia serwerowe z szczegółowymi informacjami.
Obsługując statusy serwerów, należy wziąć pod uwagę wzajemne powiązania między desired_status i current_statusNa przykład, serwer może mieć desired_status do „zatrzymanego”, ale jego current_status może nadal być w stanie „uruchomiony”, jeśli proces zatrzymywania jest w toku. Twoja aplikacja powinna uwzględniać te przejścia i odpowiednio je obsługiwać.
GET /api/orders
Authorization: Bearer YOUR_API_KEY
machine_name (opcjonalnie): Filtruj według konkretnej nazwy maszyny[
{
"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
Zaktualizuj status zamówienia serwera (uruchomiony, zatrzymany, ponownie uruchomiony, zamrożony).
Ustaw "migration_allowed": true jeśli zatwierdzisz migrację hosta podczas przechodzenia ze stanu zamrożonego do uruchomionego. Ten proces może trwać od 10 do 90 minut i zmieni zakres portów oraz potencjalnie model/szybkość procesora.
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
Zaktualizuj tytuł wyświetlania swojego serwera.
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
Zablokuj lub odblokuj serwer, aby zapobiec/umożliwić zmiany statusu.
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
Pobierz dane uwierzytelniające SSH i szczegóły połączenia dla Twojego serwera.
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
Pobierz 5 ostatnich zmian statusu zamówienia serwera.
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"
}
]
}
Migracja służy do zmiany konfiguracji Twojego serwera GPU. Nie zalecamy używania jej w środowisku produkcyjnym, ale możesz spróbować, jeśli chcesz!
GET /api/migration-options
Pobierz dostępne konfiguracje serwerów do migracji.
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
Oblicz koszt migracji do innej konfiguracji serwera.
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
Uruchom migrację do nowej konfiguracji serwera.
WAŻNE Jeśli przekażesz nieprawidłowe dane, nic nie jest gwarantowane. Zespół wsparcia nie może przywrócić Twojego zamówienia, jeśli nadużyjesz tego endpointu do kupowania migracji. Zalecamy korzystanie z panelu UI.
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
Pobierz wszystkie dostępne szablony oprogramowania.
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
Pobierz konfigurację instalacji szablonu dla konkretnego zamówienia.
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
Zainstaluj nową konfigurację na swoim serwerze.
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
Usuń instalację szablonu z Twojego serwera.
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
Ponów instalację nieudanej szablony.
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"Wymagana autoryzacja"Invalid Trooper key": Klucz API jest nieprawidłowy"Unauthorized access"Brak uprawnień"You must accept the terms and conditions": Warunki nie zostały zaakceptowane podczas tworzenia zamówienia"Invalid or missing contract interval"Interwał kontraktu musi być GODZINOWY, TYGODNIOWY lub MIESIĘCZNY"Insufficient budget"Brak wystarczających środków na operację"Server is locked and cannot be modified"Serwer jest zablokowany i nie można go modyfikowaćPunkty końcowe API mogą być ograniczone, aby zapobiec nadużyciom. Jeśli przekroczysz limit częstotliwości, otrzymasz kod statusu 429. Zaimplementuj odpowiednią logikę ponawiania prób z wykładniczym wycofaniem.
W przypadku pytań i wsparcia dotyczącego API, skontaktuj się: support@trooper.ai
W przypadku jakichkolwiek pytań dotyczących API prosimy o kontakt: Kontakty z wsparciem