Skip to content
Docs

    List Usage Records

    client.usage.list(UsageListParams { cursor, limit } query?, RequestOptionsoptions?): Cursor<Usage { dimensions, ended_at, project_id, 4 more } >
    GET/v1/usage

    List per-resource usage records for the current organization. Each item is one resource with its nested dimension history (active and closed segments).

    ParametersExpand Collapse
    query: UsageListParams { cursor, limit }
    cursor?: string

    Pagination cursor returned by a previous request

    limit?: number

    Maximum number of items to return

    maximum100
    minimum10
    ReturnsExpand Collapse
    Usage { dimensions, ended_at, project_id, 4 more }

    Usage record for a single metered resource.

    dimensions: Array<UsageDimension { id, dimension, ended_at, 3 more } >
    id: string
    dimension: string
    ended_at: string | null
    quantity: number
    started_at: string
    children?: Array<UsageDimensionLeaf { id, dimension, ended_at, 2 more } >
    id: string
    dimension: string
    ended_at: string | null
    quantity: number
    started_at: string
    ended_at: string | null
    project_id: string
    region: RegionName { }

    Region the resource is in.

    resource_id: string
    resource_type: UsageResourceType

    Kind of metered resource a ledger row belongs to.

    One of the following:
    "vm"
    "volume"
    "vpc"
    "connect_connection"
    "nks_cluster"
    "nks_node_pool"
    "nks_load_balancer"
    started_at: string

    List Usage Records

    import NirvanaLabs from '@nirvana-labs/nirvana';
    
    const client = new NirvanaLabs({
      apiKey: process.env['NIRVANA_LABS_API_KEY'], // This is the default and can be omitted
    });
    
    // Automatically fetches more pages as needed.
    for await (const usage of client.usage.list()) {
      console.log(usage.project_id);
    }
    {
      "items": [
        {
          "dimensions": [
            {
              "id": "123e4567-e89b-12d3-a456-426614174000",
              "dimension": "compute_n1_standard_8",
              "ended_at": "2026-02-01T00:00:00Z",
              "quantity": 1,
              "started_at": "2026-01-01T00:00:00Z",
              "children": [
                {
                  "id": "123e4567-e89b-12d3-a456-426614174000",
                  "dimension": "compute_vcpu",
                  "ended_at": "2026-02-01T00:00:00Z",
                  "quantity": 2,
                  "started_at": "2026-01-01T00:00:00Z"
                }
              ]
            }
          ],
          "ended_at": "2026-02-01T00:00:00Z",
          "project_id": "123e4567-e89b-12d3-a456-426614174000",
          "region": "us-sva-2",
          "resource_id": "123e4567-e89b-12d3-a456-426614174000",
          "resource_type": "vm",
          "started_at": "2026-01-01T00:00:00Z"
        }
      ],
      "pagination": {
        "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
        "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
        "total_count": 125
      }
    }
    Returns Examples
    {
      "items": [
        {
          "dimensions": [
            {
              "id": "123e4567-e89b-12d3-a456-426614174000",
              "dimension": "compute_n1_standard_8",
              "ended_at": "2026-02-01T00:00:00Z",
              "quantity": 1,
              "started_at": "2026-01-01T00:00:00Z",
              "children": [
                {
                  "id": "123e4567-e89b-12d3-a456-426614174000",
                  "dimension": "compute_vcpu",
                  "ended_at": "2026-02-01T00:00:00Z",
                  "quantity": 2,
                  "started_at": "2026-01-01T00:00:00Z"
                }
              ]
            }
          ],
          "ended_at": "2026-02-01T00:00:00Z",
          "project_id": "123e4567-e89b-12d3-a456-426614174000",
          "region": "us-sva-2",
          "resource_id": "123e4567-e89b-12d3-a456-426614174000",
          "resource_type": "vm",
          "started_at": "2026-01-01T00:00:00Z"
        }
      ],
      "pagination": {
        "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
        "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
        "total_count": 125
      }
    }