---
title: QuantumProgramModel (latest version)
description: API reference for ibm_quantum_schemas.executor.version_0_2.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-0-2-quantum-program-model
---

# QuantumProgramModel

*pydantic model* `QuantumProgramModel`

[GitHub](https://github.com/Qiskit/ibm-quantum-schemas/tree/0.10.20260723/ibm_quantum_schemas/executor/version_0_2/models.py#L182-L221)

Bases: `BaseModel`

Model to store a quantum program.

### items

*field*

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

Items of the program.

**Validated by**

- `check_chunk_sizes_are_consistent`

### meas\_level

*field*

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

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.

**Validated by**

- `check_chunk_sizes_are_consistent`

### passthrough\_data

*field*

Type: `DataTree`

Default value: `None`

Arbitrary nested data passed through execution without modification.

**Validated by**

- `check_chunk_sizes_are_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\_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_0_2/models.py#L191-L201)

Check that all program items set chunk sizes consistently.
