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

# SamplerV1

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

[GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.26/qiskit_ibm_runtime/sampler.py#L178-L334)

Class for interacting with Qiskit Runtime Sampler primitive service.

> **Deprecated since version 0.23**
>
> The `SamplerV1` 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 `SamplerV1` support will be removed no earlier than July 15, 2024.

Qiskit Runtime Sampler primitive service calculates quasi-probability distribution of bitstrings from quantum circuits.

The [`run()`](#qiskit_ibm_runtime.SamplerV1.run "qiskit_ibm_runtime.SamplerV1.run") method can be used to submit circuits and parameters to the Sampler 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 import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler

service = QiskitRuntimeService(channel="ibm_cloud")

# Bell Circuit
qr = QuantumRegister(2, name="qr")
cr = ClassicalRegister(2, name="cr")
qc = QuantumCircuit(qr, cr, name="bell")
qc.h(qr[0])
qc.cx(qr[0], qr[1])
qc.measure(qr, cr)

with Session(service, backend="ibmq_qasm_simulator") as session:
    sampler = Sampler(session=session)

    job = sampler.run(qc, shots=1024)
    print(f"Job ID: {job.job_id()}")
    print(f"Job result: {job.result()}")

    # You can run more jobs inside the session
```

Initializes the Sampler 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, parameter_values=None, **kwargs)`

[GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.26/qiskit_ibm_runtime/sampler.py#L256-L283)

Submit a request to the sampler 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).
- **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.SamplerResult`](/docs/api/qiskit/qiskit.primitives.SamplerResult).

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