Trooper.AI GPU-Server API (RESTful)

De Trooper AI API biedt uitgebreide toegang tot GPU-serverbeheer, inclusief serverprovisioning, monitoring, migratie en administratieve functies. Deze RESTful API stelt u in staat om uw GPU-infrastructuur programmatisch te beheren, serverbestellingen te maken en te monitoren, templates te verwerken en administratieve taken uit te voeren.

De API-endpoints en de bijbehorende documentatie bevinden zich momenteel in Beta. Neem contact met ons op voor eventuele problemen: Ondersteuningscontacten.

Je vindt je API-sleutel in de API Console.

Probeer uit in de API Speelplaats

Pro Tip: Geef deze documentatie gewoon aan je Development LLM Agent en die zal het automatisch in je code integreren.


Overzicht

Krijg een kort overzicht van de API basisprincipes zoals URL, authenticatie en meer:

Basis URL

Code
https://james.trooper.ai

Authenticatie

De meeste eindpunten vereisen Bearer token authenticatie met uw Trooper API-sleutel:

http
Authorization: Bearer YOUR_API_KEY

Haal uw API-sleutel op uit de API Console.

Antwoordformaat

Alle API-antwoorden zijn in JSON-formaat. Succesvolle antwoorden bevatten doorgaans:

  • success: Boolean die het succes van de operatie aangeeft
  • Aanvullende gegevensvelden specifiek voor het eindpunt

Foutmeldingen bevatten:

  • error: Beschrijving van de fout
  • nextOptioneel veld dat de volgende actie suggereert (bijv. “inloggen”)

Openbare eindpunten

Teststatus ophalen

GET /api/test

Eenvoudig test-eindpunt om de API-connectiviteit te verifiëren.

Verzoek

http
GET /api/test

Succesvol antwoord (200)

json
{
  "test": "meinstring5"
}

Beschikbare GPU-servers ophalen (Publiek)

GET /api/blibs

Haal alle publiek beschikbare GPU-serverconfiguraties op.

Verzoek

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

Succesvol antwoord (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
  }
]

Foutreactie (500)

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

Authenticatie Vereiste Eindpunten

Private GPU-servers ophalen

GET /api/blibs-privé

Haal GPU-servers op die toegankelijk zijn voor uw account, inclusief privéconfiguraties.

Verzoek

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

Succesvol antwoord (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"
  }
]

Foutreactie (401)

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

Serverorder aanmaken

POST /api/order

Maak een nieuwe GPU-serverorder aan. U dient de aangegeven prijs in te dienen, anders wordt de bestelling niet geaccepteerd. Dit zorgt ervoor dat de huidige prijs overeenkomt met uw verwachtingen!

API Console openen & Proberen

Verzoek

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

Verzoekbody

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

Succesvol antwoord (200)

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

Foutreactie (400)

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

Foutreactie (400)

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

Haal uw serverbestellingen op

GET /api/orders

Haal al uw serverbestellingen op met gedetailleerde informatie.

Houd bij het afhandelen van serverstatussen rekening met de wisselwerking tussen desired_status en current_statusBijvoorbeeld, een server kan een desired_status van “gestopt”, maar zijn current_status kan nog steeds “running” zijn als het stop-proces nog bezig is. Uw applicatie moet rekening houden met deze overgangen en hierop inspelen.

Verzoek

http
GET /api/orders
Authorization: Bearer YOUR_API_KEY

Query Parameters

  • machine_name (optioneel): Filter op specifieke machinenaam

Succesvol antwoord (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"
      }
    ]
  }
]

Foutreactie (401)

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

Serverstatus bijwerken

POST /api/status-bestelling

Update de status van uw serverbestelling (actief, gestopt, opnieuw opgestart, gepauzeerd).

Instellen "migration_allowed": true als u hostmigratie goedkeurt wanneer u van een bevroren naar een actieve status overgaat. Dit proces kan 10–90 minuten duren en zal de poortbereik en mogelijk het CPU-model/de snelheid wijzigen.

Verzoek

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

Verzoekbody

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

Succesvol antwoord (200)

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

Foutmelding (403)

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

Servertitel bijwerken

POST /api/server-titel/wijzigen

Wijzig de weergavenaam van uw server.

Verzoek

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

Verzoekbody

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

Succesvol antwoord (200)

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

Server vergrendelen/ontgrendelen

POST /api/server-vergrendelen

Blokkeer of deblokkeer een server om statuswijzigingen te voorkomen/toestaan.

Verzoek

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

Verzoekbody

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

Succesvol antwoord (200)

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

Servergegevens ophalen

POST /api/credentials

Haal SSH-inloggegevens en verbindingsdetails voor uw server op.

Verzoek

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

Verzoekbody

json
{
  "serverId": 123
}

Succesvol antwoord (200)

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

Foutmelding (403)

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

Serverstatusgeschiedenis ophalen

GET /api/serverbestelgeschiedenis

Haal de laatste 5 statuswijzigingen voor een serverbestelling op.

Verzoek

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

Succesvol antwoord (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"
    }
  ]
}

Migratie-eindpunten

Migratie wordt gebruikt om uw GPU-server naar een andere configuratie te brengen. We raden het niet aan om dit voor productie te gebruiken. Maar u kunt het proberen als u wilt!

Migratieopties ophalen

Ophalen /api/migratie-opties

Haal beschikbare serverconfiguraties op voor migratie.

Verzoek

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

Succesvol antwoord (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
    }
  ]
}

Migratiekosten berekenen

POST /api/migratiekosten

Bereken de kosten voor het migreren naar een andere serverconfiguratie.

Verzoek

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

Verzoekbody

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

Succesvol antwoord (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"
  }
}

Migratie uitvoeren

POST /api/kopen-migratie

Voer de migratie uit naar een nieuwe serverconfiguratie.

Belangrijk Als u hier ongeldige gegevens doorstuurt, kan niets worden gegarandeerd. Het supportteam kan uw bestelling niet herstellen als u deze endpoint misbruikt voor het kopen van migraties. Wij raden aan om de UI-dashboard te gebruiken.

Verzoek

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

Verzoekbody

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

Succesvol antwoord (200)

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

Foutreactie (400)

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

Sjabloonbeheer

Beschikbare templates ophalen

GET /api/templates

Haal alle beschikbare softwaretemplates op.

Verzoek

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

Succesvol antwoord (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"
      }
    ]
  }
]

Sjabloonconfiguratie ophalen

GET /api/sjabloonconfiguratie

Haal de template-installatieconfiguratie op voor een specifieke bestelling.

Verzoek

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

Succesvol antwoord (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"
      }
    }
  ]
}

Sjabloon installeren

POST /api/sjabloon-installatie-toevoegen

Installeer een nieuwe template op uw server.

Verzoek

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

Verzoekbody

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

Succesvol antwoord (200)

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

Sjabloon verwijderen

POST /api/sjabloon-installatie-verwijderen

Verwijder een template-installatie van uw server.

Verzoek

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

Verzoekbody

json
{
  "install_id": 5
}

Succesvol antwoord (200)

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

Template installatie opnieuw proberen

POST /api/sjabloonherstel-probeer

Een mislukte template-installatie opnieuw proberen.

Verzoek

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

Verzoekbody

json
{
  "install_id": 5
}

Succesvol antwoord (200)

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

Foutcodes

HTTP-statuscodes

  • 200 OK: Verzoek geslaagd
  • 400 Ongeldige Verzoek: Ongeldige verzoekparameters
  • 401 Geautoriseerd: Ontbrekende of ongeldige authenticatie
  • 403 Verboden: Onvoldoende machtigingen
  • 404 Niet gevonden: Bron niet gevonden
  • 500 Interne Serverfout: Fout op de server

Veelvoorkomende foutmeldingen

  • "Missing or invalid Authorization header": Authenticatie vereist
  • "Invalid Trooper key": API sleutel is ongeldig
  • "Unauthorized access"Onvoldoende rechten
  • "You must accept the terms and conditions": Voorwaarden niet geaccepteerd bij ordercreatie
  • "Invalid or missing contract interval"Contractinterval moet UUR, WEEK of MAAND zijn
  • "Insufficient budget"Onvoldoende budget
  • "Server is locked and cannot be modified": Server is vergrendeld voor wijzigingen

Beperking van het aantal verzoeken

API-eindpunten kunnen worden beperkt om misbruik te voorkomen. Als u de limiet overschrijdt, ontvangt u een statuscode 429. Implementeer een geschikte herhaallogica met exponentiële backoff.

Ondersteuning

Voor ondersteuning en vragen over de API, neem contact op met: support@trooper.ai

Open API Console


Voor vragen over de API kunt u ons contacteren: