Skip to main contentIBM Quantum Documentation


class qiskit.primitives.BackendEstimatorV2(*, backend, options=None)

GitHub(opens in a new tab)

Bases: BaseEstimatorV2

Evaluates expectation values for provided quantum circuit and observable combinations

The BackendEstimatorV2 class is a generic implementation of the BaseEstimatorV2 interface that is used to wrap a BackendV2 (or BackendV1) object in the BaseEstimatorV2 API. It facilitates using backends that do not provide a native BaseEstimatorV2 implementation in places that work with BaseEstimatorV2. However, if you’re using a provider that has a native implementation of BaseEstimatorV2, it is a better choice to leverage that native implementation as it will likely include additional optimizations and be a more efficient implementation. The generic nature of this class precludes doing any provider- or backend-specific optimizations.

This class does not perform any measurement or gate mitigation, and, presently, is only compatible with Pauli-based observables.

Each tuple of (circuit, observables, <optional> parameter values, <optional> precision), called an estimator primitive unified bloc (PUB), produces its own array-based result. The run() method can be given a sequence of pubs to run in one call.

The options for BackendEstimatorV2 consist of the following items.

  • default_precision: The default precision to use if none are specified in run(). Default: 0.015625 (1 / sqrt(4096)).
  • abelian_grouping: Whether the observables should be grouped into sets of qubit-wise commuting observables. Default: True.
  • seed_simulator: The seed to use in the simulator. If None, a random seed will be used. Default: None.


  • backend (BackendV1 |BackendV2) – The backend to run the primitive on.
  • options (dict(opens in a new tab) | None) – The options to control the default precision (default_precision), the operator grouping (abelian_grouping), and the random seed for the simulator (seed_simulator).



Returns the backend which this sampler object based on.


Return the options



run(pubs, *, precision=None)

GitHub(opens in a new tab)

Estimate expectation values for each provided pub (Primitive Unified Bloc).


  • pubs (Iterable[EstimatorPubLike]) – An iterable of pub-like objects, such as tuples (circuit, observables) or (circuit, observables, parameter_values).
  • precision (float(opens in a new tab) | None) – The target precision for expectation value estimates of each run Estimator Pub that does not specify its own precision. If None the estimator’s default precision value will be used.


A job object that contains results.

Return type


Was this page helpful?
Report a bug or request content on GitHub.