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

# Get usage overview

> Your organization's usage over a time window, bucketed for charting.

One request serves a whole dashboard: totals for the window, plus the series
behind them at the requested `granularity`. Every bucket in the window is
returned, including the empty ones, oldest first — so a chart can be drawn
straight from `buckets` with no gaps and no sorting. The totals are the sum of the
same buckets, so the two always agree.

Covers the whole organization, including rooms a teammate ran.

**The window may cover at most 90 days**, counted as calendar days in the
requested `timezone`; a longer window returns 422. The response is not paginated —
request a shorter window or a coarser granularity for a smaller series.

Remaining credit is not part of this: a balance is a level rather than a total over
a window, so it lives on `GET /v1/billing/credit`.



## OpenAPI

````yaml https://api.staging.glot.com/openapi.json get /v1/usage/overview
openapi: 3.1.0
info:
  title: glot-api
  version: 0.1.0
servers: []
security: []
tags:
  - name: rooms
    description: Create translation rooms and let participants join them.
  - name: usage
    description: Minutes and charges over time, for reporting and charts.
  - name: billing
    description: Buy prepaid credit and review the balance behind it.
  - name: api-keys
    description: Create and revoke keys used to authenticate requests.
  - name: supported-languages
    description: Languages available for translation.
  - name: users
    description: The authenticated user's own profile.
paths:
  /v1/usage/overview:
    get:
      tags:
        - usage
      summary: Get usage overview
      description: >-
        Your organization's usage over a time window, bucketed for charting.


        One request serves a whole dashboard: totals for the window, plus the
        series

        behind them at the requested `granularity`. Every bucket in the window
        is

        returned, including the empty ones, oldest first — so a chart can be
        drawn

        straight from `buckets` with no gaps and no sorting. The totals are the
        sum of the

        same buckets, so the two always agree.


        Covers the whole organization, including rooms a teammate ran.


        **The window may cover at most 90 days**, counted as calendar days in
        the

        requested `timezone`; a longer window returns 422. The response is not
        paginated —

        request a shorter window or a coarser granularity for a smaller series.


        Remaining credit is not part of this: a balance is a level rather than a
        total over

        a window, so it lives on `GET /v1/billing/credit`.
      operationId: get_usage_overview_v1_usage_overview_get
      parameters:
        - name: starts_after
          in: query
          required: true
          schema:
            type: string
            format: date-time
            description: >-
              Start of the window, inclusive. Must carry a UTC offset, e.g.
              `2026-07-30T00:00:00Z`. With `ends_before` it may cover at most 90
              days.
            title: Starts After
          description: >-
            Start of the window, inclusive. Must carry a UTC offset, e.g.
            `2026-07-30T00:00:00Z`. With `ends_before` it may cover at most 90
            days.
        - name: ends_before
          in: query
          required: true
          schema:
            type: string
            format: date-time
            description: >-
              End of the window, exclusive: an event at exactly this instant
              belongs to the next window, so consecutive windows tile without
              double-counting. Must carry a UTC offset, and must be after
              `starts_after`.
            title: Ends Before
          description: >-
            End of the window, exclusive: an event at exactly this instant
            belongs to the next window, so consecutive windows tile without
            double-counting. Must carry a UTC offset, and must be after
            `starts_after`.
        - name: granularity
          in: query
          required: true
          schema:
            $ref: '#/components/schemas/Granularity'
            description: >-
              Bucket width, which also sets how many points come back — the
              series is dense, so a 90-day window is 13 weekly points or roughly
              2,160 hourly ones.
          description: >-
            Bucket width, which also sets how many points come back — the series
            is dense, so a 90-day window is 13 weekly points or roughly 2,160
            hourly ones.
        - name: timezone
          in: query
          required: false
          schema:
            type: string
            description: >-
              IANA zone name the buckets are truncated in, so a day starts at
              local midnight and a week on the local Monday. A fixed offset such
              as `+05:30` is not accepted, because an offset cannot express DST.
            default: UTC
            title: Timezone
          description: >-
            IANA zone name the buckets are truncated in, so a day starts at
            local midnight and a week on the local Monday. A fixed offset such
            as `+05:30` is not accepted, because an offset cannot express DST.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsageOverviewResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    Granularity:
      type: string
      enum:
        - hour
        - day
        - week
      title: Granularity
      description: How wide each bucket of a usage series is.
    UsageOverviewResponse:
      properties:
        starts_after:
          type: string
          format: date-time
          title: Starts After
        ends_before:
          type: string
          format: date-time
          title: Ends Before
        granularity:
          $ref: '#/components/schemas/Granularity'
        timezone:
          type: string
          title: Timezone
        summary:
          $ref: '#/components/schemas/UsageSummaryResponse'
        buckets:
          items:
            $ref: '#/components/schemas/UsageBucketResponse'
          type: array
          title: Buckets
      type: object
      required:
        - starts_after
        - ends_before
        - granularity
        - timezone
        - summary
        - buckets
      title: UsageOverviewResponse
      description: >-
        Usage totals and the series behind them, for one time window.


        The requested window, granularity and timezone are echoed back, so the
        response

        describes exactly what it covers. `buckets` is oldest first and includes
        empty

        buckets, so it can be charted without further processing.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    UsageSummaryResponse:
      properties:
        total_minutes:
          type: integer
          title: Total Minutes
        total_rooms:
          type: integer
          title: Total Rooms
        total_participants:
          type: integer
          title: Total Participants
      type: object
      required:
        - total_minutes
        - total_rooms
        - total_participants
      title: UsageSummaryResponse
      description: >-
        Totals for the whole window, summed from the buckets below them.


        `total_participants` counts the people who connected — a participant who
        drops and

        rejoins counts twice, and the translator serving each room is not
        counted, though

        its minutes are included in `total_minutes`.
    UsageBucketResponse:
      properties:
        bucket:
          type: string
          format: date-time
          title: Bucket
        minutes:
          type: integer
          title: Minutes
        avg_room_minutes:
          type: number
          title: Avg Room Minutes
        sessions:
          type: integer
          title: Sessions
      type: object
      required:
        - bucket
        - minutes
        - avg_room_minutes
        - sessions
      title: UsageBucketResponse
      description: >-
        One point of the usage series.


        `bucket` is the start of the interval, inclusive. `minutes` is the
        billed

        connection minutes summed across participants; `avg_room_minutes` is the
        mean

        wall-clock length of the rooms that started in this bucket and have
        finished, so

        the two are not proportional.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````