API pre správu GPU serverov (RESTful)

API Trooper AI poskytuje komplexný prístup k správy GPU serverov, vrátane zriadenia serverov, monitoringu, migácie a administratívnych funkcií. Táto RESTful API vám umožňuje programovo spravovať vašu GPU infraštruktúru, vytvárať a sledovať objednávky serverov, pracovať s šablónami a vykonávať administratívne úlohy.

API koncové body a dokumentácia k API sú aktuálne vo fáze beta. V prípade problémov nás kontaktujte: Kontakty na podporu.

Vašu API klúč nájdete v sekcii API Konzola.

Vyskúšajte v API Hráči

Tip pre pokročilých: Stačí túto dokumentáciu predložiť svojmu vývojovému LLM agentovi a on ju automaticky integruje do kódu.


Prehľad

Získať krátky prehľad o základných informáciách k API ako je URL, autentifikácia a viac:

Základná URL

Kód
https://james.trooper.ai

Autorizácia

Väčšina koncoviek vyžaduje autentifikáciu pomocou Bearer tokenu s použitím vašho Trooper API klúča:

http
Authorization: Bearer YOUR_API_KEY

Získať svoj API kľúč z API Konzoly.

Formát odpovedi

Všetky odpovedi API sú vo formáte JSON. Úspešné odpovedi typicky obsahujú:

  • success: boolean indikujúci úspešnosť operácie
  • Dodatočné polia dát pre konkrétny endpoint

Chyby v odpovediach zahŕňajú:

  • error: reťazec popisujúci chybu
  • next: Voliteľné pole s návrhom ďalšieho kroku (napr. „prihlásenie“)

Verejná koncovka

Získať stav testu

GET /api/test

Jednoduchý testovací endpoint na overenie pripojenia k API.

Požiadavka

http
GET /api/test

Úspešná odpoveď (kód 200)

json
{
  "test": "meinstring5"
}

Získať dostupné GPU servery (verejné)

Žiadosť GET /api/blibs

Vyberte všetky verejne dostupné konfigurácie GPU serverov.

Požiadavka

http
GET /api/blibs
Authorization: Bearer YOUR_API_KEY  # Optional - includes your private networks if provided

Úspešná odpoveď (kód 200)

json
[
  {
    "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
  }
]

Chyba odpovedi (500)

json
{
  "error": "Error fetching Blibs"
}

Koncové body vyžadujúce autentifikáciu

Získať súkromné GPU servery

Žiadosť /api/privatne-bloby

Vyberte GPU servery prístupné vašiemu účtu, vrátane súkromných konfigúracji.

Požiadavka

http
GET /api/blibs-private
Authorization: Bearer YOUR_API_KEY

Úspešná odpoveď (kód 200)

json
[
  {
    "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"
  }
]

Chyba odpovedi (401)

json
{
  "error": "Missing or invalid Authorization header"
}

Vytvoriť objednávku na server

POST /api/objednávka

Vytvorte nový objednávku na GPU server. Musíte zadať uvedenú cenu, inak nebude objednávka prijatá. Takto sa uistite, že aktuálna cena zodpovedá vašim očakávaniam!

Otvoriť API konzolu & skúsiť

Požiadavka

http
POST /api/order
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Žiadostné telo

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"
    }
  ]
}

Úspešná odpoveď (kód 200)

json
{
  "success": true,
  "orderId": 123
}

Chyba v odpovedi (400)

json
{
  "error": "You must accept the terms and conditions."
}

Chyba v odpovedi (400)

json
{
  "error": "Invalid or missing contract interval."
}

Získať Vaše objednávky serverov

Žiadosť /api/objednávky

Vyberte všetky vaše objednávky na servery s podrobnými informáciami.

Pri práci s stavmi serverov zohľadňujte vzájomný vplyv medzi desired_status a current_status. Napríklad server môže mať desired_status zo "zastavený", ale jeho current_status môže ešte byť "spustené", ak je proces zastavenia v priebehu. Vaša aplikácia by mala zohľadniť tieto prechodové stavy a spracovať ich zodpovedne.

Požiadavka

http
GET /api/orders
Authorization: Bearer YOUR_API_KEY

Dotazové parametre

  • machine_name (voliteľné): Filtrujte podľa konkrétneho názvu stroja

Úspešná odpoveď (kód 200)

json
[
  {
    "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"
      }
    ]
  }
]

Chyba odpovedi (401)

json
{
  "error": "Missing or invalid Authorization header",
  "next": "login"
}

Aktualizovať stav servera

POST /api/stav-objednávky

Aktualizujte stav objednávky vašho serveru (spustený, zastavený, restartovaný, zmrazený).

Nastaviť "migration_allowed": true ak schválite presun hostiteľa pri prechode zo stavu zamrznutého na spustený. Tento proces môže trvať 10–90 minút a zmení rozsah portov a potenciálne aj model/rychosť CPU.

Požiadavka

http
POST /api/order-status
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Žiadostné telo

json
{
  "serverId": 123,
  "desired_status": "running",
  "migration_allowed": false
}

Úspešná odpoveď (kód 200)

json
{
  "success": true,
  "updated": 1
}

Chyba odpovedi (403)

json
{
  "success": false,
  "error": "Server is locked and cannot be modified"
}

Upraviť názov serveru

POST /api/nákaz-zmenit-názov

Aktualizovať zobrazený názov vašho serveru.

Požiadavka

http
POST /api/order-title
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Žiadostné telo

json
{
  "serverId": 123,
  "title": "My New Server Title"
}

Úspešná odpoveď (kód 200)

json
{
  "success": true,
  "message": "Title updated successfully"
}

Zamknúť/Odmknúť server

POST /api/zamknutie-poradia

Zamknúť alebo odomknúť server na zabránenie/povolenie zmien stavu.

Požiadavka

http
POST /api/order-lock
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Žiadostné telo

json
{
  "serverId": 123,
  "is_locked": true
}

Úspešná odpoveď (kód 200)

json
{
  "success": true,
  "updated": 1
}

Získať overenia k serveru

POST /api/overenie

Získať SSH prihlasovacie údaje a detaily prepojenia na váš server.

Požiadavka

http
POST /api/credentials
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Žiadostné telo

json
{
  "serverId": 123
}

Úspešná odpoveď (kód 200)

json
{
  "success": true,
  "ssh_password": "generated-password"
}

Chyba odpovedi (403)

json
{
  "error": "Access denied or server not found"
}

Získať históriu stavu servera

Žiadosť GET /api/história-statu-obednávky

Získať posledných 5 zmen stavu objednávky servera.

Požiadavka

http
GET /api/order-status-history?order_id=123
Authorization: Bearer YOUR_API_KEY

Úspešná odpoveď (kód 200)

json
{
  "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"
    }
  ]
}

Migračné koncové body

Migrácia sa používa na presun vašho GPU serveru do inej konfigurácie. Nedoporučujeme ju použiť v produkcii. Ale môžete si ju skúsiť ak chcete!

Získať možnosti migácie

GET /api/migračné-možnosti

Získať dostupné konfigurácie serverov pre migráciu.

Požiadavka

http
GET /api/migration-options?order_id=123
Authorization: Bearer YOUR_API_KEY

Úspešná odpoveď (kód 200)

json
{
  "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
    }
  ]
}

Vypočítať náklady na migráciu

POST /api/výpočet-migračnej-nákladu

Vypočítajte náklady na migráciu na inú konfiguráciu servera.

Požiadavka

http
POST /api/migration-cost
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Žiadostné telo

json
{
  "order_id": 123,
  "target_blib_id": 2
}

Úspešná odpoveď (kód 200)

json
{
  "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"
  }
}

Spustiť migráciu

POST /api/kúpiť-presun

Spustiť migráciu na novú konfiguráciu servera.

DŮLEŽITÉ Ak sem posielate neplatné údaje, nič nie je zaručené. Podporný tím nemôže obnoviť vašu objednávku ak zneužijete tento koncový bod na nákup migrácií. Odporúčame používať UI Dashboad.

Požiadavka

http
POST /api/buy-migration
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Žiadostné telo

json
{
  "order_id": 123,
  "target_blib_id": 2,
  "keep_data": true
}

Úspešná odpoveď (kód 200)

json
{
  "success": true,
  "message": "Migration initiated successfully",
  "new_order_id": 124
}

Chyba v odpovedi (400)

json
{
  "error": "Insufficient budget for migration"
}

Spravovanie šablón

Získať dostupné šablóny

Žiadosť GET /api/shablóny

Získať všetky dostupné šablóny softvéru.

Požiadavka

http
GET /api/templates
Authorization: Bearer YOUR_API_KEY  # Optional

Úspešná odpoveď (kód 200)

json
[
  {
    "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"
      }
    ]
  }
]

Získať konfiguráciu šablóny

Žiadosť GET /api/template-config

Získať konfiguráciu nainštalovania šablóny pre konkrétnu objednávku.

Požiadavka

http
GET /api/template-config?order_id=123
Authorization: Bearer YOUR_API_KEY

Úspešná odpoveď (kód 200)

json
{
  "success": true,
  "templates": [
    {
      "install_id": 1,
      "template_id": 1,
      "template_name": "PyTorch Environment",
      "status": 1,
      "status_readable": "Completed",
      "config": {
        "python_version": "3.9"
      }
    }
  ]
}

Nainštalovať šablónu

POST /api/nainštalovať-náštampuľ

Nainštalujte nový šablónový prostredie na svojom serveri.

Požiadavka

http
POST /api/template-install-add
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Žiadostné telo

json
{
  "order_id": 123,
  "template_id": 1,
  "config": {
    "python_version": "3.9"
  }
}

Úspešná odpoveď (kód 200)

json
{
  "success": true,
  "install_id": 5,
  "message": "Template installation queued"
}

Odstrániť šablónu

POST /api/vzor-instalacia-mazat

Odstrániť nainštalovanú šablónu z vašho servera.

Požiadavka

http
POST /api/template-install-delete
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Žiadostné telo

json
{
  "install_id": 5
}

Úspešná odpoveď (kód 200)

json
{
  "success": true,
  "message": "Template removal initiated"
}

Opakovať nainštalovanie šablóny

POST /api/nainštalovať-návrh-opakovanie

Opakovať neúspešnú instaláciu šablóny.

Požiadavka

http
POST /api/template-install-retry
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Žiadostné telo

json
{
  "install_id": 5
}

Úspešná odpoveď (kód 200)

json
{
  "success": true,
  "message": "Template installation retry initiated"
}

Kódy chýb

Kódy HTTP statusu

  • 200 OK: Žiadosť úspešná
  • 400 Chybný požiadavka: Neplatné parametre požiadanky
  • 401 Neautorizované: Chýbajúca alebo neplatná autentifikácia
  • 403 Zakázané: Nedostatočné oprávnenia
  • 404 Nájdené nie je: Zdroj nenájdený
  • Chyba 500 Internálny serverový problém: Chyba na strane servera

Bežné chybové správačky

  • "Missing or invalid Authorization header": Autentizácia vyžadovaná
  • "Invalid Trooper key": API klúč je neplatný
  • "Unauthorized access": Nedostatočné oprávnenia
  • "You must accept the terms and conditions": Nespĺnené podmienky pri vytváraní objednávky
  • "Invalid or missing contract interval": Interval zmluvy musí byť HODINA, TIŽDEŇ alebo MESEC
  • "Insufficient budget": Nedostatočný rozpočet na operáciu
  • "Server is locked and cannot be modified": Server je zamknutý na úpravy

Omezení frekvencie

API koncové body môžu byť omezované podľa počtu požadavkov na zabránenie zneužívaniu. Ak prekročíte limit, dostanete HTTP kód chyby 429 Too Many Requests. Zavádzkajte vhodnú logiku opakovania s exponenciálnym čakaním.

Podpora

Pri otázkach alebo podpore k API kontaktujte: [email protected]

Otvoriť API konzolu


Ak máte k API ľubovolné otázky, kontaktujte nás: Kontakty na podporu