---
title: QuantumProgramModel (latest version)
description: API reference for ibm_quantum_schemas.executor.version_1_1.QuantumProgramModel in the latest version of qiskit-ibm-runtime
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/ibm-quantum-schemas-executor-version-1-1-quantum-program-model
---

# QuantumProgramModel

*pydantic model* `QuantumProgramModel`

[GitHub](https://github.com/Qiskit/ibm-quantum-schemas/tree/0.10.20260723/ibm_quantum_schemas/executor/version_1_1/models.py#L158-L222)

Bases: `BaseModel`

Model to store a quantum program.

### circuits

*field*

Type: [`QpyDataV13ToV17Model`](/docs/api/qiskit-ibm-runtime/ibm-quantum-schemas-common-qpy-data-v13-to-v17-model "ibm_quantum_schemas.common.QpyDataV13ToV17Model")\[`QuantumCircuit`]

One quantum circuit for every element of `items`.

These are stored outside of `items` to cosituate them inside of one QPY blob.

**Validated by**

- `check_chunk_sizes_are_consistent`
- `check_circuit_count_is_consistent`

### items

*field*

Type: `list`\[`Annotated`\[[`CircuitItemModel`](/docs/api/qiskit-ibm-runtime/ibm-quantum-schemas-executor-version-1-1-circuit-item-model "ibm_quantum_schemas.executor.version_1_1.CircuitItemModel") | [`SamplexItemModel`](/docs/api/qiskit-ibm-runtime/ibm-quantum-schemas-executor-version-1-1-samplex-item-model "ibm_quantum_schemas.executor.version_1_1.SamplexItemModel"), `Field`(`discriminator``=``'item_type'`)]]

Items of the program.

**Validated by**

- `check_chunk_sizes_are_consistent`
- `check_circuit_count_is_consistent`

### meas\_level

*field*

Type: `Literal`\[`'classified'`, `'kerneled'`, `'avg_kerneled'`, `'both'`]

Default value: `'classified'`

The level at which to return all classical register measurement results.

This option sets the return type of all classical registers in all quantum program items and determines whether the raw complex data from low-level measurement devices is discriminated into bits or not.

> - **“classified”: Classical register data is returned as boolean arrays with the intrinsic shape**
>
>   `(num_shots, creg_size)`.
>
> - **“kerneled”: Classical register data is returned as a complex array with the intrinsic shape**
>
>   `(num_shots, creg_size)`, where each entry represents an IQ data point (resulting from kerneling the measurement trace) in arbitrary units.
>
> - **“avg\_kerneled”: Classical register data is returned as a complex array with the intrinsic**
>
>   shape `(creg_size,)`, where data is equivalent to “kerneled” except additionally averaged over shots.
>
> - “both”: Both classified and kerneled data is returned for every classical register.

**Validated by**

- `check_chunk_sizes_are_consistent`
- `check_circuit_count_is_consistent`

### passthrough\_data

*field*

Type: `DataTree`

Default value: `None`

Arbitrary nested data passed through execution without modification.

**Validated by**

- `check_chunk_sizes_are_consistent`
- `check_circuit_count_is_consistent`

### semantic\_role

*field*

Type: `str` | `None`

Default value: `None`

Semantic role indicating how execution results may be post-processed by runtime clients.

Reserved system values include ‘sampler-v2’ and ‘estimator-v2’, and are subject to change without notice. Third party clients should not set or depend on this value.

**Validated by**

- `check_chunk_sizes_are_consistent`
- `check_circuit_count_is_consistent`

### shots

*field*

Type: `int`

The number of shots for each individually bound circuit.

**Constraints**

- **ge** = 1

**Validated by**

- `check_chunk_sizes_are_consistent`
- `check_circuit_count_is_consistent`

### check\_chunk\_sizes\_are\_consistent

*validator* `check_chunk_sizes_are_consistent`

[GitHub](https://github.com/Qiskit/ibm-quantum-schemas/tree/0.10.20260723/ibm_quantum_schemas/executor/version_1_1/models.py#L180-L190)

Check that all program items set chunk sizes consistently.

### check\_circuit\_count\_is\_consistent

*validator* `check_circuit_count_is_consistent`

[GitHub](https://github.com/Qiskit/ibm-quantum-schemas/tree/0.10.20260723/ibm_quantum_schemas/executor/version_1_1/models.py#L192-L201)

Check that there is one circuit for every item.
