# Per-service commitment breakdown

> Returns a service x instrument matrix of RI and SP utilization, coverage, unused, and uncovered values. One row per service that has at least one commitment.

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


## GET /api/v1/commitments/by-service

Returns a service x instrument matrix of RI and SP utilization, coverage, unused, and uncovered values. One row per service that has at least one commitment.

### Authentication

Send `Authorization: Bearer <token>`.

### Parameters

- `provider` (query, string, default `aws`)

### Responses

#### 200: Successful Response

- `success` (boolean, default `true`)
- `timestamp` (date-time string)
- `data` (object, required)
  - `provider` (string, required)
  - `services` (array of object, required)
    - `service` (string, required)
    - `service_label` (string, required)
    - `ri` (object, required)
      - `utilization_pct` (number, required)
      - `coverage_pct` (number, required)
      - `unused_monthly` (number, required)
      - `uncovered_monthly` (number, required)
      - `commitment_count` (integer, required)
    - `sp` (object, required)
      - `utilization_pct` (number, required)
      - `coverage_pct` (number, required)
      - `unused_monthly` (number, required)
      - `uncovered_monthly` (number, required)
      - `commitment_count` (integer, 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)
