Skip to main content
IBM Quantum Platform

IBM Quantum REST-API für den Compute-Dienst

Mit der REST-API des „ IBM Quantum® Compute Service“ können Sie auf Quantenprozessoreinheiten (QPUs) Berechnungen unter Verwendung von „ IBM Quantum “-Primitiven ausführen – einer vereinfachten Schnittstelle für die Schaltkreisaufführung, die auf fortschrittlichen Techniken zur Laufzeitkompilierung, Fehlerunterdrückung und Fehlerminderung basiert. Außerdem können Sie damit Informationen zu den Instanzen und QPUs abrufen, auf die Sie Zugriff haben.


Verwalten von Instanzen mit der API des „ IBM Cloud “-Ressourcen-Controllers

Bevor Sie die REST-API des „ IBM Quantum Compute Service“ nutzen können, benötigen Sie eine Quantum Compute-Instanz. Sie können Instanzen auf zwei Arten erstellen und verwalten:

In den folgenden Abschnitten wird der API-Ansatz für die programmatische Instanzverwaltung beschrieben, einschließlich der Festlegung von Zuweisungsgrenzen und des Backend-Zugriffs.

Instanzparameter

Wenn Sie eine Quantum Compute-Instanz über die API „ IBM Cloud “ ( Resource Controller ) erstellen oder aktualisieren, können Sie die folgenden Parameter im Request-Body konfigurieren:

  • instance_limit_seconds (optional): Der für die Instanz festzulegende Grenzwert (Zeichenkette oder null). Bei „Open Plan“ beträgt die Standardeinstellung 10 Minuten, sofern kein Wert angegeben wird.
  • usage_allocation_seconds: Der für die Instanz zugewiesene Zeitanteil (Zeichenkette oder null), der vom Fair-Share-Scheduler verwendet wird, um die Warteschlangenpriorität auf der Grundlage der Auslastung aller QPUs zu bestimmen. Gilt nicht für Pay-As-You-Go-Instanzen.
  • backends: Array der für diese Instanz verfügbaren Backend-Namen (Array von Zeichenfolgen oder ["ANY"]). Standardmäßig sind ["ANY"] (alle im Tarif verfügbaren Backends) ausgewählt. Verwende [] für keine Backends.

Instanzerweiterungen

Wenn Sie Instanzdetails über die API des „ IBM Cloud “-Ressourcen-Controllers abrufen, enthält die Antwort eine extensions Eigenschaft mit zusätzlichen Informationen zur Instanz:

  • instance_limit_seconds: Die für die Instanz festgelegte Zeitbegrenzung (Ganzzahl oder null, ≥ 0)
  • usage_allocation_seconds: Für die Instanz zugewiesene Zeit (Ganzzahl oder null, ≥ 0)
  • backends: Die Liste der für diese Instanz verfügbaren Backend-Namen (erforderliches Array)

Ausführliche Informationen zu Parametern und Erweiterungen, einschließlich Beispielen und API-Endpunkten, finden Sie unter „Verwenden der APIs der „ IBM Cloud “-Plattform für den Zugriff auf Instanzen “.


Verwenden Sie die REST-API des „ IBM Quantum “-Compute-Dienstes

In den folgenden Abschnitten wird beschrieben, wie Sie die REST-API des „ IBM Quantum Compute Service“ nutzen können, um Aufträge einzureichen und Sitzungen zu verwalten. Für diese Vorgänge sind eine Authentifizierung und eine vorhandene Instanz erforderlich.

Authentifizierung

Sie müssen bei jedem Aufruf ein IBM Cloud Identity and Access Management (IAM) Bearer-Token als http-Header bereitstellen. Sie können diese mit Ihrem API-Schlüssel vom Dashboard aus generieren, das sich oben in der Nähe befindet und leicht zugänglich ist. Weitere Informationen zu Inhaber-Tokens finden Sie in der IAM Identity Services API. Um einen solchen über die IAM REST API zu erstellen, können Sie die folgende curl-Anfrage verwenden.

curl -X POST 'https://iam.cloud.ibm.com/identity/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=MY_APIKEY'

Erwartete Antwort

{
   "access_token": "<NEW_BEARER_TOKEN>",
   "refresh_token": "not_supported",
   "token_type": "Bearer",
   "expires_in": 3600,
   "expiration": 1473188353,
   "scope": "ibm_openid"
}
Was ist eine Inhaberwertmarke?

Ein Inhaber-Token ist ein temporärer Berechtigungsnachweis, der spätestens nach einer Stunde abläuft. Wenn das erworbene Token abläuft, müssen Sie ein neues Token generieren, um IBM Cloud oder andere Dienst-APIs weiterhin aufrufen zu können. Sie können in allen Konten nur die Aktionen durchführen, die durch die Ihnen zugewiesene Zugriffsstufe erlaubt sind.

Verwenden Sie die Antwort-Eigenschaft expires_in in der API-Antwort, um die Dauer der Gültigkeit Ihres spezifischen Zugriffstokens zu ermitteln.

Außerdem erfordern viele Anfragen an die REST-API den Cloud Resource Name (CRN) einer Instanz in der Kopfzeile der Anfrage. Sie können die Instanzen, auf die Sie Zugriff haben, auf dem Dashboard sehen, oder indem Sie die Seite Instanzen im Menü oben links auswählen. Jede Instanz ist mit ihrer CRN-Kennung aufgeführt.

Dann übermitteln Sie Ihr Inhaber-Token, Ihre CRN und die IBM -API-Version bei jeder Anfrage in einem Authorization und Service-CRN Header mit diesem Format:

Authorization: Bearer <YOUR_BEARER_TOKEN>
Service-CRN: <YOUR_INSTANCE_CRN>
IBM-API-Version: <YYYY-MM-DD>

Beispielanforderung:

eu-de-Gebiet

Wenn sich Ihre Instanz in der Region eu-de befindet, verwenden Sie stattdessen diese URL: https://eu-de.quantum.cloud.ibm.com/api/v1/backends

curl -X 'GET' \
    'https://quantum.cloud.ibm.com/api/v1/backends' \
    -H 'accept: application/json' \
    -H 'Authorization: Bearer <YOUR_BEARER_TOKEN>' \
    -H 'Service-CRN: <YOUR_INSTANCE_CRN>' \
    -H 'IBM-API-Version: 2026-04-15'

Einen Job einreichen

Beachten Sie die folgenden Hinweise, wenn Sie einen Auftrag übermitteln:

  • Verwenden Sie den Vorgang "Auftrag erstellen", um primitive Aufträge zu übermitteln.
  • Sie können mehrere Stromkreise in einem einzigen Auftrag als ein Array von OpenQASM strings, die diese Stromkreise repräsentieren.
  • Geben Sie das zu verwendende Primitiv mit dem Parameter program_id an. Verfügbare primitive Werte sind sampler und estimator.
  • Wenn Sie einen Auftrag an einen QPU übermitteln, müssen Sie Ihre IBM Cloud Instanz-CRN angeben.
  • Eine Liste der Backend-Namen, die Sie angeben können, finden Sie im Abschnitt Compute-Ressourcen auf IBM Quantum Platform.

Beispielanfrage zur Erstellung eines Schätzerauftrags mit einem Schaltkreis und einer Beobachtungsgröße:

eu-de-Gebiet

Wenn sich Ihre Instanz in der Region eu-de befindet, verwenden Sie stattdessen diese URL: https://eu-de.quantum.cloud.ibm.com/api/v1/jobs

curl -X 'POST' \
  'https://quantum.cloud.ibm.com/api/v1/jobs' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer <YOUR_BEARER_TOKEN>' \
  -H 'Service-CRN: <YOUR_INSTANCE_CRN>' \
  -H 'IBM-API-Version: 2026-04-15' \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "program_id": "estimator",
  "backend": "ibm_brisbane",
  "params": {
    "pubs": [[
      "OPENQASM 3.0; include \"stdgates.inc\"; bit[1] c; x $0; c[0] = measure $0;", "Z"
    ]],
    "options": {"dynamical_decoupling": {"enable": true}},
    "version": 2,
    "resilience_level": 1
  }
}'

Sitzungen verwenden

Um eine Sitzung zu starten, verwenden Sie den Vorgang "Sitzung erstellen". Die Antwort enthält eine "id" , die Sie mit Ihren Aufträgen senden können, um sie als Teil der Sitzung auszuführen.

Das nächste Beispiel erstellt eine Sitzung (ohne Angabe eines Modus):

eu-de-Gebiet

Wenn sich Ihre Instanz in der Region eu-de befindet, verwenden Sie stattdessen diese URL: https://eu-de.quantum.cloud.ibm.com/api/v1/sessions

curl -X POST \
  'https://quantum.cloud.ibm.com/api/v1/sessions' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <YOUR_BEARER_TOKEN>' \
  -H 'Service-CRN: <YOUR_INSTANCE_CRN>' \
  -H 'IBM-API-Version: 2026-04-15' \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "mode": "dedicated",
  "max_ttl": 28800
}'

Sie werden eine Antwort wie diese erhalten:

{
  "id": "session_id1"
}

Verwenden Sie bei Ihrem nächsten Auftrag die Sitzungs-ID, um diesen Auftrag als Teil der Sitzung auszuführen:

eu-de-Gebiet

Wenn sich Ihre Instanz in der Region eu-de befindet, verwenden Sie stattdessen diese URL: https://eu-de.quantum.cloud.ibm.com/api/v1/jobs

curl -X POST \
  'https://quantum.cloud.ibm.com/api/v1/jobs' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <YOUR_BEARER_TOKEN>' \
  -H 'Service-CRN: <YOUR_INSTANCE_CRN>' \
  -H 'IBM-API-Version: 2026-04-15' \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "program_id": "sampler",
  "backend": "ibm_brisbane",
  "session_id": "session_id1",
  "params": {
    "pubs": [[
      "OPENQASM 3.0; include \"stdgates.inc\"; bit[1] c; x $0; c[0] = measure $0;"
    ]],
    "options": {},
    "version": 2
  }
}'
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.