Reference

Get provider-specific recommendations breakdown

Returns paginated breakdown of recommendations for a specific provider

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

Authorization

BearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

provider_id*Provider Id

Query Parameters

start?|

Start date filter (ISO 8601 format: YYYY-MM-DD)

end?|

End date filter (ISO 8601 format: YYYY-MM-DD)

page?Page

Page number (1-indexed)

page_size?Page Size

Items per page (max 200)

sort_by?Sort By

Field to sort by (recommendation_id, service, environment, account, tag, monthly_savings, savings_percentage, status, saving_acceptance, implementation_method, implementation_status, created_at, updated_at, risk_assessment). risk_assessment ranks by severity (LOW, MODERATE, HIGH, CRITICAL); recommendations with no assessment sort last in both directions

sort_order?Sort Order

Sort order

service?array<string>|

Filter by service(s) - can be repeated for multiple values

environment?array<string>|

Filter by environment(s) - can be repeated for multiple values

account?array<string>|

Filter by account(s) - can be repeated for multiple values

tag?array<string>|

Filter by tag(s) - can be repeated for multiple values

service_not?array<string>|

Exclude service(s) - can be repeated for multiple values

environment_not?array<string>|

Exclude environment(s) - can be repeated for multiple values

account_not?array<string>|

Exclude account(s) - can be repeated for multiple values

tag_not?array<string>|

Exclude tag(s) - can be repeated for multiple values

display_status?array<string>|

Filter by display status(es): available, pending, awaiting_approval, processing, optimized (alias: saved), in_progress, failed, rejected, unavailable

search?|

Search across recommendation fields (case-insensitive)

savings?array<string>|

Keep only linked savings of these types: 'parent' (dependency parent) or 'group' (aggregator)

savings_not?array<string>|

Exclude linked savings of these types: 'parent' or 'group'

available_formats?array<string>|

Keep only savings whose available formats intersect these values: automated, iac, or manual. Can be repeated for multiple values (OR match).

available_formats_not?array<string>|

Exclude savings whose available formats intersect these values: automated, iac, or manual. Can be repeated for multiple values.

virtual_tag_key?|

Virtual tag key, by id or name (case-insensitive). Needs virtual_tag_value

virtual_tag_value?array<string>|

Keep savings whose resources carry one of these values of virtual_tag_key. unallocated matches resources no config assigned

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/providers/string/recommendations"
{
  "success": true,
  "timestamp": "2019-08-24T14:15:22Z",
  "data": {
    "total_savings": 0,
    "total_savings_count": 0,
    "items": [
      {
        "recommendation_id": "string",
        "service": "string",
        "environment": "string",
        "account": "string",
        "tag": "string",
        "monthly_savings": 0,
        "savings_percentage": 0,
        "status": "pending",
        "display_status": "available",
        "actions": {
          "description": "string",
          "overview": "string",
          "implementation_process": "string",
          "execution_method": "string",
          "key_takeaway": "string",
          "operational_impact": "string"
        },
        "terms_accepted_at": "string",
        "saving_accepted_by": "string",
        "saving_acceptance": "string",
        "implementation_method": "string",
        "implementation_status": "in_progress",
        "implementation_tags": [
          "string"
        ],
        "created_at": "string",
        "updated_at": "string",
        "group_id": "string",
        "group_name": "string",
        "linked_to": {
          "recommendation_ids": [
            "string"
          ],
          "order": "first"
        },
        "execution_request_status": "string",
        "execution_request_by": "string",
        "execution_request_by_name": "string",
        "execution_request_at": "string",
        "virtual_tags": {
          "property1": "string",
          "property2": "string"
        },
        "risk_assessment": {
          "property1": null,
          "property2": null
        }
      }
    ],
    "pagination": {
      "total_items": 0,
      "total_pages": 0,
      "current_page": 0,
      "page_size": 0,
      "has_next": true,
      "has_previous": true
    }
  }
}
{
  "success": false,
  "error": {
    "code": "string",
    "message": "string",
    "details": null
  },
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": {
    "code": "string",
    "message": "string",
    "details": null
  },
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": {
    "code": "string",
    "message": "string",
    "details": null
  },
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": {
    "code": "string",
    "message": "string",
    "details": null
  },
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": {
    "code": "string",
    "message": "string",
    "details": null
  },
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": {
    "code": "string",
    "message": "string",
    "details": null
  },
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": {
    "code": "string",
    "message": "string",
    "details": null
  },
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": {
    "code": "string",
    "message": "string",
    "details": null
  },
  "timestamp": "2019-08-24T14:15:22Z"
}
Ask the FinOps Agent about your cloud spend