Bereiche, URLs und Anfrageformat

Wie URLs der REST-API aus einer Projekt-ID aufgebaut sind, welche Header Anfragen und Antworten tragen und wie Bodys, Zeitstempel und Beträge formatiert sind.

Diese Referenz beschreibt, wie URLs der REST-API aufgebaut sind, welche Header Anfragen und Antworten tragen und wie Anfrage- und Antwort-Bodys formatiert sind. Die Vorgänge selbst finden Sie in der API-Referenz.

URL-Struktur

Eine Anfrage-URL besteht aus diesen Teilen:

Teile einer Anfrage-URL
https://<api-host>/api/v1/scopes/<project-id>/<service>/<collection>/<resource-id>/actions/<action>
TeilBedeutung
https://<api-host>/api/v1Die Basis-URL: /api/v1 auf dem API-Host.
/scopes/<project-id>Das Projekt, das die Ressource enthält. Die API nennt diese ID die Bereichs-ID, scopeId.
<service>Der Dienst, z. B. compute, storage oder network. Siehe Dienste.
<collection>Ein Ressourcentyp im Dienst, z. B. instances oder volumes.
<resource-id>Eine Ressource der Sammlung. Lassen Sie sie weg, um die gesamte Sammlung zu adressieren.
/actions/<action>Eine Aktion für die Ressource, z. B. start oder stop. Aktionen sind immer Anfragen mit POST.

Einige Beispiele:

AnfrageBedeutung
GET /scopes/<project-id>/compute/instancesDie Instanzen des Projekts auflisten.
GET /scopes/<project-id>/compute/instances/<instance-id>Eine Instanz lesen.
POST /scopes/<project-id>/compute/instances/<instance-id>/actions/stopEine Instanz stoppen.
DELETE /scopes/<project-id>/storage/volumes/<volume-id>Ein Volume löschen.

Codieren Sie jedes Pfadsegment, das Sie einfügen, etwa eine ID oder einen Namen, für die Verwendung in einer URL.

ID eines Projekts ermitteln

Die Bereichs-ID in einem Pfad ist die ID eines Projekts. Sie finden sie an zwei Stellen:

  • Die Adresse der Konsole. Jede Seite eines Projekts hat nach dem Sprachcode eine Adresse der Form /t/<tenant-id>/s/<subscription-id>/project/<project-id>/…. Der Teil nach /project/ ist die Projekt-ID.
  • Die API. GET /account/whoami gibt die Mandanten, Abonnements und Projekte zurück, auf die Sie zugreifen können, mit ihren IDs.
Ausschnitt einer Antwort von GET /account/whoami
{
  "tenants": [
    {
      "id": "acme",
      "name": "Acme Corp",
      "subscriptions": [
        {
          "id": "acme-production",
          "tenantId": "acme",
          "name": "Production",
          "currency": "TRY",
          "defaultRegion": "ist-1",
          "projects": [
            {
              "id": "acme-production-web-platform",
              "subscriptionId": "acme-production",
              "name": "web-platform",
              "region": "ist-1"
            }
          ]
        }
      ]
    }
  ]
}

Abonnement- und Projekt-IDs ändern sich nicht, wenn Sie Abonnements oder Projekte umbenennen. Lesen Sie die IDs aus GET /account/whoami, statt sie aus Namen abzuleiten.

Wenn Sie whoami mit einem API-Token oder einem Dienstkontoschlüssel aufrufen, listet es nur den Mandanten auf, zu dem die Anmeldedaten gehören.

Dienste

DienstsegmentSammlungenProdukt
computeinstances, flavors, key-pairsVirtual Machines
computeimagesImages
compute, storagesnapshotsSnapshots
storagevolumes, volume-transfersBlock Storage
storagebuckets, temp-url-keyObject Storage
storagebackup-plansBackup Center
networknetworks, routers, network-interfacesVirtual Networks
networksecurity-groupsSecurity Groups
networkload-balancersLoad Balancers
networkvpnSite-to-Site VPN
networkfloating-ipsFloating IPs
iamusers, roles, service-accounts, api-tokens und weitereIdentity & Access Management
iamopenstack-credentials, openstack-api-accessOpenStack API Access
observabilityalert-rules, notification-channelsMonitoring & Alerts
billingsummary, cost-reports, budgets, commitments, invoicesCost Management
activityactivity-eventsActivity Log

In der API heißt eine Größe Flavor: flavors listet die Größen auf. Einige Pfade liegen nicht unter einem Projekt:

PfadZweck
/account/whoamiIhre Identität und die Mandanten, Abonnements und Projekte, auf die Sie zugreifen können.
/operations/<operation-id>Einen asynchronen Vorgang lesen. Siehe Synchrone und asynchrone Anfragen.
/operations/<operation-id>/actions/cancelEinen Vorgang abbrechen, der noch nicht abgeschlossen ist.
/regions/<region>/volume-typesDie Volume-Typen einer Region.

Ein Pfad, der zu keinem Dienst passt, gibt 404 Not Found zurück.

Methoden

MethodeVerwendung
GETEine Ressource lesen oder eine Sammlung auflisten.
POSTEine Ressource erstellen oder unter /actions/<action> eine Aktion ausführen.
PATCHEinige Felder einer Ressource ändern.
PUTEine Einstellung als Ganzes ersetzen, z. B. die Tags einer Ressource unter /tags.
DELETEEine Ressource löschen.

Anfrageheader

HeaderSenden mitWert
AuthorizationJeder AnfrageBearer, gefolgt von einem API-Token oder einem Dienstkontoschlüssel. Siehe Mit API-Tokens authentifizieren.
Content-TypeAnfragen mit Bodyapplication/json
Idempotency-KeyJeder Anfrage mit POST, PUT, PATCH und DELETE. Mit einem API-Token oder einem Dienstkontoschlüssel ist er bei Anfragen mit POST, die eine Ressource erstellen, erforderlich.Eine neue UUID für jede neue Anfrage. Siehe Idempotente Anfragen.
If-MatchAktualisierungen und Löschvorgängen, die die Version prüfenDer Wert von ETag aus Ihrem letzten Lesezugriff. Siehe Parallelitätssteuerung.
X-Request-IdOptionalIhre eigene ID für die Anfrage. Die API gibt sie in der Antwort zurück.

Antwortheader

HeaderZurückgegeben beiWert
X-Request-IdJeder AntwortDie ID der Anfrage: Ihre eigene oder eine, die die API erzeugt hat.
ETagLesezugriffen und Aktualisierungen vieler RessourcenEine Versionskennung der Ressource, z. B. W/"3a7bd3e2360a3d29eea436fcfb7e44c735d117c4".
Retry-After429 Too Many RequestsDie Anzahl der Sekunden, die Sie vor einer Wiederholung warten müssen.
X-RateLimit-LimitAnfragen mit einem API-Token oder einem DienstkontoschlüsselDie Anzahl der Anfragen, die das aktuelle Zeitfenster erlaubt.
X-RateLimit-RemainingAnfragen mit einem API-Token oder einem DienstkontoschlüsselDie Anzahl der Anfragen, die im aktuellen Zeitfenster übrig sind.
X-RateLimit-ResetAnfragen mit einem API-Token oder einem DienstkontoschlüsselDie Anzahl der Sekunden, bis das Zeitfenster zurückgesetzt wird.

Body-Format

  • JSON. Anfrage- und Antwort-Bodys sind JSON. Feldnamen stehen in Camel Case, z. B. deletionProtection oder subscriptionId.
  • Felder ohne Wert. In einer Antwort wird ein optionales Feld ohne Wert weggelassen, statt auf null gesetzt zu werden. Ein Feld, das das Schema immer enthält, ist vorhanden und ist null, wenn es keinen Wert hat.
  • Zeitstempel. ISO-8601-Zeichenfolgen in UTC, z. B. 2026-10-08T09:30:00Z.
  • IDs. Opake Zeichenfolgen. Verwenden Sie sie genau so, wie die API sie zurückgibt.
  • Listen. Ein Listenvorgang gibt { "data": [...], "meta": {...} } zurück. Siehe Paginierung.
  • Fehler. Eine Fehlerantwort hat einen eigenen Body. Siehe Fehler.

Beträge

Geldbeträge sind Ganzzahlen in Zehntausendsteln der Währungseinheit. Ein Feld, dessen Name auf Minor endet, enthält eine solche Ganzzahl, und ein Geldobjekt enthält eine in amount, mit der Währung in currency:

Ein Geldobjekt
{ "amount": 125000, "currency": "TRY" }

Dieser amount entspricht 12,5 Einheiten seiner Währung: Teilen Sie durch 10.000, um den Betrag in der Währungseinheit zu erhalten. Lesen Sie diese Ganzzahlen nicht als Cent.

Beispiel

Instanzen eines Projekts auflisten
curl "https://<api-host>/api/v1/scopes/<project-id>/compute/instances?page=1&pageSize=50" \
  -H "Authorization: Bearer $PC_TOKEN"
  • <api-host>: der Hostname der API.
  • <project-id>: die ID des Projekts.
  • PC_TOKEN: eine Umgebungsvariable, die Ihr API-Token enthält.

Auf dieser Seite