---
sidebar:
  label: roboto.query.specification
  order: 5
title: roboto.query.specification
---
## Module Contents

### DEFAULT_PAGE_SIZE

```python
roboto.query.specification.DEFAULT_PAGE_SIZE: int = 50
```

`from roboto.query import DEFAULT_PAGE_SIZE`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/query/specification.py#L18-L18)

Default page size for search.

### MAX_PAGE_SIZE

```python
roboto.query.specification.MAX_PAGE_SIZE: int = 1000
```

`from roboto.query import MAX_PAGE_SIZE`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/query/specification.py#L15-L15)

Maximum allowable page size for search.

### QuerySpecification

```python
class roboto.query.specification.QuerySpecification(/, **data: Any)
```

`from roboto.query import QuerySpecification`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/query/specification.py#L43-L140)

Bases: `pydantic.BaseModel`

Model for specifying a query to the Roboto Platform.

**Usage**

**Specify a query with a single condition:**

\>>> from roboto import query >>> query_spec = query.QuerySpecification( ... condition=query.Condition(field="name", comparator=query.Comparator.Equals, value="Roboto") ... )

**Specify a query with multiple conditions:**

\>>> from roboto import query >>> query_spec = query.QuerySpecification( ... condition=query.ConditionGroup( ... operator=query.ConditionOperator.And, ... conditions=[ ... query.Condition(field="name", comparator=query.Comparator.Equals, value="Roboto"), ... query.Condition(field="age", comparator=query.Comparator.GreaterThan, value=18), ... ], ... ) ... )

**Arbitrarily nest condition groups:**

\>>> from roboto import query >>> query_spec = query.QuerySpecification( ... condition=query.ConditionGroup( ... operator=query.ConditionOperator.And, ... conditions=[ ... query.Condition(field="name", comparator=query.Comparator.Equals, value="Roboto"), ... query.ConditionGroup( ... operator=query.ConditionOperator.Or, ... conditions=[ ... query.Condition(field="age", comparator=query.Comparator.GreaterThan, value=18), ... query.Condition(field="age", comparator=query.Comparator.LessThan, value=30), ... ], ... ), ... ], ... ) ... )

**Parameters**

- **data** (`Any`)

**Attributes**

- **QuerySpecification.after** (`str | None`) = `None`: Encoded next page token. Optional.

- **QuerySpecification.condition** (`roboto.query.conditions.Condition | roboto.query.conditions.ConditionGroup | None`) = `None`: Query condition(s) to evaluate when looking up Roboto entities.

- **QuerySpecification.limit** (`int`) = `1000`: Page size for returned results. Optional, default is `MAX_PAGE_SIZE`.

- **QuerySpecification.max_results** (`int | None`) = `None`: Maximum number of results to return across all pages. Must be `>= 1` when set. `None` (default) means no cap — pagination yields the full result set. Distinct from `limit`, which is the per-page size.

  Only honored for queries executed via Roboto search (the `QueryTarget` resource types: collections, datasets, devices, files, sessions, topics, topic message paths, events). Other code paths that accept a `QuerySpecification` ignore this field.

- **QuerySpecification.model_config**: Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

- **QuerySpecification.sort_by** (`str | None`) = `None`: Field to sort results by. Optional, defaults to created date (`created`).

- **QuerySpecification.sort_direction** (`SortDirection | None`) = `None`: Sort direction for query results. Optional, defaults to "descending".

#### QuerySpecification.fields()

```python
def fields() -> set[str]
```

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/query/specification.py#L123-L140)

Return a set of all fields referenced in the query.

**Returns**

- `set[str]`

### SortDirection

```python
class roboto.query.specification.SortDirection
```

`from roboto.query import SortDirection`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/query/specification.py#L22-L40)

Bases: `roboto.compat.StrEnum`

The direction to sort the results of a query.

**Attributes**

- **SortDirection.Ascending** = `'ASC'`
- **SortDirection.Descending** = `'DESC'`

#### SortDirection.from_string()

```python
@staticmethod
def from_string(value: str) -> SortDirection
```

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/query/specification.py#L29-L37)

**Parameters**

- **value** (`str`)

**Returns**

- `SortDirection`
