# Get usage across your clients (/docs/api-reference/reseller-usage/getResellerUsage)

> Your whole book for one period: each client's minutes, calls, spend and the margin you made on it, your totals, how long your balance will last, and your recurring revenue.

> **Reseller accounts only.** [Request access](https://omnidim.io/contact-us?reason=reseller_api&lock=1).

**GET** `/reseller/usage`

Your whole book for one period: each client's minutes, calls, spend
and the margin you made on it, your totals, how long your balance
will last, and your recurring revenue.

Pass `month`, or `date_from` and `date_to`. With neither, you get the
current month. Days are counted in your account's timezone, which the
response returns. A range can span at most 366 days.

All amounts are in US dollars. Revenue and margin count credit sales
to your clients in the period. Usage counts what your clients spent
their credit on. Burn and runway always look at the last 30 days, so
they do not move with the period you pick.

Who may call: the reseller account owner or an admin. Any other key
gets `403`.

```yaml
operationId: getResellerUsage
parameters:
  - name: month
    in: query
    required: false
    schema:
      type: string
      example: 2026-09
    description: A calendar month, as `YYYY-MM`.
  - name: date_from
    in: query
    required: false
    schema:
      type: string
      format: date
    description: First day of a custom range, as `YYYY-MM-DD`. Send with `date_to`.
  - name: date_to
    in: query
    required: false
    schema:
      type: string
      format: date
    description: Last day of a custom range, as `YYYY-MM-DD`. Send with `date_from`.
responses:
  '200':
    description: Usage and margin across your clients for the period.
    content:
      application/json:
        schema:
          type: object
          properties:
            reseller_organization_id:
              type: integer
            date_from:
              type: string
              format: date
            date_to:
              type: string
              format: date
            timezone:
              type: string
              description: The timezone the days are counted in.
            currency:
              type: string
              description: Always `USD`.
            totals:
              type: object
              properties:
                clients:
                  type: integer
                  description: Your direct clients today.
                active_clients:
                  type: integer
                  description: Clients with any usage, spend or margin in the period.
                total_minutes:
                  type: number
                total_calls:
                  type: integer
                total_consumption:
                  type: number
                  description: What your clients spent on calls and call features, at the rates you set.
                total_purchases:
                  type: number
                  description: What your clients spent on phone numbers and channels.
                total_revenue:
                  type: number
                  description: What your clients paid you for credit.
                total_wholesale_cost:
                  type: number
                  description: What that credit cost you.
                total_realized_margin:
                  type: number
                  description: Revenue minus wholesale cost.
                margin_pct:
                  type: number
                  description: Realized margin as a percent of revenue.
            pool:
              type: object
              description: Your own balance and how fast client sales draw it down.
              properties:
                balance:
                  type: number
                wholesale_charged:
                  type: number
                  description: Wholesale cost of the credit you sold in the period.
                burn_per_day:
                  type: number
                  description: Average wholesale cost per day over the last `burn_window_days`.
                burn_window_days:
                  type: integer
                runway_days:
                  type: number
                  nullable: true
                  description: Days your balance lasts at that rate. `null` when nothing is drawing it down.
            business:
              type: object
              properties:
                mrr:
                  type: number
                  description: Monthly revenue from your clients' active plan subscriptions.
                mrr_wholesale:
                  type: number
                mrr_profit:
                  type: number
                active_subscriptions:
                  type: integer
                top_client:
                  type: object
                  nullable: true
                  description: >-
                    The client that earned you the most in the period. `null` when no client made a
                    profit.
                  properties:
                    organization_id:
                      type: integer
                    name:
                      type: string
                    realized_margin:
                      type: number
                    share_pct:
                      type: number
                      description: Its share of your total realized margin.
                previous_period_realized_margin:
                  type: number
                  description: Realized margin in the period of the same length just before this one.
                realized_margin_change_pct:
                  type: number
                  nullable: true
                  description: Change against that period. `null` when the previous period made no profit.
            clients:
              type: array
              items:
                type: object
                properties:
                  organization_id:
                    type: integer
                  name:
                    type: string
                  minutes:
                    type: number
                  calls:
                    type: integer
                  consumption:
                    type: number
                  purchases:
                    type: number
                  numbers_spend:
                    type: number
                  channels_spend:
                    type: number
                  realized_margin:
                    type: number
                  balance:
                    type: number
                    description: The client's balance now.
                  runway_days:
                    type: number
                    nullable: true
                    description: >-
                      Days the client's balance lasts at its last 30 days of usage. `null` when it
                      is not using any.
        example:
          reseller_organization_id: 1234
          date_from: '2026-09-01'
          date_to: '2026-09-30'
          timezone: Asia/Kolkata
          currency: USD
          totals:
            clients: 2
            active_clients: 1
            total_minutes: 412.5
            total_calls: 380
            total_consumption: 61.88
            total_purchases: 3
            total_revenue: 100
            total_wholesale_cost: 70
            total_realized_margin: 30
            margin_pct: 30
          pool:
            balance: 250
            wholesale_charged: 70
            burn_per_day: 2.33
            burn_window_days: 30
            runway_days: 107.3
          business:
            mrr: 50
            mrr_wholesale: 35
            mrr_profit: 15
            active_subscriptions: 1
            top_client:
              organization_id: 5678
              name: Demo Client
              realized_margin: 30
              share_pct: 100
            previous_period_realized_margin: 24
            realized_margin_change_pct: 25
          clients:
            - organization_id: 5678
              name: Demo Client
              minutes: 412.5
              calls: 380
              consumption: 61.88
              purchases: 3
              numbers_spend: 3
              channels_spend: 0
              realized_margin: 30
              balance: 38.12
              runway_days: 18.5
  '400':
    description: The period is not a valid month or day range, or spans more than 366 days.
    content:
      application/json:
        schema:
          type: object
          properties:
            error:
              type: string
              description: Machine-readable error code.
            error_description:
              type: string
              description: Human-readable explanation.
            code:
              type: string
              description: |
                Stable, specific reason. Present on the newer endpoints (Voice
                cloning, WhatsApp); older endpoints return only `error`.
            request_id:
              type: string
              description: |
                Correlates this response with the server log. Present alongside
                `code`. Also sent as the `X-Request-Id` header.
        example:
          error: invalid_request
          error_description: >-
            Pass month as YYYY-MM, or date_from and date_to as YYYY-MM-DD. A range can span at most
            366 days.
          code: invalid_request
          request_id: req_5d9a1f3e8b02
  '403':
    description: The key is not a reseller's, or not the owner or an admin.
    content:
      application/json:
        schema:
          type: object
          properties:
            error:
              type: string
              description: Machine-readable error code.
            error_description:
              type: string
              description: Human-readable explanation.
            code:
              type: string
              description: |
                Stable, specific reason. Present on the newer endpoints (Voice
                cloning, WhatsApp); older endpoints return only `error`.
            request_id:
              type: string
              description: |
                Correlates this response with the server log. Present alongside
                `code`. Also sent as the `X-Request-Id` header.
```

**curl**

```bash
curl -X GET "https://backend.omnidim.io/api/v1/reseller/usage?month=2026-09" \
  -H "Authorization: Bearer $OMNIDIM_API_KEY"
```