Vantage Recommendations API

Operations about Recommendations

Business capability
IT Financial Management BC-600.80

Operations 5

GET /recommendations Get all recommendations #
GET /recommendations/{recommendation_token} Get recommendation by token #
GET /recommendations/{recommendation_token}/resources Get all resources for a recommendation #
GET /recommendations/{recommendation_token}/resources/{resource_token} Get specific resource for a recommendation #
GET /recommendations/by_type/{type}/resources Get all resources for a recommendation type #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/vantage-sh:vantage-sh-recommendations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

vantage-sh-recommendations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Vantage Recommendations API
  description: The Vantage API provides programmatic access to the Vantage cloud cost management and FinOps platform.
  termsOfService: https://www.vantage.sh/terms-of-use
  contact:
    name: Vantage Support
    url: https://www.vantage.sh
    email: support@vantage.sh
  version: 2.0.0
servers:
- url: https://api.vantage.sh/v2
security:
- oauth2:
  - read
tags:
- name: Recommendations
  description: Operations about Recommendations
paths:
  /recommendations:
    get:
      tags:
      - Recommendations
      summary: Get all recommendations
      description: 'Return all Recommendations. Use the `type` query parameter with a fuzzy fragment to filter recommendation type case-insensitively (for example: aws, aws:ec2, aws:ec2:rightsizing).'
      operationId: getRecommendations
      parameters:
      - name: provider_ids
        in: query
        description: Filter by one or more providers. Requires workspace_token.
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
            enum:
            - aws
            - gcp
            - azure
            - kubernetes
            - datadog
      - name: billing_account_ids
        in: query
        description: Filter by billing account identifiers. Requires workspace_token.
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - name: account_ids
        in: query
        description: Filter by account identifiers. Requires workspace_token.
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - name: regions
        in: query
        description: Filter by region slugs (e.g. us-east-1, eastus, asia-east1). Requires workspace_token.
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - name: tag_key
        in: query
        description: Filter by tag key (must be used with tag_value). Requires workspace_token.
        schema:
          type: string
      - name: tag_value
        in: query
        description: Filter by tag value (requires tag_key). Requires workspace_token.
        schema:
          type: string
      - name: start_date
        in: query
        description: Filter recommendations created on/after this YYYY-MM-DD date. Requires workspace_token.
        schema:
          type: string
      - name: end_date
        in: query
        description: Filter recommendations created on/before this YYYY-MM-DD date. Requires workspace_token.
        schema:
          type: string
      - name: status
        in: query
        description: Filter by status.
        schema:
          type: string
          enum:
          - active
          - archived
      - name: min_savings
        in: query
        description: Filter by recommendations whose potential savings are greater than or equal to this amount, in the workspace's currency. Requires workspace_token.
        schema:
          type: number
          format: float
      - name: page
        in: query
        description: The page of results to return.
        schema:
          type: integer
          format: int32
      - name: limit
        in: query
        description: The number of results to return. The maximum is 1000.
        schema:
          type: integer
          format: int32
      - name: workspace_token
        in: query
        description: Filter by workspace.
        schema:
          type: string
      - name: provider_account_id
        in: query
        description: Filter by provider account id (AWS account, Azure subscription id, etc).
        schema:
          type: string
      - name: category
        in: query
        description: Filter by exact recommendation category. Ignored when type is provided.
        schema:
          type: string
      - name: type
        in: query
        description: 'Fuzzy filter by recommendation type using a case-insensitive literal substring. Examples: aws, aws:ec2, aws:ec2:rightsizing.'
        schema:
          type: string
      - name: provider
        in: query
        description: Filter by provider.
        schema:
          type: string
          enum:
          - aws
          - gcp
          - azure
          - kubernetes
          - datadog
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Recommendations'
              example:
                links:
                  self: https://api.vantage.sh/v2/recommendations
                  first: https://api.vantage.sh/v2/recommendations?page=1
                  next: null
                  last: https://api.vantage.sh/v2/recommendations?page=1
                  prev: null
                recommendations:
                - token: rcmmndtn_9bb8fa992d5b876b
                  type: null
                  category: ip_unattached
                  workspace_token: wrkspc_e0e58b3c1ddef29c
                  provider: aws
                  provider_account_id: '123456789012'
                  description: IP address is not attached to an instance.
                  documentation_url: https://handbook.vantage.sh/aws/services/ec2-other-pricing/#stranded-resources
                  potential_savings: '100.0'
                  service: AWS IP
                  created_at: '2026-01-28T16:53:32Z'
                  resources_affected_count: 0
                  currency_code: USD
                  currency_symbol: $
      security:
      - oauth2:
        - read
  /recommendations/{recommendation_token}:
    get:
      tags:
      - Recommendations
      summary: Get recommendation by token
      description: Return a Recommendation.
      operationId: getRecommendation
      parameters:
      - name: recommendation_token
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Recommendation'
              example:
                token: rcmmndtn_0eea161ff1a4d183
                type: null
                category: ip_unattached
                workspace_token: wrkspc_634a8ca67ed39555
                provider: aws
                provider_account_id: '123456789012'
                description: IP address is not attached to an instance.
                documentation_url: https://handbook.vantage.sh/aws/services/ec2-other-pricing/#stranded-resources
                potential_savings: '100.0'
                service: AWS IP
                created_at: '2026-01-28T16:53:23Z'
                resources_affected_count: 0
                currency_code: USD
                currency_symbol: $
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
      - oauth2:
        - read
  /recommendations/{recommendation_token}/resources:
    get:
      tags:
      - Recommendations
      summary: Get all resources for a recommendation
      description: Return all Active Resources, including Recommendation Actions, referenced in this Recommendation.
      operationId: getRecommendationResources
      parameters:
      - name: recommendation_token
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: The page of results to return.
        schema:
          type: integer
          format: int32
      - name: limit
        in: query
        description: The number of results to return. Defaults to 25. The maximum is 500.
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecommendationProviderResources'
              example:
                links:
                  self: https://api.vantage.sh/v2/recommendations/rcmmndtn_073dad68f8be41a2/resources
                  first: https://api.vantage.sh/v2/recommendations/rcmmndtn_073dad68f8be41a2/resources?page=1
                  next: null
                  last: https://api.vantage.sh/v2/recommendations/rcmmndtn_073dad68f8be41a2/resources?page=1
                  prev: null
                resources:
                - token: prvdr_rsrc_8ec00e4b4c410538
                  resource_id: i-12345
                  recommendation_actions:
                  - action: modify
                    description: 'Migrate to c5a.xlarge. Reasons: CPU over-provisioned, EBS IOPS over-provisioned, EBS throughput over-provisioned, Network bandwidth over-provisioned, and Network PPS over-provisioned.'
                    potential_savings: '100.0'
                    instance_type: c5a.xlarge
                    remediation_cli_command: 'aws ec2 modify-instance-attribute --instance-id i-12345 --instance-type ''{"Value": "c5a.xlarge"}'''
      security:
      - oauth2:
        - read
  /recommendations/{recommendation_token}/resources/{resource_token}:
    get:
      tags:
      - Recommendations
      summary: Get specific resource for a recommendation
      description: Return an Active Resource, including Recommendation Actions, referenced in this Recommendation.
      operationId: getRecommendationResource
      parameters:
      - name: recommendation_token
        in: path
        required: true
        schema:
          type: string
      - name: resource_token
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecommendationProviderResource'
              example:
                token: prvdr_rsrc_3065ac9b0999c363
                resource_id: i-12345
                recommendation_actions:
                - action: modify
                  description: 'Migrate to c5a.xlarge. Reasons: CPU over-provisioned, EBS IOPS over-provisioned, EBS throughput over-provisioned, Network bandwidth over-provisioned, and Network PPS over-provisioned.'
                  potential_savings: '100.0'
                  instance_type: c5a.xlarge
                  remediation_cli_command: 'aws ec2 modify-instance-attribute --instance-id i-12345 --instance-type ''{"Value": "c5a.xlarge"}'''
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
      - oauth2:
        - read
  /recommendations/by_type/{type}/resources:
    get:
      tags:
      - Recommendations
      summary: Get all resources for a recommendation type
      description: Return all Active Resources associated with recommendations of the specified type.
      operationId: getRecommendationTypeResources
      parameters:
      - name: type
        in: path
        required: true
        schema:
          type: string
      - name: provider_ids
        in: query
        description: Filter by one or more providers. Requires workspace_token.
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
            enum:
            - aws
            - gcp
            - azure
            - kubernetes
            - datadog
      - name: billing_account_ids
        in: query
        description: Filter by billing account identifiers. Requires workspace_token.
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - name: account_ids
        in: query
        description: Filter by account identifiers. Requires workspace_token.
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - name: regions
        in: query
        description: Filter by region slugs (e.g. us-east-1, eastus, asia-east1). Requires workspace_token.
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - name: tag_key
        in: query
        description: Filter by tag key (must be used with tag_value). Requires workspace_token.
        schema:
          type: string
      - name: tag_value
        in: query
        description: Filter by tag value (requires tag_key). Requires workspace_token.
        schema:
          type: string
      - name: start_date
        in: query
        description: Filter recommendations created on/after this YYYY-MM-DD date. Requires workspace_token.
        schema:
          type: string
      - name: end_date
        in: query
        description: Filter recommendations created on/before this YYYY-MM-DD date. Requires workspace_token.
        schema:
          type: string
      - name: status
        in: query
        description: Filter by status.
        schema:
          type: string
          enum:
          - active
          - archived
      - name: min_savings
        in: query
        description: Filter by recommendations whose potential savings are greater than or equal to this amount, in the workspace's currency. Requires workspace_token.
        schema:
          type: number
          format: float
      - name: page
        in: query
        description: The page of results to return.
        schema:
          type: integer
          format: int32
      - name: limit
        in: query
        description: The number of results to return. The maximum is 1000.
        schema:
          type: integer
          format: int32
      - name: workspace_token
        in: query
        description: The workspace token to filter recommendations by. Required.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecommendationProviderResources'
              example:
                resources:
                - token: pvdr_rsrc_abc123
                  resource_id: i-1234567890abcdef0
                  recommendation_actions:
                  - action: modify
                    instance_type: c5a.xlarge
                    description: Migrate to c5a.xlarge for cost savings.
                    potential_savings: '100.00'
                links:
                  first: /v2/recommendations/by_type/aws:ec2:co-rightsizing/resources?workspace_token=wrkspc_abc123&page=1
                  last: /v2/recommendations/by_type/aws:ec2:co-rightsizing/resources?workspace_token=wrkspc_abc123&page=1
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
      - oauth2:
        - read
components:
  schemas:
    RecommendationAction:
      required:
      - action
      - description
      - potential_savings
      type: object
      properties:
        action:
          type: string
        description:
          type: string
        potential_savings:
          type: string
          description: Potential savings in dollars
          example: '100.00'
        instance_type:
          type:
          - string
          - 'null'
        containers:
          type:
          - string
          - 'null'
        remediation_cli_command:
          type:
          - string
          - 'null'
          description: CLI command to remediate this recommendation
          example: aws ec2 stop-instances --instance-ids i-1234567890abcdef0
    Links:
      type: object
      properties:
        self:
          type:
          - string
          - 'null'
          description: The URL of the current page of results.
        first:
          type:
          - string
          - 'null'
          description: The URL of the first page of results.
        next:
          type:
          - string
          - 'null'
          description: The URL of the next page of results, if one exists.
        last:
          type:
          - string
          - 'null'
          description: The URL of the last page of results, if one exists.
        prev:
          type:
          - string
          - 'null'
          description: The URL of the previous page of results, if one exists.
    Errors:
      required:
      - errors
      type: object
      properties:
        links:
          $ref: '#/components/schemas/Links'
        errors:
          type: array
          items:
            type: string
      description: Errors model
    RecommendationProviderResource:
      required:
      - account_id
      - billing_account_id
      - created_at
      - label
      - metadata
      - provider
      - region
      - resource_id
      - tags
      - token
      - type
      - uuid
      type: object
      properties:
        token:
          type: string
        uuid:
          type: string
          description: The unique identifier for the resource.
          example: i-0a1b2c3d4e5f6g7h8
        type:
          type: string
          description: The kind of resource.
          example: aws_instance
        label:
          type:
          - string
          - 'null'
        metadata:
          type:
          - object
          - 'null'
          properties: {}
          description: Type-specific attributes of the resource.
        account_id:
          type:
          - string
          - 'null'
          description: The provider account where the resource is located.
        billing_account_id:
          type:
          - string
          - 'null'
          description: The provider billing account this resource is charged to.
        provider:
          type: string
          description: The provider of the resource.
          example: aws
        region:
          type:
          - string
          - 'null'
          description: The region where the resource is located. Region values are specific to each provider.
          example: us-west-2
        costs:
          type: array
          description: The cost of the resource broken down by category.
          items:
            $ref: '#/components/schemas/ResourceCost'
        created_at:
          type: string
          description: The date and time when Vantage first observed the resource.
        tags:
          type: object
          properties: {}
          description: Key-value pairs of tags associated with the resource.
        resource_id:
          type: string
          description: The unique identifier of the Active Resource.
          example: i-0a1b2c3d4e5f6g7h8
        recommendation_actions:
          type: array
          description: The actions to take to implement the Recommendation.
          items:
            $ref: '#/components/schemas/RecommendationAction'
      description: RecommendationProviderResource model
    RecommendationProviderResources:
      required:
      - resources
      type: object
      properties:
        links:
          $ref: '#/components/schemas/Links'
        resources:
          type: array
          items:
            $ref: '#/components/schemas/RecommendationProviderResource'
      description: RecommendationProviderResources model
    Recommendation:
      required:
      - category
      - created_at
      - description
      - documentation_url
      - potential_savings
      - provider
      - provider_account_id
      - resources_affected_count
      - service
      - token
      - type
      - workspace_token
      type: object
      properties:
        token:
          type: string
        type:
          type: string
          description: The type of the Recommendation. This is analogous to category, but with a uniform format.
          example: aws:ec2:co-rightsizing
        category:
          type: string
          description: The category of the Recommendation.
          example: ec2_compute_optimizer_recommender
        workspace_token:
          type: string
          description: The token for the Workspace the Recommendation is a part of.
        provider:
          type: string
          description: The provider the Recommendation is for.
        provider_account_id:
          type:
          - string
          - 'null'
          description: The account ID of the provider. For Azure, this is the subscription ID.
        description:
          type: string
        documentation_url:
          type:
          - string
          - 'null'
          description: A URL to related documentation if available.
          example: https://handbook.vantage.sh/aws/services/s3-pricing/#intelligent-tiering
        potential_savings:
          type:
          - string
          - 'null'
          description: The monthly potential savings of the Recommendation, converted to the organization's selected currency.
          example: '100.00'
        service:
          type: string
          description: The service the Recommendation is for.
          example: Amazon EC2
        created_at:
          type: string
          description: The date and time, in UTC, the Recommendation was created. ISO 8601 Formatted.
        resources_affected_count:
          type: integer
          description: The number of ProviderResources related to the Recommendation. Use the `recommendations/:token/resources` endpoint to get the full list of resources.
          format: int32
        currency_code:
          type:
          - string
          - 'null'
          description: The currency code used by the Workspace to which this Recommendation belongs.
          example: EUR
        currency_symbol:
          type:
          - string
          - 'null'
          description: The currency symbol used by the Workspace to which this Recommendation belongs.
          example: EUR
      description: Recommendation model
    ResourceCost:
      required:
      - amount
      - category
      type: object
      properties:
        category:
          type: string
          description: The category of the cost.
        amount:
          type: number
          description: The cost amount.
          format: float
    Recommendations:
      required:
      - recommendations
      type: object
      properties:
        links:
          $ref: '#/components/schemas/Links'
        recommendations:
          type: array
          items:
            $ref: '#/components/schemas/Recommendation'
      description: Recommendations model
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://console.vantage.sh/account/profile
          scopes:
            read: Grants read access
            write: Grants write access
x-original-swagger-version: '2.0'