---
title: EstimatorV1 (v0.26)
description: API reference for qiskit_ibm_runtime.EstimatorV1 in qiskit-ibm-runtime v0.26
source: https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/0.26/estimator-v1
---

# EstimatorV1

*class* `EstimatorV1(backend=None, session=None, options=None)`

[GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.26/qiskit_ibm_runtime/estimator.py#L234-L422)

Class for interacting with Qiskit Runtime Estimator primitive service.

> **Deprecated since version 0.23**
>
> The `EstimatorV1` primitives have been deprecated in 0.23, released on April 15, 2024. See the [V2 migration guide](/docs/guides/v2-primitives). for more details. The `EstimatorV1` support will be removed no earlier than July 15, 2024.

Qiskit Runtime Estimator primitive service estimates expectation values of quantum circuits and observables.

The [`run()`](#qiskit_ibm_runtime.EstimatorV1.run "qiskit_ibm_runtime.EstimatorV1.run") can be used to submit circuits, observables, and parameters to the Estimator primitive.

You are encouraged to use [`Session`](/docs/api/qiskit-ibm-runtime/0.26/session "qiskit_ibm_runtime.Session") to open a session, during which you can invoke one or more primitives. Jobs submitted within a session are prioritized by the scheduler.

Example:

```python
from qiskit.circuit.library import RealAmplitudes
from qiskit.quantum_info import SparsePauliOp

from qiskit_ibm_runtime import QiskitRuntimeService, Estimator

service = QiskitRuntimeService(channel="ibm_cloud")

psi1 = RealAmplitudes(num_qubits=2, reps=2)

H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)])
H2 = SparsePauliOp.from_list([("IZ", 1)])
H3 = SparsePauliOp.from_list([("ZI", 1), ("ZZ", 1)])

with Session(service=service, backend="ibmq_qasm_simulator") as session:
    estimator = Estimator(session=session)

    theta1 = [0, 1, 1, 2, 3, 5]

    # calculate [ <psi1(theta1)|H1|psi1(theta1)> ]
    psi1_H1 = estimator.run(circuits=[psi1], observables=[H1], parameter_values=[theta1])
    print(psi1_H1.result())

    # calculate [ <psi1(theta1)|H2|psi1(theta1)>, <psi1(theta1)|H3|psi1(theta1)> ]
    psi1_H23 = estimator.run(
        circuits=[psi1, psi1],
        observables=[H2, H3],
        parameter_values=[theta1]*2
    )
    print(psi1_H23.result())
```

Initializes the Estimator primitive.

**Parameters**

- **backend** (`Union`\[`str`, [`IBMBackend`](/docs/api/qiskit-ibm-runtime/0.26/ibm-backend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Backend to run the primitive. This can be a backend name or an [`IBMBackend`](/docs/api/qiskit-ibm-runtime/0.26/ibm-backend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used.

- **session** (`Optional`\[[`Session`](/docs/api/qiskit-ibm-runtime/0.26/session "qiskit_ibm_runtime.session.Session")]) –

  Session in which to call the primitive.

  If both `session` and `backend` are specified, `session` takes precedence. If neither is specified, and the primitive is created inside a [`qiskit_ibm_runtime.Session`](/docs/api/qiskit-ibm-runtime/0.26/session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected.

- **options** (`Union`\[`Dict`, [`Options`](/docs/api/qiskit-ibm-runtime/0.26/options-options "qiskit_ibm_runtime.options.options.Options"), `None`]) – Primitive options, see `Options` for detailed description. The `backend` keyword is still supported but is deprecated.

## Attributes

### options

Return options values for the sampler. :rtype: [`Options`](/docs/api/qiskit/qiskit.providers.Options) :returns: options

### session

Return session used by this primitive.

**Return type**

`Optional`\[[`Session`](/docs/api/qiskit-ibm-runtime/0.26/session "qiskit_ibm_runtime.session.Session")]

**Returns**

Session used by this primitive, or `None` if session is not used.

### version

Default value: `1`

## Methods

### run

`run(circuits, observables, parameter_values=None, **kwargs)`

[GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.26/qiskit_ibm_runtime/estimator.py#L319-L352)

Submit a request to the estimator primitive.

**Parameters**

- **circuits** (*QuantumCircuit | Sequence\[QuantumCircuit]*) – a (parameterized) [`QuantumCircuit`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit) or a list of (parameterized) [`QuantumCircuit`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit).
- **observables** (*Sequence\[BaseOperator | str] | BaseOperator | str*) – Observable objects.
- **parameter\_values** (*Sequence\[float] | Sequence\[Sequence\[float]] | None*) – Concrete parameters to be bound.
- **\*\*kwargs** – Individual options to overwrite the default primitive options.

**Return type**

[RuntimeJob](/docs/api/qiskit-ibm-runtime/0.26/runtime-job "qiskit_ibm_runtime.RuntimeJob")

**Returns**

Submitted job. The result of the job is an instance of [`qiskit.primitives.EstimatorResult`](/docs/api/qiskit/qiskit.primitives.EstimatorResult).

**Raises**

**ValueError** – Invalid arguments are given.

### set\_options

`set_options(**fields)`

[GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.26/qiskit_ibm_runtime/base_primitive.py#L465-L473)

Set options values for the sampler.

**Parameters**

**\*\*fields** – The fields to update the options

**Return type**

`None`
