RESTful API

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.

API-eindpunten en de API-documentatie bevinden zich momenteel in bèta. Neem bij eventuele problemen contact met ons op: Contacten.

Je vindt je API-sleutel in de API Console.

Probeer de API Console

Pro Tip: Geef deze documentatie simpelweg aan je Development LLM Agent en het zal het 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 je API-sleutel op van 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-private

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!

Open API Console & Probeer het uit

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/order-status

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/order-title

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/order-lock

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/order-status-history

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

GET /api/migration-options

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/migration-cost

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/buy-migration

Voer de migratie uit naar een nieuwe serverconfiguratie.

BELANGRIJK Als u hier ongeldige gegevens invoert, is er niets gegarandeerd. Het supportteam kan uw bestelling niet herstellen als u dit eindpunt misbruikt om migraties te kopen. We raden aan om het 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/template-config

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/template-install-add

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/template-install-delete

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/template-install-retry

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 succesvol
  • 400 Slechte VerzoekOngeldige aanvraagparameters
  • 401 Niet geautoriseerdOntbrekende of ongeldige authenticatie
  • 403 VerbodenOnvoldoende rechten
  • 404 Niet gevondenHulpbron niet gevonden
  • 500 Interne Serverfout: Serverfout

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

Neem voor API-ondersteuning en vragen contact op met: support@trooper.ai

Open API Console


Neem voor vragen over de API contact met ons op: Contacten