# Get commitment detail

Source: https://docs.levelfour.ai/api-reference/commitments/get-commitments-detail-by-id


## GET /api/v1/commitments/detail/{commitment_id}

### Authentication

Send `Authorization: Bearer <token>`.

### Parameters

- `commitment_id` (path, string, required)

### Responses

#### 200: Successful Response

- `success` (boolean, default `true`)
- `timestamp` (date-time string)
- `data` (object, required)
  - `id` (string, required)
  - `provider` (string, required)
  - `service` (string, required)
  - `service_label` (string, required)
  - `account_id` (string, required)
  - `account_name` (string, required)
  - `region` (string, required)
  - `kind` (one of `reserved_instance`, `savings_plan`, `committed_use_discount`, `spend_commitment`, required)
  - `start_date` (string, required)
  - `end_date` (string, required)
  - `term_months` (integer, required)
  - `payment_option` (one of `all_upfront`, `partial_upfront`, `no_upfront`, nullable, required)
  - `hourly_commitment_usd` (number, nullable, required)
  - `monthly_commitment_usd` (number, required)
  - `status` (one of `active`, `expiring`, `expired`, `cancelled`, required)
  - `current_utilization_pct` (number, required)
  - `current_coverage_pct` (number, nullable, required)
  - `is_commitable` (boolean, required)
  - `figures_source` (one of `cur`, `cost_explorer`, default `cost_explorer`)
  - `end_at` (string, nullable)
  - `holder_account_id` (string, nullable)
  - `unit_count` (integer, default `1`)
  - `fee_monthly_list` (number, nullable)
  - `fee_monthly_net` (number, nullable)
  - `utilization_slope_pp_30d` (number, nullable)
  - `protects_monthly` (number, nullable)
  - `rightsizing_monthly` (number, nullable)
  - `exchangeable` (boolean, nullable)
  - `cancellable` (boolean, nullable)
  - `renewal_recommendation_id` (string, nullable)
  - `utilization_history` (array of object)
    - `date` (string, required)
    - `utilization_pct` (number, required)
    - `purchased_hours` (number, required)
    - `used_hours` (number, required)
    - `unused_cost` (number, required)
  - `coverage_history` (array of object)
    - `date` (string, required)
    - `coverage_pct` (number, nullable, required)
  - `consumers` (array of object)
    - `account_id` (string, required)
    - `account_name` (string, required)
    - `covered_spend_monthly` (number, required)
    - `covered_hours` (number, required)
  - `history` (array of object)
    - `id` (string, required)
    - `type` (one of `purchased`, `renewed`, `expired`, required)
    - `timestamp` (string, required)
    - `actor` (object, required)
      - `email` (string, nullable)
      - `account_id` (string, required)
    - `details` (map of string to string, required)
  - `recommendations` (array of object)
    - `id` (string, required)
    - `kind` (one of `buy_reserved_instance`, `buy_savings_plan`, `cancel_underutilized`, required)
    - `monthly_savings` (number, required)
    - `confidence` (one of `high`, `medium`, `low`, required)
    - `summary` (string, required)

#### 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)
