Skip to main content
Jobs are submitted by users of a Project and contain an input that tells the backend what to do—such as running a circuit.

Submitting Jobs

Jobs are submitted to our platform through an SDK or via API. Jobs contain a circuit to be run, specify a backend to run it on, and any other relevant options.
backend = provider.get_backend("aria-1")    # Pick a backend...
circuit = QuantumCircuit(2, 2).h(0)         # build your circuit...
job = backend.run(circuit, shots=500)       # and run it on the backend!
For a complete reference to the available job options, see our API reference, or review one of our SDK guides for examples.

Job Status

When you submit a job, it will typically pass through these stages:
  • submitted - the request has been sent to the IonQ Quantum Cloud and the job is being checked, verified, and compiled. In Qiskit, this will show as initializing.
  • ready - the job has been accepted and is waiting in the queue for its target system to be available. In Qiskit, this will show as queued.
  • started - the job has begun running. For QPU jobs, this may indicate that the job is currently executing on ions, but it may also indicate that it is in a partially finished state (i.e., some executions of a job have finished, or some child jobs in a multicircuit job have finished). This state will show as running in our API v0.3, cloud console UI, and Qiskit.
The final state of a job may be:
  • completed - the job has finished and the results are available. In Qiskit, this will show as done.
  • canceled - the job was canceled by the user.
  • failed - the job failed due to an error, which will be displayed if you retrieve the job. You may also receive an email notification with information about the job failure.

Multi-circuit Jobs

To pass multiple circuits within a single job, submit them inside of a list[] as the input, for example:
{
    "input": [
        {
            "format": "ionq.circuit.v0",
            "qubits": 1,
            "circuit": [{ "gate": "h", "target": 0 }]
        },
        {
            "format": "ionq.circuit.v0",
            "qubits": 1,
            "circuit": [{ "gate": "h", "target": 0 }]
        },
        {
            "format": "ionq.circuit.v0",
            "qubits": 1,
            "circuit": [{ "gate": "h", "target": 0 }]
        }
    ]
}
Note that not all SDKs support multi-circuit job submission. Please refer to the official documentation for that SDK for current functionality.
I