# Uncovered on-demand base, split for sizing

> On-demand spend a Savings Plan could cover and no commitment does, per payer, plan type, service and platform, read off the daily CUR over the last 30 complete days. Carries the daily floor of each slice, in commitment dollars an hour, and names each row's grain and source. A payer with no CUR gets Cost Explorer's hourly figures as visibility, with no suggested size.

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


## GET /api/v1/commitments/uncovered

On-demand spend a Savings Plan could cover and no commitment does, per payer, plan type, service and platform, read off the daily CUR over the last 30 complete days. Carries the daily floor of each slice, in commitment dollars an hour, and names each row's grain and source. A payer with no CUR gets Cost Explorer's hourly figures as visibility, with no suggested size.

### Authentication

Send `Authorization: Bearer <token>`.

### Responses

#### 200: Successful Response

- `success` (boolean, default `true`)
- `timestamp` (date-time string)
- `data` (array of object, required)
  - `service` (string, required)
  - `organization_id` (string, required)
  - `payer_account_id` (string, required)
  - `plan_type` (one of `compute`, `database`, required)
  - `platform` (string, required)
  - `on_demand_hourly_avg` (number, required)
  - `on_demand_hourly_min` (number, required)
  - `volatility_ratio` (number, required)
  - `recommended_kind` (string, nullable, required)
  - `suggested_commitment_hourly` (number, required)
  - `grain` (one of `daily`, `hourly`, required)
  - `source` (one of `cur`, `cost_explorer_recommendation`, required)
  - `window_days` (integer, required)
  - `fetched_on` (date string, 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)
