---
title: "List recommendations"
method: GET
path: "/v1/recommendations"
tags: ["Recommendations"]
---

# List recommendations

`GET /v1/recommendations`

## Request

- Base URL: `https://api.nops.io`
- URL: `https://api.nops.io/v1/recommendations`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/nops/apis/nops-public-api/docs/v1/recommendations/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns cost optimization recommendations for your organization, highest estimated monthly savings first. Repeatable filters match any of their values. `pagination.total` is the number of matching recommendations.

## Query parameters

- `limit` integer: Maximum items to return (1–200, default 50).
- `cursor` string: Opaque cursor from a previous response's `pagination.next_cursor`.
- `q` string: Case-insensitive search across resource, recommendation name, account name, region, category, service, recommended action, action type and model provider.
- `recommendationId` string[]: Recommendation ID (repeatable, up to 200).
- `resourceId` string[]: Resource ID, exact match (repeatable, up to 200).
- `recommendationName` string[]: Recommendation type, case-insensitive (repeatable).
- `category` string[]: Category, case-insensitive (repeatable).
- `accountId` string[]: Cloud account ID (repeatable).
- `region` string[]: Region, case-insensitive (repeatable).
- `service` string[]: Service, case-insensitive (repeatable).
- `status` 'open' | 'dismissed' | 'all': Open (not dismissed), dismissed, or all. Defaults to `all`.
- `startDate` string: First detected on or after this day (`yyyy-MM-dd`).
- `endDate` string: First detected on or before this day (`yyyy-MM-dd`).

## Response `200`

List recommendations

- object
  - `data` object[], required
  - `pagination` Pagination, required
    - `limit` integer, required: Page size used for this response.
    - `has_more` boolean, required: True when more results are available via next_cursor.
    - `next_cursor` string, nullable, required: Opaque cursor for the next page, or null when there are no more results.
    - `total` integer: Total matching items across all pages. Omitted on endpoints that paginate without a total count.

## Other responses

- `401`: Unauthorized — invalid or missing API key
- `403`: Forbidden — insufficient permissions or entitlement

---

[API](https://skmtc.dev/nops/apis/nops-public-api.md) - [All operations](https://skmtc.dev/nops/apis/nops-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nops/apis/nops-public-api/revisions/ac549fa495dd?raw)
