# Utilization for one instrument, optionally for one service

> One entry per service for reservations, or per plan type for plans, each measured on its own and never rolled up: EC2 and RDS contract in vCPU while Redshift, ElastiCache, OpenSearch, Elasticsearch and MemoryDB contract in nodes, so an average across them describes neither. Each entry's headline divides the used hours by the purchased hours over the window rather than averaging its dimensions.

Source: https://docs.levelfour.ai/api-reference/commitments/get-commitments-utilization


## GET /api/v1/commitments/utilization

One entry per service for reservations, or per plan type for plans, each measured on its own and never rolled up: EC2 and RDS contract in vCPU while Redshift, ElastiCache, OpenSearch, Elasticsearch and MemoryDB contract in nodes, so an average across them describes neither. Each entry's headline divides the used hours by the purchased hours over the window rather than averaging its dimensions.

### Authentication

Send `Authorization: Bearer <token>`.

### Parameters

- `provider` (query, string, default `aws`)
- `type` (query, string, default `ri`)
- `start` (query, string, nullable)
- `end` (query, string, nullable)
- `granularity` (query, string, default `daily`)

### Responses

#### 200: Successful Response

- `success` (boolean, default `true`)
- `timestamp` (date-time string)
- `data` (object, required)
  - `instrument` (one of `ri`, `sp`, required)
  - `services` (array of object, required)
    - `service` (string, required)
    - `service_label` (string, required)
    - `utilization_pct` (number, required)
    - `dimensions` (array of object, required)
      - `key` (one of `capacity`, `memory`, required)
      - `used` (number, required)
      - `total` (number, required)
      - `unit` (string, required)
      - `utilization_pct` (number, required)
    - `committed_monthly_usd` (number, nullable, required)
    - `committed_hourly_usd` (number, nullable, required)
    - `contracted_hourly_usd` (number, nullable, required)
    - `applied_to` (array of object, required)
      - `service` (string, required)
      - `hourly_usd` (number, required)
    - `days` (array of object, required)
      - `date` (string, required)
      - `capacity_pct` (number, nullable)
      - `capacity_used` (number, nullable)
      - `capacity_total` (number, nullable)
      - `commitment_pct` (number, nullable)
      - `commitment_used_usd` (number, nullable)
      - `commitment_total_usd` (number, nullable)
      - `coverage_pct` (number, nullable)

#### Errors

- `400`: Bad Request
- `401`: Authentication Error
- `403`: Authorization Error
- `404`: Not Found
- `409`: Conflict
- `422`: Validation Error
- `429`: Rate Limit Exceeded
- `500`: Internal Server Error

Body of `400`, `401`, `403`, `404`, `409`, `422`, `429`, `500`:

- `success` (`false`, required)
- `error` (object, required)
  - `code` (string, required)
  - `message` (string, required)
  - `details` (any)
- `timestamp` (date-time string, required)
