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-endpunkter og dokumentationen er i øjeblikket på Beta. Kontakt os ved problemer: Support Kontakter.

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

Prøv API Konsol

Pro Tip: Giv blot denne dokumentation til din udviklings-LLM-agent – den vil integrere det direkte i koden.


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-konsollen.

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

HENT /api/blibs-privat

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!

Åbn API-konsol og test

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

HENT /api/ordrer

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/serverbestilling-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,
  "desired_status": "running",
  "migration_allowed": false
}

Succesfuld respons (200)

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

Fejlrespons (403)

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

Opdater serverens titel

POST /api/ændrings-titel

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/server-lås

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,
  "ssh_password": "generated-password"
}

Fejlrespons (403)

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

Hent Serverstatus Historik

GET /api/serverbestillingshistorik

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/migreringsmuligheder

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/flytning-kostnad

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/køb-migration

Udfør migreringen til en ny serverkonfiguration.

VIGTIGT Hvis du sender ugyldige data her, er intet garanteret. Supportteammet kan ikke gendanne din ordre, hvis du misbruger denne API-endpoint til køb af migreringer. Vi anbefaler at bruge UI-dashboardet.

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

HENT /api/malplier

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

HENT /api/malplade-konfiguration

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/malfoej-template-installation

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/malinstallation-slet

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/malinstall-genoptagelse

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 OK: Anmodning behandlet
  • 400 Forkert Anmodning: Ugyldige anmodningsparametre
  • 401 Ikke autoriseret: Mangler eller ugyldig autentificering
  • 403 Forbudt: Utilstræ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

Ved spørgsmål eller behov for støtte til API’en, kontakt: support@trooper.ai

Åbn API-konsol


Hvis du har spørgsmål relateret til API'et, kontakter os venligst: Support Kontakter