Get usage per product

Retrieve your organization's usage and incurred cost across Better Stack products, itemized down to individual sources, applications, and billing line items. The usage API returns the same data as the Usage page in your billing settings.

The usage API requires a global API token.

Buckets align to calendar days, weeks, months, or quarters based on resolution, so with a coarser resolution the first and last bucket can extend beyond your requested range. Resolutions other than day return a date_from and date_to instead of a single date.

Time range defaults to the last 30 days when from and to are omitted and results are returned without pagination.

GET https://betterstack.com/api/v2/usage/{product}

URL parameters

product
required string

Query parameters

from
string
to
string
dimension
string
resolution
string

Headers

Authorization
required string
200

Response body

{
  "meta": {
    "product": "logs",
    "dimension": "volume",
    "label": "Ingested volume",
    "unit": "bytes",
    "resolution": "day",
    "from": "2026-07-26",
    "to": "2026-07-29"
  },
  "data": [
    {
      "id": "142",
      "type": "usage_logs_volume_item",
      "attributes": {
        "name": "production-app",
        "url": "https://telemetry.betterstack.com/team/t123456/sources/311278/edit",
        "values": [
          {
            "date": "2026-07-26",
            "value": 1073741824,
            "finalized": true
          },
          {
            "date": "2026-07-27",
            "value": 1073741824,
            "finalized": true
          },
          {
            "date": "2026-07-28",
            "value": 2147483648,
            "finalized": true
          },
          {
            "date": "2026-07-29",
            "value": 536870912,
            "finalized": false
          }
        ]
      }
    },
    {
      "id": "167",
      "type": "usage_logs_volume_item",
      "attributes": {
        "name": "staging-app",
        "url": "https://telemetry.betterstack.com/team/t123456/sources/311292/edit",
        "values": [
          {
            "date": "2026-07-26",
            "value": 268435456,
            "finalized": true
          },
          {
            "date": "2026-07-27",
            "value": 268435456,
            "finalized": true
          },
          {
            "date": "2026-07-28",
            "value": 0,
            "finalized": true
          },
          {
            "date": "2026-07-29",
            "value": 134217728,
            "finalized": false
          }
        ]
      }
    }
  ]
}
200

Response body

{
  "meta": {
    "product": "responders",
    "dimension": "seat_id",
    "label": "Responders",
    "unit": "count",
    "resolution": "day",
    "from": "2026-07-26",
    "to": "2026-07-29"
  },
  "data": [
    {
      "id": "Responders",
      "type": "usage_responders_seat_id_item",
      "attributes": {
        "name": "Responders",
        "url": null,
        "values": [
          {
            "date": "2026-07-26",
            "value": 12,
            "finalized": true
          },
          {
            "date": "2026-07-27",
            "value": 12,
            "finalized": true
          },
          {
            "date": "2026-07-28",
            "value": 13,
            "finalized": true
          },
          {
            "date": "2026-07-29",
            "value": 13,
            "finalized": false
          }
        ]
      }
    },
    {
      "id": "Unassigned licenses",
      "type": "usage_responders_seat_id_item",
      "attributes": {
        "name": "Unassigned licenses",
        "url": null,
        "values": [
          {
            "date": "2026-07-26",
            "value": 3,
            "finalized": true
          },
          {
            "date": "2026-07-27",
            "value": 3,
            "finalized": true
          },
          {
            "date": "2026-07-28",
            "value": 2,
            "finalized": true
          },
          {
            "date": "2026-07-29",
            "value": 2,
            "finalized": false
          }
        ]
      }
    }
  ]
}
200

Response body

{
  "meta": {
    "product": "transaction-monitors",
    "dimension": "cost",
    "label": "Incurred cost",
    "unit": "$",
    "resolution": "week",
    "from": "2026-01-01",
    "to": "2026-02-22"
  },
  "data": [
    {
      "id": "285114",
      "type": "usage_transaction_monitors_cost_item",
      "attributes": {
        "name": "Transaction monitoring",
        "url": null,
        "values": [
          {
            "date_from": "2025-12-29",
            "date_to": "2026-01-04",
            "value": 24.5,
            "finalized": true
          },
          {
            "date_from": "2026-01-05",
            "date_to": "2026-01-11",
            "value": 24.5,
            "finalized": true
          },
          {
            "date_from": "2026-01-12",
            "date_to": "2026-01-18",
            "value": 26.25,
            "finalized": true
          },
          {
            "date_from": "2026-01-19",
            "date_to": "2026-01-25",
            "value": 28.0,
            "finalized": true
          },
          {
            "date_from": "2026-01-26",
            "date_to": "2026-02-01",
            "value": 28.0,
            "finalized": true
          },
          {
            "date_from": "2026-02-02",
            "date_to": "2026-02-08",
            "value": 28.0,
            "finalized": true
          },
          {
            "date_from": "2026-02-09",
            "date_to": "2026-02-15",
            "value": 29.75,
            "finalized": true
          },
          {
            "date_from": "2026-02-16",
            "date_to": "2026-02-22",
            "value": 29.75,
            "finalized": true
          }
        ]
      }
    }
  ]
}
401

Response body

{
  "errors": "We could not authenticate your request. Please provide a valid Global API token."
}
404

Response body

{
  "errors": "Product not found. Available products: logs, traces, metrics, monitors, heartbeats, status-pages."
}
422

Response body

{
  "errors": "Date range too large. Use at most 400 days."
}

Response attributes

meta.product
string
meta.dimension
string
meta.label
string
meta.unit
string
meta.resolution
string
meta.from
string
meta.to
string
id
string
type
string
attributes.name
string
attributes.url
string or null
attributes.values
array
attributes.values[].date
string
attributes.values[].date_from
string
attributes.values[].date_to
string
attributes.values[].value
number or null
attributes.values[].finalized
boolean

Example cURL

Log volume Responders Weekly report
curl --request GET \
  --url "https://betterstack.com/api/v2/usage/logs" \
  --header "Authorization: Bearer $TOKEN"
curl --request GET \
  --url "https://betterstack.com/api/v2/usage/responders" \
  --header "Authorization: Bearer $TOKEN"
curl --request GET \
  --url "https://betterstack.com/api/v2/usage/transaction-monitors" \
  --data-urlencode "dimension=cost" \
  --data-urlencode "resolution=week" \
  --data-urlencode "from=2026-01-01" \
  --data-urlencode "to=2026-02-22" \
  --header "Authorization: Bearer $TOKEN"