RESTful API

Trooper AI API'en giver omfattende adgang til GPU-serveradministration, herunder serverprovisionering, -overvågning, -migration og -administrative funktioner. Denne RESTful API giver dig mulighed for programmatisk at administrere din GPU-infrastruktur, oprette og overvåge serverordrer, håndtere skabeloner og udføre administrative opgaver.

API-slutpunkterne og API-dokumentationen er i øjeblikket i Beta. Kontakt os ved eventuelle problemer: Kontakt Support.

Du finder din API-nøgle i API-konsollen.

Prøv API Konsol

Tip: Giv blot denne dokumentation til din Development LLM Agent, og den vil integrere den i din kode.


Oversigt

Få et kort overblik over API-grundlæggende som URL, godkendelse og mere:

Base URL

Kode
https://james.trooper.ai

Godkendelse

De fleste endpoints kræver Bearer token-godkendelse ved hjælp af din Trooper API-nøgle:

http
Authorization: Bearer YOUR_API_KEY

Hent din API-nøgle fra API-konsol.

Svarformat

Alle API-svar er i JSON-format. Succesfulde svar inkluderer typisk:

  • success: Boolean der angiver succes for operationen
  • Yderligere datafelter specifikke for endpoint

Fejlrespons inkluderer:

  • error: En beskrivelse af fejlen
  • nextValgfrit felt, der foreslår næste handling (f.eks. "login")

Offentlige Endepunkter

Hent Teststatus

GET /api/test

Simpelt testendepunkt til at verificere API-forbindelse.

Anmodning

http
GET /api/test

Succesfuld respons (200)

json
{
  "test": "meinstring5"
}

Hent tilgængelige GPU-servere (Offentlig)

GET /api/blibs

Hent alle offentligt tilgængelige GPU-serverkonfigurationer.

Anmodning

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

Succesfuld respons (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
  }
]

Fejlrespons (500)

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

Kræver godkendelse Endepunkter

Hent private GPU-servere

GET /api/blibs-private

Hent GPU-servere, der er tilgængelige for din konto, inklusive private konfigurationer.

Anmodning

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

Succesfuld respons (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"
  }
]

Fejlrespons (401)

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

Opret Serverordre

POST /api/order

Opret en ny GPU-serverordre. Du skal indsende den angivne pris, ellers vil ordren ikke blive accepteret. Dette sikrer, at den aktuelle pris matcher dine forventninger!

Åben API-konsol & Prøv det

Anmodning

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

Anmodningsbrødtekst

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

Succesfuld respons (200)

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

Fejlrespons (400)

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

Fejlrespons (400)

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

Hent dine serverordrer

GET /api/orders

Hent alle dine serverordrer med detaljerede oplysninger.

Ved håndtering af serverstatusser skal du overveje samspillet mellem desired_status og current_statusFor eksempel kan en server have en desired_status af “stopped”, men dens current_status kan stadig være “kører” hvis stop-processen er i gang. Din applikation bør tage højde for disse overgange og håndtere dem i overensstemmelse hermed.

Anmodning

http
GET /api/orders
Authorization: Bearer YOUR_API_KEY

Forespørgselsparametre

  • machine_name (valgfrit): Filtrer efter specifikt maskinnavn

Succesfuld respons (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"
      }
    ]
  }
]

Fejlrespons (401)

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

Opdater serverstatus

POST /api/order-status

Opdater din serverbestillingsstatus (kører, stoppet, genstartet, frosset).

Indstil "migration_allowed": true hvis du godkender hostmigration, når du skifter fra frosset til kørende status. Denne proces kan tage 10–90 minutter og vil ændre portområdet og potentielt CPU-model/hastighed.

Anmodning

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

Anmodningsbrødtekst

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

Succesfuld respons (200)

json
{
  "success": true,
  "message": "Server start initiated successfully",
  "status": "starting"
}

Fejlrespons (403)

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

Opdater serverens titel

POST /api/order-title

Opdater visningstitlen på din server.

Anmodning

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

Anmodningsbrødtekst

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

Succesfuld respons (200)

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

Lås/Lås op for server

POST /api/order-lock

Lås eller lås op for en server for at forhindre/tillade statusændringer.

Anmodning

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

Anmodningsbrødtekst

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

Succesfuld respons (200)

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

Hent serverlegitimationsoplysninger

POST /api/credentials

Hent SSH-legitimationsoplysninger og forbindelsesdetaljer til din server.

Anmodning

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

Anmodningsbrødtekst

json
{
  "serverId": 123
}

Succesfuld respons (200)

json
{
  "success": true,
  "ip": "192.168.1.100",
  "ssh_port": 22001,
  "username": "root",
  "password": "generated-password",
  "status": "running"
}

Fejlrespons (403)

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

Hent Serverstatus Historik

GET /api/order-status-history

Hent de seneste 5 statusændringer for en serverordre.

Anmodning

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

Succesfuld respons (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"
    }
  ]
}

Migrationsendepunkter

Migration bruges til at bringe din GPU-server til en anden konfiguration. Vi anbefaler ikke at bruge dette til produktion. Men du kan prøve, hvis du har lyst!

Hent Migreringsmuligheder

GET /api/migration-options

Hent tilgængelige serverkonfigurationer til migration.

Anmodning

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

Succesfuld respons (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
    }
  ]
}

Beregn Migreringsomkostning

POST /api/migration-cost

Beregn omkostningerne ved at migrere til en anden serverkonfiguration.

Anmodning

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

Anmodningsbrødtekst

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

Succesfuld respons (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"
  }
}

Udfør Migration

POST /api/buy-migration

Udfør migreringen til en ny serverkonfiguration.

VIGTIGT Hvis du sender ugyldige data her, er intet garanteret. Supportteamet kan ikke gendanne din ordre, hvis du misbruger dette endpoint til at købe migrationer. Vi anbefaler at bruge UI Dashboard.

Anmodning

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

Anmodningsbrødtekst

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

Succesfuld respons (200)

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

Fejlrespons (400)

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

Skabelonadministration

Hent tilgængelige skabeloner

GET /api/templates

Hent alle tilgængelige software skabeloner.

Anmodning

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

Succesfuld respons (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"
      }
    ]
  }
]

Hent skabelonkonfiguration

GET /api/template-config

Hent skabeloninstallationskonfiguration for en bestemt ordre.

Anmodning

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

Succesfuld respons (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"
      }
    }
  ]
}

Installer Skabelon

POST /api/template-install-add

Installer en ny skabelon på din server.

Anmodning

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

Anmodningsbrødtekst

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

Succesfuld respons (200)

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

Fjern skabelon

POST /api/template-install-delete

Fjern en skabeloninstallation fra din server.

Anmodning

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

Anmodningsbrødtekst

json
{
  "install_id": 5
}

Succesfuld respons (200)

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

Genstart skabeloninstallation

POST /api/template-install-retry

Genstart en mislykket skabeloninstallation.

Anmodning

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

Anmodningsbrødtekst

json
{
  "install_id": 5
}

Succesfuld respons (200)

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

Fejlkoder

HTTP-statuskoder

  • 200 OKAnmodningen var vellykket
  • 400 Dårlig anmodningUgyldige anmodningsparametre
  • 401 UautoriseretMangler eller ugyldig godkendelse
  • 403 ForbudtUtilstrækkelige rettigheder
  • 404 Ikke fundet: Ressource ikke fundet
  • 500 Intern Serverfejl: Serverfejl

Almindelige fejlmeddelelser

  • "Missing or invalid Authorization header"Autentificering påkrævet
  • "Invalid Trooper key": API-nøglen er ugyldig
  • "Unauthorized access"Utilstrækkelige rettigheder
  • "You must accept the terms and conditions": Vilkår ikke accepteret ved ordreoprettelse
  • "Invalid or missing contract interval"Kontraktintervallet skal være TIME, UGE eller MÅNED
  • "Insufficient budget"Ikke nok budget til operationen
  • "Server is locked and cannot be modified": Serveren er låst og kan ikke ændres

Ratelimiting

API-endepunkter kan være begrænset for at forhindre misbrug. Hvis du overskrider hastighedsbegrænsningen, modtager du en statuskode 429. Implementer passende genforsøgslogik med eksponentiel backoff.

Support

For API-support og spørgsmål, kontakt: support@trooper.ai

Åben API-konsol


Kontakt os for spørgsmål vedrørende API'et: Kontakt Support