ibm-quantum · Arazzo Workflow

IBM Quantum Backend Readiness Preflight

Version 1.0.0

Verify a backend is online, then gather its calibration properties and pulse defaults for circuit transpilation.

1 workflow 1 source API 1 provider
View Spec View on GitHub ArazzoWorkflows

Provider

ibm-quantum

Workflows

backend-readiness-preflight
Confirm a backend is online, then collect its properties and defaults.
Reads a backend's status and, when it is operational, fetches its calibration properties and pulse defaults.
3 steps inputs: accessToken, apiVersion, backend, serviceCrn outputs: backendState, defaults, properties
1
getBackendStatus
get_backend_status
Read the backend status and branch on whether the backend is in an operational (true) state before pulling calibration data.
2
getBackendProperties
get_backend_properties
Fetch the backend's latest calibration properties used to transpile an ISA circuit.
3
getBackendDefaults
get_backend_defaults
Fetch the backend's pulse-level defaults used to schedule the transpiled circuit.

Source API Descriptions

Arazzo Workflow Specification

ibm-quantum-backend-readiness-preflight-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: IBM Quantum Backend Readiness Preflight
  summary: Verify a backend is online, then gather its calibration properties and pulse defaults for circuit transpilation.
  description: >-
    A pre-submission calibration flow. The workflow reads a backend's status and
    branches: only when the backend reports an online, operational state does it
    fetch the backend's latest calibration properties and its pulse-level
    defaults, the two artifacts a client needs to transpile and schedule an ISA
    circuit. If the backend is not operational it ends early. Each request
    inlines its bearer token, Service-CRN, and IBM-API-Version headers so the
    flow can be read and executed without opening the underlying OpenAPI
    descriptions.
  version: 1.0.0
sourceDescriptions:
- name: backendsApi
  url: ../openapi/ibm-quantum-runtime-backends-openapi.yml
  type: openapi
workflows:
- workflowId: backend-readiness-preflight
  summary: Confirm a backend is online, then collect its properties and defaults.
  description: >-
    Reads a backend's status and, when it is operational, fetches its
    calibration properties and pulse defaults.
  inputs:
    type: object
    required:
    - accessToken
    - serviceCrn
    - apiVersion
    - backend
    properties:
      accessToken:
        type: string
        description: IBM Cloud IAM bearer token used in the Authorization header.
      serviceCrn:
        type: string
        description: IBM Cloud Service CRN identifying the Qiskit Runtime instance.
      apiVersion:
        type: string
        description: API version date sent in the IBM-API-Version header (e.g. 2026-03-15).
      backend:
        type: string
        description: Name of the backend to preflight.
  steps:
  - stepId: getBackendStatus
    description: >-
      Read the backend status and branch on whether the backend is in an
      operational (true) state before pulling calibration data.
    operationId: get_backend_status
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: Service-CRN
      in: header
      value: $inputs.serviceCrn
    - name: IBM-API-Version
      in: header
      value: $inputs.apiVersion
    - name: id
      in: path
      value: $inputs.backend
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      backendState: $response.body#/state
      queueLength: $response.body#/length_queue
    onSuccess:
    - name: operational
      type: goto
      stepId: getBackendProperties
      criteria:
      - context: $response.body
        condition: $.state == true
        type: jsonpath
    - name: notOperational
      type: end
      criteria:
      - context: $response.body
        condition: $.state == false
        type: jsonpath
  - stepId: getBackendProperties
    description: >-
      Fetch the backend's latest calibration properties used to transpile an ISA
      circuit.
    operationId: get_backend_properties
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: Service-CRN
      in: header
      value: $inputs.serviceCrn
    - name: IBM-API-Version
      in: header
      value: $inputs.apiVersion
    - name: id
      in: path
      value: $inputs.backend
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      properties: $response.body
  - stepId: getBackendDefaults
    description: >-
      Fetch the backend's pulse-level defaults used to schedule the transpiled
      circuit.
    operationId: get_backend_defaults
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: Service-CRN
      in: header
      value: $inputs.serviceCrn
    - name: IBM-API-Version
      in: header
      value: $inputs.apiVersion
    - name: id
      in: path
      value: $inputs.backend
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      defaults: $response.body
  outputs:
    backendState: $steps.getBackendStatus.outputs.backendState
    properties: $steps.getBackendProperties.outputs.properties
    defaults: $steps.getBackendDefaults.outputs.defaults