> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ionq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Jobs

> Jobs are tasks running on IonQ systems, usually containing a circuit to run on a QPU.

Jobs are submitted by users of a [Project](/user-manual/projects) 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](/sdks) or [via API](/guides/direct-api-submission). Jobs contain a circuit to be run, specify a backend to run it on, and any other relevant options.

```python theme={null}
backend = provider.get_backend("forte-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](/api-reference/v0.3/jobs/create-a-job), or review one of our [SDK guides](/sdks/qiskit/index) for examples.

***

## Job Status

When you submit a job, it will typically pass through [these stages](/api-reference/v0.4/jobs/get-job#response-status):

* `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:

```bash theme={null}
{
    "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 }]
        }
    ]
}
```

<Warning>Note that not all SDKs support multi-circuit job submission. Please refer to the official documentation for that SDK for current functionality.</Warning>
