# Get provider-specific recommendations summary

> Returns top 7 recommendations for a specific cloud provider

Source: https://docs.levelfour.ai/api-reference/providers/get-providers-by-id-recommendations-summary


## GET /api/v1/providers/{provider_id}/recommendations/summary

Returns top 7 recommendations for a specific cloud provider

### Authentication

Send `Authorization: Bearer <token>`.

### Parameters

- `provider_id` (path, string, required)

### Responses

#### 200: Successful Response

- `success` (boolean, default `true`)
- `timestamp` (date-time string)
- `data` (object, required): Provider-specific recommendations summary with top recommendations
  - `provider_id` (string, required): Provider identifier
  - `provider_name` (string, required): Provider display name
  - `top_recommendations` (array of object, required): Top 3 recommendations by savings
    - `recommendation_id` (string, required): Unique identifier for the recommendation
    - `service` (string, required): Service name (e.g., EC2, Cloud SQL, Virtual Machines)
    - `monthly_savings` (number, required): Monthly savings amount
    - `annual_savings` (number, required): Annual savings amount
    - `current_monthly_spending` (number, required): Current monthly spending for this resource
    - `savings_percentage` (number, required): Savings as percentage of current spending
    - `status` (one of `available`, `pending`, `processing`, `optimized`, `rejected`, `unavailable`, required): Display status
    - `display_status` (one of `available`, `awaiting_approval`, `pending`, `saved`, `rejected`, `unavailable`, default `available`): Status the person reads, served once so the dashboard, the CLI and MCP all print the same word. Derived from status, saving_acceptance and execution_request_status; a request waiting on an approver outranks everything else. Prefer this over status for display

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