## List

`admin.usage.list(UsageListParams**kwargs)  -> SyncOpaqueCursorPage[UsageListResponse]`

**get** `/compute/v1/admin/usage`

Retrieve aggregated usage data across the organization, optionally grouped by workspace and/or application.

### Parameters

- `ending_at: Union[str, datetime]`

  End of the time range as an ISO 8601 date-time with timezone, for example 2026-04-08T18:56:46Z

- `starting_at: Union[str, datetime]`

  Start of the time range as an ISO 8601 date-time with timezone, for example 2026-04-08T18:56:46Z

- `window_size: Literal["HOUR", "DAY"]`

  Time window size. HOUR supports up to 31 days per query; DAY supports up to 365 days per query.

  - `"HOUR"`

  - `"DAY"`

- `applications: Optional[Union[Literal["structure_and_binding", "small_molecule_design", "small_molecule_library_screen", 3 more], List[Literal["structure_and_binding", "small_molecule_design", "small_molecule_library_screen", 3 more]]]]`

  Filter to specific applications

  - `Literal["structure_and_binding", "small_molecule_design", "small_molecule_library_screen", 3 more]`

    - `"structure_and_binding"`

    - `"small_molecule_design"`

    - `"small_molecule_library_screen"`

    - `"protein_design"`

    - `"protein_library_screen"`

    - `"adme"`

  - `List[Literal["structure_and_binding", "small_molecule_design", "small_molecule_library_screen", 3 more]]`

    - `"structure_and_binding"`

    - `"small_molecule_design"`

    - `"small_molecule_library_screen"`

    - `"protein_design"`

    - `"protein_library_screen"`

    - `"adme"`

- `group_by: Optional[Union[Literal["workspace_id", "application"], List[Literal["workspace_id", "application"]]]]`

  Group results by workspace_id and/or application

  - `Literal["workspace_id", "application"]`

    - `"workspace_id"`

    - `"application"`

  - `List[Literal["workspace_id", "application"]]`

    - `"workspace_id"`

    - `"application"`

- `limit: Optional[int]`

  Maximum number of buckets to return

- `page: Optional[str]`

  Cursor for pagination

- `workspace_ids: Optional[Union[str, SequenceNotStr[str]]]`

  Filter to specific workspace IDs

  - `str`

  - `SequenceNotStr[str]`

### Returns

- `class UsageListResponse: …`

  - `end_time: datetime`

  - `quantity: int`

    Aggregated billed quantity for this bucket

  - `start_time: datetime`

  - `application: Optional[Literal["structure_and_binding", "small_molecule_design", "small_molecule_library_screen", 3 more]]`

    - `"structure_and_binding"`

    - `"small_molecule_design"`

    - `"small_molecule_library_screen"`

    - `"protein_design"`

    - `"protein_library_screen"`

    - `"adme"`

  - `workspace_id: Optional[str]`

    Present when grouped by workspace_id

### Example

```python
import os
from datetime import datetime
from boltz_api import Boltz

client = Boltz(
    api_key=os.environ.get("BOLTZ_API_KEY"),  # This is the default and can be omitted
)
page = client.admin.usage.list(
    ending_at=datetime.fromisoformat("2019-12-27T18:11:19.117"),
    starting_at=datetime.fromisoformat("2019-12-27T18:11:19.117"),
    window_size="HOUR",
)
page = page.data[0]
print(page.workspace_id)
```
