# Usage

## List

`client.Admin.Usage.List(ctx, query) (*OpaqueCursorPage[AdminUsageListResponse], error)`

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

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

### Parameters

- `query AdminUsageListParams`

  - `EndingAt param.Field[Time]`

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

  - `StartingAt param.Field[Time]`

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

  - `WindowSize param.Field[AdminUsageListParamsWindowSize]`

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

    - `const AdminUsageListParamsWindowSizeHour AdminUsageListParamsWindowSize = "HOUR"`

    - `const AdminUsageListParamsWindowSizeDay AdminUsageListParamsWindowSize = "DAY"`

  - `Applications param.Field[AdminUsageListParamsApplicationsUnion]`

    Filter to specific applications

    - `type AdminUsageListParamsApplicationsString string`

      - `const AdminUsageListParamsApplicationsStringStructureAndBinding AdminUsageListParamsApplicationsString = "structure_and_binding"`

      - `const AdminUsageListParamsApplicationsStringSmallMoleculeDesign AdminUsageListParamsApplicationsString = "small_molecule_design"`

      - `const AdminUsageListParamsApplicationsStringSmallMoleculeLibraryScreen AdminUsageListParamsApplicationsString = "small_molecule_library_screen"`

      - `const AdminUsageListParamsApplicationsStringProteinDesign AdminUsageListParamsApplicationsString = "protein_design"`

      - `const AdminUsageListParamsApplicationsStringProteinLibraryScreen AdminUsageListParamsApplicationsString = "protein_library_screen"`

      - `const AdminUsageListParamsApplicationsStringAdme AdminUsageListParamsApplicationsString = "adme"`

    - `type AdminUsageListParamsApplicationsArray []AdminUsageListParamsApplicationsArrayItem`

      - `const AdminUsageListParamsApplicationsArrayItemStructureAndBinding AdminUsageListParamsApplicationsArrayItem = "structure_and_binding"`

      - `const AdminUsageListParamsApplicationsArrayItemSmallMoleculeDesign AdminUsageListParamsApplicationsArrayItem = "small_molecule_design"`

      - `const AdminUsageListParamsApplicationsArrayItemSmallMoleculeLibraryScreen AdminUsageListParamsApplicationsArrayItem = "small_molecule_library_screen"`

      - `const AdminUsageListParamsApplicationsArrayItemProteinDesign AdminUsageListParamsApplicationsArrayItem = "protein_design"`

      - `const AdminUsageListParamsApplicationsArrayItemProteinLibraryScreen AdminUsageListParamsApplicationsArrayItem = "protein_library_screen"`

      - `const AdminUsageListParamsApplicationsArrayItemAdme AdminUsageListParamsApplicationsArrayItem = "adme"`

  - `GroupBy param.Field[AdminUsageListParamsGroupByUnion]`

    Group results by workspace_id and/or application

    - `type AdminUsageListParamsGroupByString string`

      - `const AdminUsageListParamsGroupByStringWorkspaceID AdminUsageListParamsGroupByString = "workspace_id"`

      - `const AdminUsageListParamsGroupByStringApplication AdminUsageListParamsGroupByString = "application"`

    - `type AdminUsageListParamsGroupByArray []AdminUsageListParamsGroupByArrayItem`

      - `const AdminUsageListParamsGroupByArrayItemWorkspaceID AdminUsageListParamsGroupByArrayItem = "workspace_id"`

      - `const AdminUsageListParamsGroupByArrayItemApplication AdminUsageListParamsGroupByArrayItem = "application"`

  - `Limit param.Field[int64]`

    Maximum number of buckets to return

  - `Page param.Field[string]`

    Cursor for pagination

  - `WorkspaceIDs param.Field[AdminUsageListParamsWorkspaceIDsUnion]`

    Filter to specific workspace IDs

    - `string`

    - `type AdminUsageListParamsWorkspaceIDsArray []string`

### Returns

- `type AdminUsageListResponse struct{…}`

  - `EndTime Time`

  - `Quantity int64`

    Aggregated billed quantity for this bucket

  - `StartTime Time`

  - `Application AdminUsageListResponseApplication`

    - `const AdminUsageListResponseApplicationStructureAndBinding AdminUsageListResponseApplication = "structure_and_binding"`

    - `const AdminUsageListResponseApplicationSmallMoleculeDesign AdminUsageListResponseApplication = "small_molecule_design"`

    - `const AdminUsageListResponseApplicationSmallMoleculeLibraryScreen AdminUsageListResponseApplication = "small_molecule_library_screen"`

    - `const AdminUsageListResponseApplicationProteinDesign AdminUsageListResponseApplication = "protein_design"`

    - `const AdminUsageListResponseApplicationProteinLibraryScreen AdminUsageListResponseApplication = "protein_library_screen"`

    - `const AdminUsageListResponseApplicationAdme AdminUsageListResponseApplication = "adme"`

  - `WorkspaceID string`

    Present when grouped by workspace_id

### Example

```go
package main

import (
  "context"
  "fmt"
  "time"

  "github.com/boltz-bio/boltz-api-go"
  "github.com/boltz-bio/boltz-api-go/option"
)

func main() {
  client := boltzapi.NewClient(
    option.WithAPIKey("My API Key"),
  )
  page, err := client.Admin.Usage.List(context.TODO(), boltzapi.AdminUsageListParams{
    EndingAt: time.Now(),
    StartingAt: time.Now(),
    WindowSize: boltzapi.AdminUsageListParamsWindowSizeHour,
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", page)
}
```
