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

# Collection.query

```python theme={"system"}
def Collection.query(
    temporal_extent: TimeIntervalLike,
    skip_data: bool = False,
    show_progress: bool = False
) -> xarray.Dataset
```

Query a range of data points in this collection in a specified temporal extent.
If no data exists for the requested time or interval, an empty `xarray.Dataset` is returned.

## Parameters

<ParamField path="temporal_extent" type="TimeIntervalLike">
  The time or time interval for which to query data. This can be a single time scalar, a tuple of two time scalars, or an array of time scalars.

  Valid time scalars are: `datetime.datetime` objects, strings in ISO 8601 format, or Unix timestamps in seconds.

  Behavior for each input type:

  * **TimeScalar**: If a single time scalar is provided, `query` returns all data points for that exact millisecond.

  * **TimeInterval**: If a time interval is provided, `query` returns all data points in that interval. Intervals can be a tuple of two `TimeScalars` or a `TimeInterval` object. Tuples are interpreted as a half-open interval `[start, end)`. With a `TimeInterval` object, the `start_exclusive` and `end_inclusive` parameters control whether the start and end time are inclusive or exclusive.

  * **Iterable\[TimeScalar]**: If an array of time scalars is provided, `query` constructs a time interval from the first and last time scalar in the array. Here, both the `start` and `end` times are inclusive.
</ParamField>

<ParamField path="skip_data" type="bool">
  If `True`, the response contains only the ID and the timestamp for each datapoint. Defaults to `False`.
</ParamField>

<ParamField path="show_progress" type="bool">
  If `True`, a progress bar is displayed when pagination is required. Defaults to `False`.
</ParamField>

## Returns

An [`xarray.Dataset`](/sdks/python/xarray) containing the requested data points.

<RequestExample>
  ```python Python theme={"system"}
  from datetime import datetime
  from tilebox.datasets.query import TimeInterval

  # querying a specific time
  time = "2023-05-01 12:45:33.423"
  data = collection.query(temporal_extent=time)

  # querying a time interval
  interval = ("2023-05-01", "2023-08-01")
  data = collection.query(temporal_extent=interval)

  # displaying a progress bar while querying
  data = collection.query(
    temporal_extent=interval,
    show_progress=True,
  )

  # querying a time interval with TimeInterval
  interval = TimeInterval(
      start=datetime(2023, 5, 1),
      end=datetime(2023, 8, 1),
      start_exclusive=False,
      end_inclusive=False,
  )
  data = collection.query(temporal_extent=interval)

  # querying with an iterable
  datapoints = collection.query(
    temporal_extent=interval,
    skip_data=True,  # only fetch datapoint IDs and time
  )
  first_50 = collection.query(temporal_extent=datapoints.time[:50])
  ```
</RequestExample>
