---
title: "List feature usage history"
method: GET
path: "/feature-usage-history"
tags: ["entitlements"]
---

# List feature usage history

`GET /feature-usage-history`

## Query parameters

- `company_ids` string[] — Restrict to these company IDs; omit for every company in the environment
- `end_time` string, date-time, required — Exclusive end of the window; must fall on an hour boundary
- `feature_ids` string[] — Restrict to these event features; omit for every event feature in the environment. Where several features measure the same event, each is reported separately and a page may carry more rows than the requested limit
- `granularity` 'daily' | 'hourly' | 'monthly' | 'weekly'
- `start_time` string, date-time, required — Inclusive start of the window; must fall on an hour boundary
- `limit` integer — Page limit (default 100)
- `offset` integer — Page offset (default 0)

## Response `200`

OK

- object
  - `data` FeatureUsageHistoryResponseData[], required
    - `company_id` string, required — Companies are identified by ID only. To report against your own identifiers, resolve them once via the companies API and cache the mapping; keys are not repeated on every row.
    - `event_subtype` string, required
    - `feature_id` string, required
    - `period_end` string, date-time, required — Exclusive end of the period this usage covers
    - `period_start` string, date-time, required — Inclusive start of the period this usage covers
    - `usage` integer, required — Usage recorded within this period; an incremental total, not a running one
  - `params` object, required — Input parameters
    - `company_ids` string[] — Restrict to these company IDs; omit for every company in the environment
    - `end_time` string, date-time — Exclusive end of the window; must fall on an hour boundary
    - `feature_ids` string[] — Restrict to these event features; omit for every event feature in the environment. Where several features measure the same event, each is reported separately and a page may carry more rows than the requested limit
    - `granularity` 'daily' | 'hourly' | 'monthly' | 'weekly'
    - `limit` integer — Page limit (default 100)
    - `offset` integer — Page offset (default 0)
    - `start_time` string, date-time — Inclusive start of the window; must fall on an hour boundary

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `500` — Server error

---

[API](https://skmtc.net/schematichq/apis/schematic-api.md) · [All operations](https://skmtc.net/schematichq/apis/schematic-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/schematichq/schematic-api/revisions/ca9c0227b918/schema)
