Self-managed providers
Use the qBraid SDK with your own account and credentials at a quantum vendor or cloud. Jobs, billing, and keys are between you and the vendor.
A self-managed provider uses your own account with a quantum vendor or cloud: an IonQ API key, an AWS account for Amazon Braket, an IBM Quantum token, and so on. The qBraid SDK is only the client library. Your jobs go straight to the vendor, the vendor bills you, and qBraid never sees them.
Don’t have your own vendor account? You probably want Run on qBraid instead. One qBraid API key reaches every device in the qBraid catalog, with no vendor account, and it’s how most people use the qBraid SDK.
When self-managed makes sense
- You already have a contract, credits, or a reservation with a vendor.
- You need a device qBraid doesn’t run jobs on. IBM Quantum is the main one.
- Your organization requires jobs to run in its own cloud account.
How the two compare
| Run on qBraid | Self-managed | |
|---|---|---|
| Credentials | One qBraid API key | Your own credentials for each vendor |
| Billing | qBraid credits | The vendor’s own billing |
| Job history | Your qBraid Quantum Jobs | The vendor’s console only |
| Install | pip install qbraid | pip install 'qbraid[<extra>]', listed below |
| Provider | QbraidProvider | The vendor’s provider class, listed below |
Devices with openquantum: IDs are the one exception on the qBraid side. They run through qBraid but spend credits from your linked Open Quantum account.
Providers
| Vendor | Provider class | Install | Also on qBraid |
|---|---|---|---|
| Amazon Braket | BraketProvider | pip install 'qbraid[braket]' | Yes |
| AQT | AQTProvider | pip install 'qbraid[aqt]' | Yes |
| Azure Quantum | AzureQuantumProvider | pip install 'qbraid[azure]' | |
| IBM Quantum | QiskitRuntimeProvider | pip install 'qbraid[qiskit]' | |
| IonQ | IonQProvider | pip install 'qbraid[ionq]' | Yes |
| Open Quantum | OpenQuantumProvider | pip install qbraid | Yes |
| OQC | OQCProvider | pip install 'qbraid[oqc]' | |
| Origin Quantum | OriginProvider | pip install 'qbraid[origin]' | |
| Pasqal | PasqalProvider | pip install 'qbraid[pasqal]' | |
| QPerfect | QPerfectProvider | pip install 'qbraid[qperfect]' | |
| Quantinuum | QuantinuumProvider | pip install 'qbraid[quantinuum]' | |
| QUDORA | QudoraProvider | pip install qbraid | |
| Rigetti | RigettiProvider | pip install 'qbraid[rigetti]' | Yes |
Every provider class runs on the same qBraid Runtime interface, so code written for one, such as provider.get_device(...) and device.run(...), carries over to another, including QbraidProvider.
Thanks for your feedback.

