---
title: Options (latest version)
description: API reference for qiskit.providers.Options in the latest version of qiskit
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/qiskit.providers.Options
---

# Options

*class* `qiskit.providers.Options(**kwargs)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.5/qiskit/providers/options.py#L19-L273)

Bases: [`Mapping`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Mapping)

Base options object

This class is what all backend options are based on. The properties of the class are intended to be all dynamically adjustable so that a user can reconfigure the backend on demand. If a property is immutable to the user (eg something like number of qubits) that should be a configuration of the backend class itself instead of the options.

Instances of this class behave like dictionaries. Accessing an option with a default value can be done with the get() method:

```python
>>> options = Options(opt1=1, opt2=2)
>>> options.get("opt1")
1
>>> options.get("opt3", default="hello")
'hello'
```

Key-value pairs for all options can be retrieved using the items() method:

```python
>>> list(options.items())
[('opt1', 1), ('opt2', 2)]
```

Options can be updated by name:

```python
>>> options["opt1"] = 3
>>> options.get("opt1")
3
```

Runtime validators can be registered. See set\_validator. Updates through update\_options and indexing (\_\_setitem\_\_) validate the new value before performing the update and raise ValueError if the new value is invalid.

```python
>>> options.set_validator("opt1", (1, 5))
>>> options["opt1"] = 4
>>> options["opt1"]
4
>>> options["opt1"] = 10
Traceback (most recent call last):
...
ValueError: ...
```

## Attributes

### validator

## Methods

### get

`get(k[, d]) → D[k] if k in D, else d.  d defaults to None.`

### items

`items() → a set-like object providing a view on D's items`

### keys

`keys() → a set-like object providing a view on D's keys`

### set\_validator

`set_validator(field, validator_value)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.5/qiskit/providers/options.py#L180-L232)

Set an optional validator for a field in the options

Setting a validator enables changes to an options values to be validated for correctness when [`update_options()`](#qiskit.providers.Options.update_options "qiskit.providers.Options.update_options") is called. For example if you have a numeric field like `shots` you can specify a bounds tuple that set an upper and lower bound on the value such as:

```python
options.set_validator("shots", (1, 4096))
```

In this case whenever the `"shots"` option is updated by the user it will enforce that the value is >=1 and \<=4096. A `ValueError` will be raised if it’s outside those bounds. If a validator is already present for the specified field it will be silently overridden.

**Parameters**

- **field** ([*str*](https://docs.python.org/3/library/stdtypes.html#str)) – The field name to set the validator on
- **validator\_value** ([*list*](https://docs.python.org/3/library/stdtypes.html#list)  *or*[*tuple*](https://docs.python.org/3/library/stdtypes.html#tuple)  *or*[*type*](/docs/api/qiskit/qiskit.dagcircuit.DAGDepNode#type "qiskit.dagcircuit.DAGDepNode.type")) – The value to use for the validator depending on the type indicates on how the value for a field is enforced. If a tuple is passed in it must have a length of two and will enforce the min and max value (inclusive) for an integer or float value option. If it’s a list it will list the valid values for a field. If it’s a `type` the validator will just enforce the value is of a certain type.

**Raises**

- [**KeyError**](https://docs.python.org/3/library/exceptions.html#KeyError) – If field is not present in the options object
- [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError) – If the `validator_value` has an invalid value for a given type
- [**TypeError**](https://docs.python.org/3/library/exceptions.html#TypeError) – If `validator_value` is not a valid type

### update\_options

`update_options(**fields)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.5/qiskit/providers/options.py#L234-L256)

Update options with kwargs

### values

`values() → an object providing a view on D's values`
