---
title: Introduction to IBM Quantum primitives
description: Introduction to IBM Quantum primitives, and an explanation of available primitives
source: https://quantum.cloud.ibm.com/docs/en/guides/qiskit-runtime-primitives
---

# Introduction to IBM Quantum primitives

Primitives were created to simplify the most common tasks for quantum computers: namely, sampling quantum states and calculating expectation values. The first IBM Quantum primitives ([`EstimatorV2`](/docs/api/qiskit-ibm-runtime/estimator-v2) and [`SamplerV2`](/docs/api/qiskit-ibm-runtime/sampler-v2)) are implementations of the Qiskit [primitives base classes](/docs/guides/primitives). They provide a more sophisticated implementation (for example, by including error mitigation) as a cloud-based service and are used to access IBM Quantum® hardware.

The newest IBM Quantum primitive, [Executor](/docs/api/qiskit-ibm-runtime/executor) (which is in beta), provides a lower-level interface that gives more visibility and control without sacrificing performance.

- [**Estimator**](/docs/guides/get-started-with-estimator) — Computes the expectation values for one or more observables with respect to states prepared by quantum circuits.  Has built-in error suppression and mitigation methods.
- [**Sampler**](/docs/guides/get-started-with-sampler) — Samples the output register from the execution of one or more quantum circuits.
- [**Executor (beta)**](/docs/guides/get-started-with-executor) — Samples output registers from quantum circuit executions based on input directives and gives you full control and transparency over customizing error mitigation methods.

## Next steps

> **Recommendations**
>
> - Learn about the [primitive base classes](/docs/guides/primitives) that the IBM Quantum primitives are based on.
> - Review detailed [Estimator](/docs/guides/estimator-examples), [Sampler](/docs/guides/sampler-examples), or [Executor](/docs/guides/executor-examples) examples.
> - See the input and output details for [Estimator](/docs/guides/estimator-input-output), [Executor](/docs/guides/executor-input-output), and [Sampler](/docs/guides/sampler-input-output).
> - Practice with primitives by working through the [Cost function lesson](/learning/courses/variational-algorithm-design/cost-functions) in IBM Quantum Learning.
> - See the [EstimatorV2 API reference](/docs/api/qiskit-ibm-runtime/estimator-v2), [SamplerV2 API reference](/docs/api/qiskit-ibm-runtime/sampler-v2), and [Executor API reference](/docs/api/qiskit-ibm-runtime/executor).
