Skip to Content
DocsPlatform GuideSubmitting Jobs

Submitting Jobs

Jobs are tracked quantum computations that run on a specific backend. Unlike playground runs (which are ephemeral), jobs are persisted, can target real quantum hardware, and produce results you can review, download, and package into capsules.

How to submit a job

There are two ways to submit a job:

  1. From the Playground — Click the Run button dropdown and select Run as Job…. Your code must be saved as a script first.
  2. Via the API — Send a POST request to /api/jobs/submit.

Job submission form

The “Run as Job” dialog in the playground lets you configure:

Backend

Backends are grouped into tiers:

  • Marqov Simulators — Free, local simulation
  • Quantum Brilliance — Free CPU/GPU simulators with noise model support
  • Cloud Simulators — AWS Braket SV1, DM1, TN1 (pay per use)
  • Quantum Hardware — IonQ, Rigetti, IQM, Quantinuum QPUs (pay per use)

Shots

Number of measurement repetitions. Range: 1 to 100,000.

Execution mode

  • Fast (Direct) — Sends the job directly to the worker. Lower overhead, no retry logic.
  • Durable (Temporal) — Routes through Temporal for workflow orchestration. Provides automatic retries, observability, and fault tolerance. Recommended for production workloads and multi-step algorithms.

Backend-specific options

Some backends expose additional configuration:

  • Noisy Aer simulator (qb-sim-noisy-aer) — Noise model configuration (gate errors, readout errors, T1/T2 times)
  • Statevector simulator (qb-sim-statevector) — Option to extract the full state vector

Submitting by script reference vs. inline code

When submitting from the playground with a saved script, the job references the script by ID (script_id). This keeps the job linked to the script for traceability.

When submitting via the API without a saved script, you can pass inline_code and framework directly. You can also reference a script by script_slug.

Cost estimation

Before a job is created, the platform calculates the estimated cost based on the selected backend and number of shots. Each backend has a pricing structure:

  • Task fee — Fixed cost per job task
  • Per-shot cost — Cost multiplied by the number of shots
  • Minimum cost — Floor price for any job on that backend

The estimated cost is checked against your team’s budget. If the job would exceed the budget, submission is rejected with HTTP 402 and details about the remaining budget.

Rate limits

The platform enforces two levels of rate limiting on job submissions:

ScopeLimitWindow
Per user10 jobs1 minute
Per team100 jobs1 day

When a rate limit is hit, the API returns HTTP 429 with a Retry-After header indicating how long to wait.

Team auto-creation

The first time you submit a job, a personal team is automatically created for you if you do not already belong to one. You are assigned the owner role. All jobs are scoped to a team for billing and access control.

API reference

POST /api/jobs/submit

Authentication: Required

Request body:

{ "script_id": "uuid", "backend": "sv1", "params": { "shots": 1000 }, "execution_mode": "direct" }

Alternatively, submit inline code:

{ "inline_code": "from qiskit import ...", "framework": "qiskit", "backend": "marqov-sim", "params": { "shots": 1000 } }

Response (201):

{ "job_id": "uuid" }

After submission, the user is redirected to /jobs/<job_id> to monitor progress.

Last updated on