IonQ
Run on IonQ's Forte trapped-ion QPUs and the IonQ simulator through qBraid, with only a qBraid API key.
Using your own IonQ API key? See IonQ (self-managed).
Devices on qBraid
IonQ’s trapped-ion systems are on qBraid through three submission paths. Each path has its own device IDs, billing, and runtime options.
| Device ID | Device | Path |
|---|---|---|
ionq:ionq:sim:simulator | IonQ simulator, 29 qubits | Direct |
ionq:ionq:qpu:forte-1 | Forte-1, 36 qubits | Direct |
aws:ionq:qpu:forte-1 | Forte-1, 36 qubits | Amazon Braket |
aws:ionq:qpu:forte-enterprise-1 | Forte Enterprise-1 | Amazon Braket |
openquantum:ionq:qpu:forte-1 | Forte-1, 36 qubits | Open Quantum |
openquantum:ionq:qpu:forte-enterprise | Forte Enterprise | Open Quantum |
Check each device’s status and price in the device catalog before you submit. Not every path is online at once.
Quick start
Start on the simulator, which runs the same programs as the QPUs:
from qbraid.runtime import QbraidProvider
provider = QbraidProvider()
device = provider.get_device("ionq:ionq:sim:simulator")
bell = """
OPENQASM 3.0;
include "stdgates.inc";
qubit[2] q;
bit[2] c;
h q[0];
cx q[0], q[1];
c = measure q;
"""
job = device.run(bell, shots=100)
print(job.result().data.get_counts())To run on a QPU, change the device ID. Programs can be written in any framework qBraid supports; qBraid converts them to OpenQASM before they reach IonQ.
Direct
ionq: devices go from qBraid straight to IonQ, billed in qBraid credits. They accept these runtime_options, which qBraid passes to IonQ unchanged:
| Option | Effect |
|---|---|
noise | On the simulator, a hardware noise model and optional seed. See below. |
error_mitigation | IonQ’s error mitigation settings, such as debiasing, on QPU jobs. |
metadata | Key-value metadata stored with the IonQ job. |
Run the simulator with a hardware noise profile:
job = device.run(
bell,
shots=1000,
runtime_options={"noise": {"model": "aria-1", "seed": 42}},
)Noise models include ideal, harmony, harmony-1, harmony-2, aria-1, aria-2, forte-1 and forte-enterprise-1. See IonQ’s guide to simulation with noise models.
Through Amazon Braket
aws:ionq: devices go through Amazon Braket, billed in qBraid credits. They take Braket runtime options rather than the direct options above. Debiasing, for example, is set with device_parameters:
device = provider.get_device("aws:ionq:qpu:forte-1")
job = device.run(
bell,
shots=2500, # Braket requires at least 2500 shots for debiasing
runtime_options={"device_parameters": {"errorMitigation": "Debias"}},
)Amazon Braket covers what every Braket device has in common, including how counts are ordered.
Through Open Quantum
openquantum:ionq: devices go through Open Quantum and spend credits from an Open Quantum account linked to qBraid, not qBraid credits. Link the account first, then submit as usual:
device = provider.get_device("openquantum:ionq:qpu:forte-1")
job = device.run(bell, shots=100)See Open Quantum for linking an account and what these devices accept.
Related links
- Run on qBraid: installing the SDK and saving your qBraid API key
- Batch & group jobs: running several circuits as separate, batch, or group jobs
- IonQ (self-managed):
IonQProviderwith your own IonQ API key, including IonQ’s native gates - IonQ documentation
Thanks for your feedback.

