---
title: Executor (latest version)
description: API reference for qiskit_ibm_runtime.Executor in the latest version of qiskit-ibm-runtime
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/executor
---

# Executor

*class* `Executor(mode=None, options=None)`

[GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.49/qiskit_ibm_runtime/executor/executor.py#L41-L170)

Bases: `object`

Class for running [`QuantumProgram`](/docs/api/qiskit-ibm-runtime/quantum-program-quantum-program "qiskit_ibm_runtime.quantum_program.QuantumProgram")\s.

The [`run()`](#qiskit_ibm_runtime.Executor.run "qiskit_ibm_runtime.Executor.run") method can be used to submit a quantum program to be executed on a backend.

```python
from qiskit_ibm_runtime import QiskitRuntimeService, Executor, QuantumProgram

service = QiskitRuntimeService()
backend = service.backend("ibm_boston")

program = QuantumProgram(shots=100)
... # add program contents

executor = Executor(backend)
executor.options.environment.job_tags = ["my_tag"]
job = executor.run(program)
```

**Parameters**

- **mode** (*BackendV2 |* [*Session*](/docs/api/qiskit-ibm-runtime/session "qiskit_ibm_runtime.Session")  *|*[*Batch*](/docs/api/qiskit-ibm-runtime/batch "qiskit_ibm_runtime.Batch") *| None*) –

  The execution mode used to make the query. It can be:

  - A `BackendV2` if you are using job mode.
  - A [`Session`](/docs/api/qiskit-ibm-runtime/session "qiskit_ibm_runtime.Session") if you are using session execution mode.
  - A [`Batch`](/docs/api/qiskit-ibm-runtime/batch "qiskit_ibm_runtime.Batch") if you are using batch execution mode.

  Refer to the [IBM Quantum Compute documentation](/docs/guides/execution-modes) for more information about the `Execution modes`.

- **options** ([*ExecutorOptions*](/docs/api/qiskit-ibm-runtime/options-models-executor-options "qiskit_ibm_runtime.options_models.executor.ExecutorOptions")) – Executor options, see `ExecutorOptions` for detailed description. This can be an `ExecutorOptions` instance or a dictionary that will be used to construct one.

**Raises**

- **TypeError** – If `options` is not a valid type.
- **ValueError** – If local mode is used.

## Attributes

### options

Type: [`ExecutorOptions`](/docs/api/qiskit-ibm-runtime/options-models-executor-options "qiskit_ibm_runtime.options_models.executor.ExecutorOptions")

The options of this executor.

## Methods

### backend

`backend()`

[GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.49/qiskit_ibm_runtime/executor/executor.py#L168-L170)

Return the backend the primitive query will be run on.

**Return type**

BackendV2

### run

`run(program)`

[GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.49/qiskit_ibm_runtime/executor/executor.py#L121-L166)

Run a quantum program.

**Parameters**

**program** ([*QuantumProgram*](/docs/api/qiskit-ibm-runtime/quantum-program-quantum-program "qiskit_ibm_runtime.quantum_program.QuantumProgram")) – The program to run.

**Returns**

A job.

**Return type**

[RuntimeJobV2](/docs/api/qiskit-ibm-runtime/runtime-job-v2 "qiskit_ibm_runtime.RuntimeJobV2")
