Skip to main content
IBM Quantum Platform

IBM Quantum 컴퓨트 서비스 REST API

IBM Quantum® 컴퓨팅 서비스 REST API를 사용하면, 고급 런타임 컴파일, 오류 억제 및 오류 완화 기술을 기반으로 회로 실행을 위한 간소화된 인터페이스인 ‘ IBM Quantum ’ 프리미티브를 활용해 양자 처리 장치(QPU)에서 작업을 실행할 수 있을 뿐만 아니라, 사용자가 액세스 권한을 가진 인스턴스QPU에 대한 정보를 확인할 수도 있습니다.


IBM Cloud 리소스 컨트롤러 API를 사용하여 인스턴스 관리하기

IBM Quantum Compute Service REST API를 사용하기 전에 Quantum Compute 인스턴스가 필요합니다. 인스턴스를 생성하고 관리하는 방법은 두 가지가 있습니다:

다음 섹션에서는 할당 한도 설정 및 백엔드 액세스를 포함한 프로그래매틱 인스턴스 관리를 위한 API 방식에 대해 설명합니다.

인스턴스 매개변수

IBM Cloud ( Resource Controller ) API를 통해 양자 컴퓨팅 인스턴스를 생성하거나 업데이트할 때, 요청 본문에 다음 매개변수를 설정할 수 있습니다

  • instance_limit_seconds (선택 사항): 인스턴스에 설정할 제한값(문자열 또는 null). Open Plan의 경우, 생략 시 기본값은 10분입니다.
  • usage_allocation_seconds: 인스턴스에 할당된 시간(문자열 또는 null). 페어-셰어 스케줄러가 모든 QPU의 사용량을 기반으로 큐 우선순위를 결정하는 데 사용됩니다. Pay-As-You-Go 인스턴스에는 적용되지 않습니다.
  • backends: 이 인스턴스에서 사용할 수 있는 백엔드 이름의 배열(문자열 배열 또는 ["ANY"]). 기본값은 (해당 요금제에서 이용 ["ANY"] 가능한 모든 백엔드)입니다. 백엔드가 없는 경우 를 [] 사용하십시오.

인스턴스 확장

IBM Cloud 리소스 컨트롤러 API를 통해 인스턴스 세부 정보를 가져올 때, 응답에는 추가 인스턴스 정보가 포함된 속성이 extensions 포함됩니다:

  • instance_limit_seconds: 인스턴스에 설정된 시간 제한 (정수 또는 null, 0 이상)
  • usage_allocation_seconds: 인스턴스에 할당된 시간 (정수 또는 null, 0 이상)
  • backends: 이 인스턴스에서 사용할 수 있는 백엔드 이름의 허용 목록 (필수 배열)

매개변수 및 확장 기능에 대한 자세한 내용(예시 및 API 엔드포인트 포함)은 ‘ IBM Cloud 플랫폼 API를 사용하여 인스턴스에 액세스하기’를 참조하십시오.


IBM Quantum 컴퓨트 서비스 REST API 사용

다음 섹션에서는 IBM Quantum Compute Service REST API를 사용하여 작업을 제출하고 세션을 관리하는 방법을 설명합니다. 이러한 작업에는 인증과 기존 인스턴스가 필요합니다.

인증

모든 호출에 IBM Cloud Identity and Access Management (IAM) 베어러 토큰을 http 헤더로 제공해야 합니다. 쉽게 액세스할 수 있도록 대시보드 상 단에 있는 API 키를 사용하여 생성할 수 있습니다. 무기명 토큰에 대한 자세한 내용은 IAM 신원 서비스 API를 참조하세요. IAM REST API를 사용하여 생성하려면 다음 curl 요청을 사용할 수 있습니다.

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'

예상 응답

{
   "access_token": "<NEW_BEARER_TOKEN>",
   "refresh_token": "not_supported",
   "token_type": "Bearer",
   "expires_in": 3600,
   "expiration": 1473188353,
   "scope": "ibm_openid"
}
무기명 토큰이란 무엇인가요?

무기명 토큰은 한 시간 이내에 만료되는 임시 자격증명입니다. 획득한 토큰이 만료된 후에도 IBM Cloud 또는 기타 서비스 API를 계속 호출하려면 새 토큰을 생성해야 합니다. 모든 계정 내에서 할당된 액세스 권한 수준에 따라 허용된 작업만 수행할 수 있습니다.

API 응답에서 expires_in 응답 속성을 사용하여 특정 액세스 토큰이 유효한 기간을 식별합니다.

또한 REST API에 대한 많은 요청에는 요청 헤더에 인스턴스의 클라우드 리소스 이름 (CRN)이 필요합니다. 대시보드에서 또는 왼쪽 상단 메뉴의 인스턴스 페이지를 선택하여 액세스 권한이 있는 인스턴스를 확인할 수 있습니다. 각 인스턴스는 해당 CRN 식별자와 함께 나열됩니다.

그런 다음 모든 요청에 대해 AuthorizationService-CRN 헤더에 무기명 토큰, CRN, IBM -API-Version을 이 형식으로 제출하세요:

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

요청 예제:

eU-D 지역

인스턴스가 eu-de 지역에 있는 경우 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'

작업을 제출하다

작업을 제출할 때 다음 사항에 유의하세요:

  • 작업 만들기 작업을 사용하여 기본 작업을 제출합니다.
  • 여러 회로를 하나의 작업으로 제출할 수 있습니다 OpenQASM 문자열 배열로 제출할 수 있습니다.
  • program_id 매개변수와 함께 사용할 프리미티브를 지정합니다. 사용 가능한 기본값은 samplerestimator 입니다.
  • QPU에 작업을 제출할 때 IBM Cloud 인스턴스 CRN을 지정해야 합니다.
  • 지정할 수 있는 백엔드 이름 목록을 보려면 IBM 퀀텀 플랫폼의 컴퓨팅 리소스 섹션에서 액세스 권한이 있는 백엔드를 확인하세요.

하나의 회로와 하나의 관측 가능 항목으로 추정기 작업을 생성하는 요청 예시입니다:

eU-D 지역

인스턴스가 eu-de 지역에 있는 경우 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
  }
}'

세션 사용

세션을 시작하려면 세션 만들기 작업을 사용합니다. 응답은 세션의 일부로 실행하기 위해 작업과 함께 보낼 수 있는 "id" 을 제공합니다.

다음 예제에서는 모드가 지정되지 않은 상태에서 세션을 만듭니다:

eU-D 지역

인스턴스가 eu-de 지역에 있는 경우 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
}'

다음과 같은 응답을 받게 됩니다:

{
  "id": "session_id1"
}

다음 작업에서 세션 ID를 사용하여 이 작업을 세션의 일부로 실행합니다:

eU-D 지역

인스턴스가 eu-de 지역에 있는 경우 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
  }
}'
이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.