Skip to main content
IBM Quantum Platform
Cette API REST est uniquement disponible pour les membres du On-Prem Plan qui l'ont activée dans leur environnement.

IBM Quantum System REST API

L'interface de programmation d'applications ( IBM® ) Quantum System REST API permet d'accéder directement à l'ordinateur quantique sur site installé dans les locaux du client. L'API est déployée localement après avoir été intégrée à l'infrastructure du client (généralement un environnement HPC). Le rôle de l'API est d'abstraire le QPU et les ressources hétérogènes du moteur d'exécution classique. Grâce à cette interface, les utilisateurs peuvent exécuter des charges de travail sur des QPU à l'aide de primitives d' Qiskit Runtime, sans avoir à se soucier des détails liés au matériel.


Authentification

Vous devez inclure un jeton « bearer » IAM ( IBM Cloud® Identity and Access Management ) dans l'en-tête « HTTP » de chaque requête. Pour générer un jeton porteur, vous devez d'abord utiliser la clé API que vous avez créée lors de votre inscription, dans le cadre du processus d'intégration (demandez à votre administrateur si vous ne disposez pas de votre clé API). Vous générez ensuite le jeton porteur à l'aide de l'API REST IAM avec 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 attendue :

{
   "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 un identifiant temporaire qui expire au bout d'une heure au maximum. Une fois que le jeton obtenu a expiré, vous devez en générer un nouveau pour pouvoir continuer à appeler l'API IBM Cloud ou d'autres API de service. Vous ne pouvez effectuer que les actions autorisées par votre niveau d'accès attribué pour l'ensemble des comptes.

Utilisez la propriété « response expires_in » dans la réponse de l'API pour déterminer la durée de validité de votre jeton d'accès spécifique. Pour plus d'informations sur les jetons au porteur, consultez la documentation relative à l' IBM Cloud.

De plus, toutes les requêtes adressées à l'API REST doivent inclure le nom de ressource cloud (CRN) de l'instance dans l'en-tête de la requête. Vous pouvez consulter les instances auxquelles vous avez accès en vous rendant sur la page « Instances » depuis le menu en haut à gauche, puis en sélectionnant l'onglet «* Accès direct* ». Chaque instance est répertoriée avec son identifiant CRN et correspond à votre infrastructure (généralement votre environnement HPC). Si vous ne pouvez pas accéder à cette page, veuillez contacter votre administrateur.

Indiquez votre jeton au porteur, votre CRN et la version de l'API IBM dans chaque requête, au sein des en-têtes Authorization``Service-CRN et, en respectant le format suivant :

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

Exemple de demande :

curl -X 'GET' \
 '<YOUR_QSA_URL>/v1/backends' \
 -H 'accept: application/json' \
 -H 'Authorization: Bearer <YOUR_BEARER_TOKEN>' \
 -H 'Service-CRN: <YOUR_INSTANCE_CRN>' \
 -H 'IBM-API-Version: 2026-02-15'

Soumettre un job

Veuillez tenir compte des points suivants lorsque vous soumettez un travail :

  • Utilisez l 'opération « Créer une tâche » pour soumettre des tâches primitives.
  • Vous pouvez soumettre plusieurs circuits dans une seule tâche sous la forme d'un tableau de chaînes de caractères de type « OpenQASM » représentant ces circuits.
  • Indiquez la primitive que vous souhaitez utiliser à l'aide du program_id paramètre. Les valeurs primitives disponibles sont sampler et estimator.
  • Lorsque vous soumettez une tâche à un QPU sur site, vous devez indiquer le CRN de votre instance Direct Access d' IBM Cloud.
  • Vous devez indiquer le nom de votre système Quantum sur site comme nom de backend. Si vous avez accès à l'interface On-Prem Plan, vous pouvez consulter le nom du backend dans la section « Ressources de calcul » de IBM Quantum Platform.

Exemple de requête pour créer une tâche Estimator avec un circuit et une variable observable :

curl -X 'POST' \
'<YOUR_QSA_URL>/v1/jobs' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <YOUR_BEARER_TOKEN>' \
-H 'Service-CRN: <YOUR_DIRECT_ACCESS_PLAN_INSTANCE_CRN>' \
-H 'IBM-API-Version: 2026-02-15' \
-H 'Content-Type: application/json' \
--data-raw '{
{
"id": "6e32f594-189e-4bc5-89a2-3c21e1c7e75a",
"program_id": "sampler",
"backend": "ibm_<YOUR_SYSTEM_NAME>",
"timeout_secs": 10000,
"storage": {
 "input": {
   "type": "ibmcloud_cos",
   "region": "us-east",
   "region_type": "regional",
   "bucket_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/abc123:abc123:bucket:my-bucket",
   "object_name": "params:6e32f594-189e-4bc5-89a2-3c21e1c7e75a"
 },
 "results": {
   "type": "ibmcloud_cos",
   "region": "us-east",
   "region_type": "regional",
   "bucket_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/abc123:abc123:bucket:my-bucket",
   "object_name": "results:6e32f594-189e-4bc5-89a2-3c21e1c7e75a"
 },
 "logs": {
   "type": "ibmcloud_cos",
   "region": "us-east",
   "region_type": "regional",
   "bucket_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/abc123:abc123:bucket:my-bucket",
   "object_name": "logs:6e32f594-189e-4bc5-89a2-3c21e1c7e75a"
 }
}
}
}'
Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.