> ## Documentation Index
> Fetch the complete documentation index at: https://docs.haiqu.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List Objects

### List Experiments

#### Haiqu.list\_experiments(widget=True, pandas=False)

List available experiments.

* **Parameters:**
  * **widget** (*bool*) -- If `True` (default), render the list as a Jupyter widget and return `None`.
  * **pandas** (*bool*) -- If `True`, return the list as a Pandas DataFrame instead of a Python list. Defaults to `False`.
* **Returns:**
  Experiments in a Python list or Pandas DataFrame, or `None`.
* **Return type:**
  list | pandas.DataFrame | None

#### Examples

```python theme={null}
>>> haiqu.list_experiments()  # in Jupyter notebook
>>> haiqu.list_experiments(widget=False)
[Experiment 'Example Experiment', Experiment 'Another Experiment']
```

### List Circuits

#### Haiqu.list\_circuits(experiment\_name=None, experiment\_id=None, circuit\_ids=None, job\_type=None, limit=10, widget=True, pandas=False)

List recent circuits.

The circuits are filtered by experiment (name or ID, with the current experiment used if neither is specified), and
limited to only the most recent few (10 by default).

* **Parameters:**
  * **experiment\_name** (*str* *|* *None*) -- Return circuits for the provided experiment name.
  * **experiment\_id** (*str* *|* *None*) -- Return circuits for the provided experiment ID.
  * **circuit\_ids** (*list* \*\[\**str* *]*  *|* *None*) -- If not `None`, return only circuits with these IDs.
  * **job\_type** (*JobType* *|* *None*) -- Return circuits for the provided job type in the experiment..
  * **limit** (*int*) -- Limit the number of returned circuits.
  * **widget** (*bool*) -- If `True` (default), render the list as a Jupyter widget and return `None`.
  * **pandas** (*bool*) -- If `True`, return the list as a Pandas DataFrame instead of a Python list. Defaults to `False`.
* **Returns:**
  Circuits in a Python list or Pandas DataFrame, or `None`.
* **Return type:**
  list | pandas.DataFrame | None

#### Examples

Display a table with a few of the most recent circuits:

```python theme={null}
>>> haiqu.list_circuits()  # in Jupyter notebook
```

Get the most recent circuit in a specific experiment:

```python theme={null}
>>> haiqu.list_circuits("Example Experiment", limit=1, widget=False)
[Haiqu Circuit 'circuit-123']
```

Get the most recent circuit for compression job type:

```python theme={null}
>>> circuits = haiqu.list_circuits(job_type=haiqu.JobType.COMPRESSION, widget=False)
```

Get the circuits for run job type:

```python theme={null}
>>> circuits = haiqu.list_circuits(job_type=haiqu.JobType.RUN, widget=False)
```

Filter circuits by their IDs:

```python theme={null}
>>> filtered_circuits = haiqu.list_circuits(circuit_ids=["circ-123", "circ-456"], widget=False)
```

### List Jobs

#### Haiqu.list\_jobs(experiment\_id=None, job\_type=None, circuit=None, limit=10, widget=True, pandas=False)

List recent jobs, display them as a Jupyter widget (default) or return a Python list with job items, or
a Pandas DataFrame with job data.

Each job item contains the information about the job, input parameters, circuits, and results if the job is completed.
For example, for a run job, the item will contain the information about the circuit that was run, the device it was
run on, and the results of the execution if available. For transpilation jobs, the item will contain the original
circuit(s), the target device, and the transpiled circuit(s). For compression jobs, the item will contain the
original circuit, the compression type, and the compressed circuit.

The jobs are filtered by experiment ID (with the current experiment used if not specified) and job type, and limited to
only the most recent few (10 by default). Jobs can also be optionally filtered by circuit.

* **Parameters:**
  * **experiment\_id** (*str* *|* *None*) -- Return jobs for the provided experiment ID. If `None`, return jobs for the
    current experiment.
  * **job\_type** (*JobType* *|* *None*) -- Filter jobs by type. Only jobs of the provided type will be returned.
    If `None`, jobs of all types will be returned.
  * **circuit** (*CircuitModel* *|* *str* *|* *None*) -- If not `None`, only show the jobs related to the given circuit (as a
    `CircuitModel` or circuit ID).
  * **limit** (*int*) -- Limit the number of returned jobs.
  * **widget** (*bool*) -- If `True` (default), render the list as a Jupyter widget and return `None`.
  * **pandas** (*bool*) -- If `True`, return the list as a Pandas DataFrame instead of a Python list. Defaults to `False`.
* **Returns:**
  Jobs in a Python list or Pandas DataFrame, or `None` if widget is rendered.
* **Return type:**
  list | pandas.DataFrame | None

#### Examples

Display a table with a few of the most recent jobs:

```python theme={null}
>>> haiqu.list_jobs()  # will display a widget in Jupyter notebook
```

Get Python list of the most recent jobs for the current experiment:

```python theme={null}
>>> jobs = haiqu.list_jobs(widget=False)
[RunJobModel 'Run job ABC',
 TranspilationJobModel 'Transpilation of 2 circuit(s) to device fake_torino',
 StateCompressionJobModel 'State Compression of Circuit-123',
 ...
]
```

Get only state compression jobs for the current experiment:

```python theme={null}
>>> jobs = haiqu.list_jobs(
...     job_type=haiqu.JobType.COMPRESSION,
...     widget=False
... )
```

Get only transpilation jobs for the current experiment:

```python theme={null}
>>> jobs = haiqu.list_jobs(
...     job_type=haiqu.JobType.TRANSPILATION,
...     widget=False
... )
```

Get the most recent run job(s) for a specific circuit for a specific experiment:

```python theme={null}
>>> haiqu.list_jobs(
...     experiment_id="exp-12345678-1234-5678-1234-567812345678",
...     job_type=haiqu.JobType.RUN,
...     circuit="circ-abcdefab-cdef-abcd-efab-cdefabcdefab",
...     widget=False,
... )
[RunJobModel 'Run job 12345678-abcd-efab-1234-5678abcdefab'
 ...
]
```

### List Devices

#### Haiqu.list\_devices(widget=True, pandas=False)

List devices for circuit transpilation and execution.

Note that devices in the list may at times be offline or otherwise unavailable.

* **Parameters:**
  * **widget** (*bool*) -- If `True` (default), render the list as a Jupyter widget and return `None`.
  * **pandas** (*bool*) -- If `True`, return the list as a Pandas DataFrame instead of a Python list. Defaults to `False`.
* **Returns:**
  List of devices, or `None`.
* **Return type:**
  list | pandas.DataFrame | None

#### Examples

```python theme={null}
>>> haiqu.list_devices()  # in Jupyter notebook
>>> haiqu.list_devices(widget=False)
[DeviceModel(...), DeviceModel(...), ...]
```

### Simulators

#### Haiqu.list\_simulators(widget=True, pandas=False)

List available simulators for circuit execution.

* **Parameters:**
  * **widget** (*bool*) -- If `True` (default), render the list as a Jupyter widget and return `None`.
  * **pandas** (*bool*) -- If `True`, return the list as a Pandas DataFrame instead of a Python list. Defaults to `False`.
* **Returns:**
  List of simulator names, or `None`.
* **Return type:**
  list | pandas.DataFrame | None

#### Examples

```python theme={null}
>>> haiqu.list_simulators()  # in Jupyter notebook
>>> haiqu.list_simulators(widget=False)
[DeviceModel(...), DeviceModel(...), ...]
```
