qBraid-CORE

Python client for developing software with qBraid cloud services

qBraid-CORE is a Python library providing core abstractions for software development within the qBraid ecosystem, and a low-level interface to a growing array of qBraid cloud services. The qbraid-core package forms the foundational base for the qBraid CLI, the qBraid SDK, and the qBraid Lab.

You can find the latest, most up to date, documentation here, including a list of services that are supported.

Getting Started

You can install qbraid-core from PyPI with:

pip install qbraid-core

qbraid-core versions <0.2.0 are not compatible with qBraid API V2. See migration guide.

To ensure compatibility with the new platform, use qbraid-core ≥ 0.2.0.

Local configuration

After installing qbraid-core, you must configure your account credentials:

  1. Create a qBraid account or log in to your existing account by visiting account.qbraid.com
  2. Navigate to Account > API Keys in the left-sidebar, and then click “Create API Key”.
  3. Save your API key from step 2 in local configuration file ~/.qbraid/qbraidrc, where ~ corresponds to your home ($HOME) directory:
[default]
api-key = YOUR_KEY
url = https://api-v2.qbraid.com/api/v1

Or generate your ~/.qbraid/qbraidrc file via the qbraid-core Python interface:

>>> from qbraid_core import QbraidSessionV1
>>> session = QbraidSessionV1(api_key='API_KEY')
>>> session.save_config()

Other credential configuration methods can be found here.

Verify setup

After configuring your qBraid credentials, verify your setup by running the following from a Python interpreter:

>>> from qbraid_core.services.runtime import QuantumRuntimeClient
>>> quantum_client = QuantumRuntimeClient()
>>> device_list = quantum_client.list_devices()
>>> for device in device_list:
...     print(device.qrn)

Estimate job cost

Before submitting a job, you can ask for a quote in qBraid credits for a given device and shot count:

>>> estimate = quantum_client.estimate_cost("aws:aqt:qpu:ibex-q1", shots=1000)
>>> estimate.pricingAvailable
True
>>> estimate.estimatedCost
Credits('2380')

Treat the quote as a guide, not a cap. Nothing enforces it, and a job that runs longer than quoted is billed for what it used. QPUs are quoted from the device’s execution history, and per-minute QPUs scale with the shot count. Simulators are quoted from a fixed conservative duration, so their quote does not change with shots. Omitting shots quotes 1000.

Some devices cannot be quoted up front, such as those with dynamic pricing. That is a state to read, not an error:

>>> estimate = quantum_client.estimate_cost("ibm:ibm:qpu:fez")
>>> estimate.pricingAvailable
False
>>> estimate.reason
'dynamic_pricing_unavailable'

A missing or retired device, or a shot count outside 1 to 100000, raises QuantumRuntimeServiceRequestError.

Community