Skip to main content
IBM Quantum Platform
Esta API de REST está disponível apenas para membros do On-Prem Plan que a ativaram em seu ambiente.

IBM Quantum System REST API

O IBM® Quantum System REST API oferece acesso direto ao computador quântico local instalado nas instalações do cliente. A API é implantada localmente após a integração com a infraestrutura do cliente (normalmente um ambiente de HPC). A função da API é abstrair a QPU e os recursos heterogêneos do ambiente de execução clássico. Por meio dessa interface, os usuários executam cargas de trabalho em QPUs utilizando primitivas d Qiskit Runtime, sem precisar lidar com detalhes específicos do hardware.


Autenticação

É necessário incluir um token de portador do IAM ( IBM Cloud® Identity and Access Management ) no cabeçalho HTTP de cada solicitação. Para gerar um token de portador, primeiro você precisa usar a chave de API criada durante a sua integração, como parte do processo de integração (consulte o seu administrador caso não tenha a sua chave de API). Em seguida, você gera o token de portador usando a API REST do IAM com a seguinte curl solicitação.

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'

Resposta esperada:

{
   "access_token": "<NEW_BEARER_TOKEN>",
   "refresh_token": "not_supported",
   "token_type": "Bearer",
   "expires_in": 3600,
   "expiration": 1473188353,
   "scope": "ibm_openid"
}
O que é um token ao portador?

Um token de portador é uma credencial temporária que expira após, no máximo, uma hora. Após o vencimento do token adquirido, você deverá gerar um novo para continuar acessando IBM Cloud ou outras APIs de serviço. Você só pode realizar ações que sejam permitidas pelo seu nível de acesso atribuído em todas as contas.

Use a propriedade response expires_in na resposta da API para identificar por quanto tempo seu token de acesso específico é válido. Para obter mais informações sobre tokens ao portador, consulte a documentação do IBM Cloud.

Além disso, todas as solicitações à API REST devem incluir o Nome do Recurso em Nuvem (CRN) da instância no cabeçalho da solicitação. Você pode visualizar as instâncias às quais tem acesso acessando a página “Instâncias ” no menu superior esquerdo e selecionando a guia “Acesso direto ”. Cada instância é listada com seu identificador CRN e representa sua infraestrutura (normalmente seu ambiente de HPC). Se você não tiver acesso a esta página, entre em contato com o seu administrador.

Envie seu token de portador, CRN e IBM -API-Version em todas as solicitações nos cabeçalhos Authorization``Service-CRN e neste formato:

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

Solicitação de exemplo:

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'

Enviar um job

Observe o seguinte ao enviar um trabalho:

  • Use a operação de criação de tarefa para enviar tarefas primitivas.
  • Você pode enviar vários circuitos em uma única tarefa como uma matriz de strings do tipo OpenQASM que representam os circuitos.
  • Especifique a primitiva que deseja usar com o program_id parâmetro. Os valores primitivos disponíveis são sampler e estimator.
  • Ao enviar um trabalho para uma QPU local, é necessário especificar o CRN da sua instância do Direct Access do IBM Cloud.
  • Você deve especificar o nome do seu sistema Quantum local como nome do backend. Se você tiver acesso ao On-Prem Plan, poderá visualizar o nome do backend na seção Recursos de computação do IBM Quantum Platform.

Exemplo de solicitação para criar uma tarefa no Estimator com um circuito e um observável:

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"
 }
}
}
}'
Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.