Skip to main content
IBM Quantum Platform

IBM Quantum API REST du service de calcul

L'API REST du service de calcul de l' IBM Quantum® vous permet d'exécuter des programmes sur des unités de traitement quantique (QPU) à l'aide des primitives « IBM Quantum », une interface simplifiée pour l'exécution de circuits qui s'appuie sur des techniques avancées de compilation à l'exécution, de suppression des erreurs et d'atténuation des erreurs, ainsi que d'obtenir des informations sur les instances et les QPU auxquelles vous avez accès.


Gérer les instances à l'aide de l'API du contrôleur de ressources d' IBM Cloud

Avant d'utiliser l'API REST du service de calcul « IBM Quantum », vous devez disposer d'une instance Quantum Compute. Vous pouvez créer et gérer des instances de deux manières :

  • Utilisation de l'interface utilisateur : créez et gérez des instances via l 'interface IBM Quantum Platform. Lorsque vous utilisez l'interface utilisateur, si vous cochez la case « Définir comme limite », instance_limit_seconds sera défini sur la même valeur que usage_allocation_seconds.
  • Utilisation de l'API : automatisez la mise à disposition et la configuration des instances par programmation à l'aide de l' API « IBM Cloud » Resource Controller (distincte de l'API REST du service Compute de IBM Quantum ). Utilisez l'API si vous devez définir des valeurs différentes pour la limite d'allocation et la limite d'utilisation.

Les sections suivantes décrivent l'approche API pour la gestion programmatique des instances, notamment la définition des limites d'allocation et l'accès au backend.

Paramètres d'instance

Lors de la création ou de la mise à jour d'une instance Quantum Compute via l'API IBM Cloud Resource Controller, vous pouvez configurer les paramètres suivants dans le corps de la requête :

  • instance_limit_seconds (facultatif) : la limite à définir pour l'instance (chaîne de caractères ou null). Pour Open Plan, la valeur par défaut est de 10 minutes si ce paramètre n'est pas spécifié.
  • usage_allocation_seconds: Temps alloué à l'instance (chaîne de caractères ou null), utilisé par le planificateur « fair-share » pour déterminer la priorité dans la file d'attente en fonction de l'utilisation de tous les QPU. Ne s'applique pas aux instances Pay-As-You-Go.
  • backends: Tableau des noms de backend disponibles pour cette instance (tableau de chaînes de caractères ou ["ANY"]). La valeur par défaut est ["ANY"] (tous les backends disponibles dans le forfait). Utilisez [] lorsqu'il n'y a pas de backend.

Extensions d'instance

Lorsque vous récupérez les détails d'une instance via l'API du contrôleur de ressources IBM Cloud, la réponse comprend une extensions propriété contenant des informations supplémentaires sur l'instance :

  • instance_limit_seconds: La limite de temps définie pour l'instance (entier ou null, ≥ 0)
  • usage_allocation_seconds: Durée allouée à l'instance (entier ou null, ≥ 0)
  • backends: La liste blanche des noms de backends disponibles pour cette instance (tableau obligatoire)

Pour plus d'informations sur les paramètres et les extensions, y compris des exemples et les points de terminaison de l'API, consultez la section « Utilisation des API de la plate-forme d' IBM Cloud pour accéder aux instances ».


Utiliser l'API REST du service de calcul « IBM Quantum »

Les sections suivantes décrivent comment utiliser l'API REST du service de calcul d' IBM Quantum pour soumettre des tâches et gérer des sessions. Ces opérations nécessitent une authentification et une instance existante.

Authentification

Vous devez fournir un jeton de support IBM Cloud Identity and Access Management (IAM) à chaque appel sous la forme d'un en-tête http. Vous pouvez le générer à l'aide de votre clé API à partir du tableau de bord, près du sommet pour un accès facile. Voir l' API des services d'identité IAM pour plus d'informations sur les jetons de support. Pour en générer un à l'aide de l'API IAM REST, vous pouvez utiliser la requête curl suivante.

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'

Réponse prévue

{
   "access_token": "<NEW_BEARER_TOKEN>",
   "refresh_token": "not_supported",
   "token_type": "Bearer",
   "expires_in": 3600,
   "expiration": 1473188353,
   "scope": "ibm_openid"
}
Qu'est-ce qu'un jeton au porteur?

Un jeton porteur est une pièce d'identité temporaire qui expire au bout d'une heure au maximum. Après l'expiration du jeton acquis, vous devez en générer un nouveau pour continuer à appeler IBM Cloud ou d'autres services API. Vous ne pouvez effectuer que les actions autorisées par le niveau d'accès qui vous a été attribué pour tous les comptes.

Utilisez la propriété de réponse expires_in dans la réponse de l'API pour identifier la durée de validité de votre jeton d'accès spécifique.

En outre, de nombreuses demandes à l'API REST requièrent le nom de ressource cloud (CRN) d'une instance dans l'en-tête de la demande. Vous pouvez voir les instances auxquelles vous avez accès dans le tableau de bord ou en sélectionnant la page Instances dans le menu en haut à gauche. Chaque instance est répertoriée avec son identifiant CRN.

Ensuite, soumettez votre jeton de porteur, votre CRN et IBM -API-Version à chaque demande dans un en-tête Authorization et Service-CRN avec ce format :

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

Exemple de demande :

région de l'ue-de

Si votre instance se trouve dans la région eu-de, utilisez plutôt 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'

Soumettre un job

Notez les points suivants lors de la soumission d'un travail :

  • Utilisez l' opération de création de travaux pour soumettre des travaux primitifs.
  • Vous pouvez soumettre plusieurs circuits dans un seul travail sous la forme d'un tableau de OpenQASM représentant ces circuits.
  • Spécifiez la primitive que vous souhaitez utiliser avec le paramètre program_id . Les valeurs primitives disponibles sont sampler et estimator.
  • Lorsque vous soumettez un travail à un QPU, vous devez spécifier le CRN de votre instance IBM Cloud.
  • Pour obtenir la liste des noms de backend que vous pouvez spécifier, consultez les backends auxquels vous avez accès dans la section Ressources de calcul de IBM Quantum Platform.

Exemple de demande de création d'un job d'estimateur avec un circuit et un observable :

région de l'ue-de

Si votre instance se trouve dans la région eu-de, utilisez plutôt 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
  }
}'

Utiliser les sessions

Pour démarrer une session, utilisez l' opération de création de session. La réponse fournit une adresse "id" que vous pouvez envoyer avec vos travaux pour les exécuter dans le cadre de la session.

L'exemple suivant crée une session (sans spécifier de mode) :

région de l'ue-de

Si votre instance se trouve dans la région eu-de, utilisez plutôt 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
}'

Vous obtiendrez une réponse de ce type :

{
  "id": "session_id1"
}

Dans votre prochain travail, utilisez l'identifiant de session pour exécuter ce travail dans le cadre de la session :

région de l'ue-de

Si votre instance se trouve dans la région eu-de, utilisez plutôt 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
  }
}'
Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.