Our API employs a RESTful architecture, featuring intuitive, resource-oriented URLs and leveraging inherent HTTP capabilities such as response codes, authentication, and verbs.

All responses are JSON.

This API is designed for server-to-server use. Browser (cross-origin) requests are restricted to an allowlist of qBraid origins, so calling the API directly from a web page on your own domain is blocked by CORS. Call it from your backend instead, where your API key also stays out of client-side code.

OpenAPI specification

The complete, machine-readable API definition is available as an OpenAPI 3.1 document. Download it to generate client libraries, import the API into tools like Postman or Insomnia, or hand it to an AI agent as a compact description of every endpoint, parameter, and response.

Quantum Job Flow

The diagram below gives a high-level view of how a quantum job moves through an application that integrates with the qBraid API: from a high-level quantum program, to an intermediate representation (IR), to the qBraid API server, then to execution on a quantum backend, with results relayed back to the user.

qBraid Runtime API Server

For a client-side view of how the qBraid-SDK integrates with the qBraid API see the Runtime overview in the SDK docs.

Rate limiting

API requests are rate-limited per IP (unauthenticated) or per user (authenticated) within a rolling 15-minute window.

TierWindowMax requests
Unauthenticated (IP)15 min100
Authenticated user15 min1,000

Exceeding the limit returns an HTTP 429 (Too Many Requests) response. Authenticate with a valid API key to use the higher authenticated limit.

Higher rate limits for your organization are available upon request.

Using the SDK and CLI

Most of these endpoints are already wrapped by the qBraid SDK and CLI, which handle authentication, the { success, data } response envelope, pagination, and retries for you. Reach for the raw REST API only when you need something the client doesn’t cover.

Install with pip install -U qbraid qbraid-cli, then run qbraid configure once with an API key.

To do thisCLIPython SDK
Submit & track jobs (incl. batch groups)qbraid jobsQbraidProvider, device.run(), GroupJobSession
Browse devices & calibrationsqbraid devicesprovider.get_devices(), provider.get_device()
Check credits & accountqbraid account creditsQbraidSessionV1

For any endpoint without a dedicated wrapper, QbraidSessionV1 (from qbraid_core) is an authenticated session — call .get(), .post(), etc. against the API and it handles the X-API-Key header for you.