AGAnchorGPU

Entwickler

API-Referenz

Authentifizieren Sie sich mit einem Sitzungs- oder API-Schlüssel und verwenden Sie die implementierten Konto-, Angebots-, Instanz- und Abrechnungs-Endpunkte.

8 Min. Lesezeit · Aktualisiert

Authentifizierung

Der Basispfad ist /api/v1. Browseranfragen verwenden das beim Anmelden erstellte HttpOnly-Sitzungscookie. Skripte können Authorization: Bearer gefolgt von einem aktiven API-Schlüssel verwenden. Schlüssel besitzen vollständige Kontoberechtigungen und werden bei der Erstellung einmalig angezeigt.

Die lokale UI verwendet gh_demo_-Schlüssel. Das Widerrufen eines Schlüssels verhindert sofort neue authentifizierte Anfragen mit diesem Schlüssel. Legen Sie Schlüssel nicht in URLs oder browser-seitige Bundles.

GET /api/v1/balance
Authorization: Bearer <your-api-key>

200 OK
{ "currency": "USD", "balanceCents": 50000, "derivedFrom": "ledger_entries" }

Anfrage- und Wiederholungsregeln

POST- und PATCH-Bodys sind JSON-Objekte, mit Content-Type: application/json. Senden Sie {} für Aktionen ohne Parameter. Bodys sind auf 32 KiB Text begrenzt. Antworten verwenden Cache-Control: no-store.

Bereitstellung, manuelle Verlängerung und Rücknahme erfordern einen Idempotency-Key von 8–128 Zeichen. Verwenden Sie einen neuen Schlüssel für eine neue beabsichtigte Operation und denselben Schlüssel für deren Wiederholung. Verwenden Sie ihn niemals mit einem anderen Inhalt erneut. Eine Wiederholungsantwort enthält replayed: true.

Instanzangebote berechnen den aktuellen Katalogpreis, ohne Kapazität zu reservieren. Senden Sie expectedPriceCents bei der Bereitstellung; bei einer Abweichung wird 409 zurückgegeben, damit der Preis erneut geprüft werden kann.

POST /api/v1/instances
Content-Type: application/json
Idempotency-Key: <unique-operation-id>
Authorization: Bearer <your-api-key>

{
  "sku": "nvidia-rtx-4090",
  "gpuCount": 1,
  "region": "dal",
  "image": "pytorch",
  "period": "week",
  "options": [],
  "sshKeyId": "<saved-key-id>",
  "autoRenew": false,
  "expectedPriceCents": 11000
}

Implementierte Endpunkte

Alle Kontoressourcen sind auf ihren Eigentümer beschränkt. Der Verfügbarkeitsendpunkt ist öffentlich und stellt den Katalog-Snapshot bereit, keine Live-Hardware-Prüfung.

MethodePfad nach /api/v1Zweck
POST/auth/register · /auth/loginBenutzername + Passwort; Sitzung erstellen
POST/auth/recoverBenutzername + ungenutzter Code + neues Passwort
POST/auth/logoutAktuelle Browsersitzung widerrufen
GET/me · /balance · /ledgerKonto, Saldo und letzte 100 Einträge
GET / DELETE/sessions · /sessions/:idAktive Sitzungen auflisten oder eine widerrufen
GET/availabilityÖffentlicher Katalog und regionaler Bestands-Schnappschuss
GET / POST/deposit-quotesAktive Angebote auflisten oder eines mit asset + desiredUsdCents erstellen
POST/demo/confirm-depositAngebots-ID; nur lokale Entwicklung
GET/deposits · /withdrawalsNeueste 100 Datensätze für dieses Konto
POST/withdrawalsAsset + Ziel + amountUsdCents; idempotent
POST/instance-quotesGPU, Anzahl, Region, Image, Zeitraum und Optionen
GET / POST/instancesZuweisungen auflisten oder bereitstellen; die Bereitstellung ist idempotent
POST/instances/:id/start · stop · release · renewLebenszyklus-Aktion; Verlängerung ist idempotent
PATCH/instances/:id/auto-renewSetzen Sie enabled auf true oder false
GET / POST/ssh-keys · /api-keysKontoschlüssel auflisten oder erstellen
DELETE/ssh-keys/:id · /api-keys/:idEinen Schlüssel widerrufen

Fehler explizit behandeln

Fehler haben {error, message}: einen stabilen Code und eine lesbare Erklärung. 400 zeigt ungültige Eingaben an, 401 fehlende oder ungültige Authentifizierung, 403 einen abgelehnten Ursprung, 404 eine unbekannte oder nicht zugeordnete Ressource, 409 einen Guthaben/state/duplicate-Konflikt und 415 den falschen Inhaltstyp.

Erstellen Sie für ein abgelaufenes Einzahlungsangebot ein weiteres Angebot. Laden Sie bei geändertem Instanzstatus die Instanz neu, bevor Sie über eine weitere Aktion entscheiden. Verwenden Sie nach einer Netzwerkunterbrechung den Vorgangsschlüssel erneut, anstatt eine zweite Belastung zu erzeugen.

API-Schlüssel erstellen