# Resource Reports Source: https://docs.vantage.sh/active_resources Monitor active cloud resources and their costs with Vantage Resource Reports across AWS, Azure, GCP, and other providers. For supported providers, Vantage looks for active resources within your account. An active resource is a resource, such as a virtual machine, that is currently generating costs within a cloud account. This is in contrast to resources that are included in billing but may no longer be live. Examples of active resources include items like Amazon S3 buckets, Azure Load Balancers, Snowflake queries, Confluent clusters, etc. You can create *resource reports* to see filtered views of your active resources. These reports provide visibility into all the currently operational resources within your account and the associated costs incurred by each resource. Reports include filterable dimensions, such as account, tag, region, service, and service-specific metadata. Use Resource Reports when you need a current inventory with resource metadata. To see how the number of resources or other cost-bearing groupings changes over time, use [Count reporting in Cost Reports](/cost_reports#count-reporting). Active resource views are currently supported for [AWS](/connecting_aws), [Azure](/connecting_azure), [GCP](/connecting_gcp), [Kubernetes](/connecting_kubernetes), [Snowflake](/connecting_snowflake), [MongoDB](/connecting_mongodb-atlas), [Confluent](/connecting_confluent), [PlanetScale](/connecting_planetscale), [Linode](/connecting_linode), [ClickHouse Cloud](/connecting_clickhouse), [Datadog](/connecting_datadog), [Anthropic](/connecting_anthropic), and [Modal](/connecting_modal). ## AWS Active Resources Vantage shows only active resources that have an associated IAM role. One common source of confusion is when an organization has only a root/management account with an IAM role. To view active resources from each member account, create an IAM role for each member account. As you create each additional IAM role, the member account's resources are automatically added to the active resource inventory. See the [AWS integration](/connecting_aws) documentation for details. Not every AWS service is supported for resource-level costs; however, most services that incur costs are supported. To see the full list of services for which there are resource-level costs, see the documentation on [supported AWS services](/aws_supported_services). ## Azure Active Resources To see the full list of supported Azure services, see the [Azure documentation](/azure_supported_services). Active Resources are not available for [Azure CSP integrations](/connecting_azure_csp). Azure does not expose any list or describe resource APIs through Partner Center to provide resource metadata. ## GCP Active Resources To see the full list of supported GCP services, see the [GCP documentation](/gcp_supported_services). ## Kubernetes Active Resources A Kubernetes *managed workload* is a higher-level abstraction than a pod that automatically manages pod objects on your behalf. Vantage currently supports Deployments, StatefulSets, DaemonSets, Jobs, CronJobs, and ArgoCD Rollouts and syncs these managed workloads as active resources in your account. When available, pods are grouped by controller, and you can view and filter on the following metadata: * Controller name * Controller type * Cluster * Namespace * Controller labels ## Other Available Active Resources The following active resources are available for the additional providers listed below. | Provider | Available Active Resources | | - | - | | [Snowflake](/connecting_snowflake) | Snowflake queries | | [MongoDB Atlas](/connecting_mongodb-atlas) | MongoDB Atlas clusters | | [Confluent](/connecting_confluent) | Confluent Kafka clusters | | [PlanetScale](/connecting_planetscale) | PlanetScale databases | | [Linode](/connecting_linode) | Linode Instances, Kubernetes Clusters, Volumes, Object Storage, Images, and NodeBalancers | | [ClickHouse Cloud](/connecting_clickhouse) | ClickHouse Cloud services | | [Anthropic](/connecting_anthropic) | Anthropic API keys, Users, and Models | | [Datadog](/connecting_datadog) | Custom metrics | | [Modal](/connecting_modal) | Modal Apps | Anthropic Users and Models active resources are synced only from the [Claude API integration](/connecting_anthropic#connect-the-claude-api) (Admin API key). If you connect only Claude.ai (Claude Enterprise Analytics API), Claude.ai cost and usage data is still available, but no active resources are synced. See the [Anthropic Active Resources](/connecting_anthropic#active-resources) documentation for details. ## View Active Resources Active resources are synced for each [workspace](/workspaces) at least once every 24 hours. Vantage syncs all tags specific to a service. From the top navigation, click **Active Resources**. The **Services** screen is displayed, which contains each resource by name (e.g., CloudFront Distributions, Azure Databricks Workspaces, etc.), the total number of active resources, and accrued costs for each resource. The **Accrued Cost** column shows the past 30 days of costs. Select a resource from the parent list to see a list of all resources within that resource group. In the below example, the NAT Gateways resource is selected from the list. Select an individual resource from the filtered list. ![A sample resource report with a box around the NAT Gateways resource in the list](https://assets.vantage.sh/docs/resource-report-child.png) The resource is displayed along with a detailed view of its costs over time. In the below image, the selected AWS NAT Gateway resource is displayed along with associated metadata. ![Resource Report Drill Down](https://assets.vantage.sh/docs/resource-1.png) When available, a **View in Cost Report** button appears at the top of the active resource detail page, linking directly to the default Cost Report filtered by the resource's provider, service, and resource ID. An **Open in \[Provider]** button also appears, linking directly to the resource in the provider's console (e.g., AWS Console, Azure Portal, or GCP Console). The **Open in \[Provider]** button is available for most AWS, Azure, and GCP resources, as well as PlanetScale databases. Availability depends on the resource type and whether the necessary metadata (such as region or resource identifier) is present. Any tags assigned to the resource, both provider and Virtual Tags, are also displayed in the **Assigned Tags** section at the bottom. Note that Virtual Tags are currently supported for only AWS and Azure resources in this view. ![Assigned Tags on Resource Reports](https://assets.vantage.sh/docs/assigned-tags.png) ## Create a Resource Report Create a resource report to filter by specific resources or groups of resources. Create detailed reports, including reports that show: * Resources across AWS services that match a certain AWS tag * Resources within a specific AWS member account * All Amazon EC2 instances that are a certain type, like `m5.large` * All Snowflake queries belonging to a specific label To create a resource report: From the top navigation, click **Active Resources**. From the left navigation, click **Resource Reports**. You can create new reports and rename your existing reports from this page. The **All Active Resources Report** is provided by default. From the top right of the page, click **New Resource Report**. ![A full list of active resources for an account. The resource's label, type, costs, provider, region, and account are listed.](https://assets.vantage.sh/docs/resource-report-1.png) From the top left of the resource list, click **Filters**. The **Filters** panel is displayed. * Select a **Provider** (e.g., AWS). * Click **New Rule**, then select a filter category, like **Region**. (See the section below for details on available filter options.) * Depending on the filter criteria, select an operator (e.g., is, is not, contains). * Select a value (e.g., *Region* **is** *eu-west-1*). * Click **New Rule** to add additional criteria to the same filter. Results are displayed where both rule 1 *AND* rule 2 are true. * Click + Add Filter to add a new filter set. Results are displayed where *either* filter 1 *OR* filter 2 are true. * At the top of the **Filters** panel, click **Apply Changes**. ![A resource report filter with sample filter criteria for Snowflake and AWS](https://assets.vantage.sh/docs/resource-report-filter.png) At the top of the report, click **Save** or **Save as New**. The report name is displayed in the breadcrumbs above the report. To rename the report, click the pencil icon next to the default report name. Then, update the name and click **Save**. If you have a Jira integration, you can create a corresponding issue for a Resource Report in your Jira instance. See the [Jira](/jira) documentation for details. ## Customize a Resource Report You can customize which columns are displayed in your Resource Reports, such as resource-specific metadata fields and tag values, as well as arrange the columns in any order. Both provider tag keys and [Virtual Tag](/tagging) keys can be added as their own columns so you can analyze tag values across resources at scale. Resource-specific metadata fields are available only when a Resource Report is filtered to a single service. Reports that span multiple services include only the default columns (i.e., **Label**, **Accrued Cost**, **Resource**, **Type**, **Region**, and **Account**) and any tag key columns you add. The **Accrued Cost** column shows the past 30 days of costs. ### Select Columns To select which columns are displayed on your Resource Report: From the top menu, select **Active Resources** > **Services**, then select a service. (Alternatively, filter a Resource Report to a single service, such as EC2.) From the top-right corner of the report table, click **Manage Columns**. Select or deselect any of the listed columns to adjust the display of your report. ![GIF of selecting custom columns](https://assets.vantage.sh/docs/select-columns.gif) ### Reorder Columns To reorder the columns of your Resource Report: Click and drag a column header to the position between two existing columns. Arrows are displayed to indicate where the column will be inserted. The column order is updated in both the Resource Report and the **Manage Columns** dropdown menu. ![GIF of sorting columns in a resource report](https://assets.vantage.sh/docs/reorder-columns.gif) ### Add Tag Columns You can add specific tag keys as their own columns in a Resource Report so each resource displays the tag value inline, rather than as part of a single grouped tags field. This makes it easier to analyze resources by tag at scale—for example, identifying owners of unattached EBS volumes from [Cost Recommendations](/cost_recommendations), auditing team attribution for the highest-cost RDS instances, or finding resources running in non-prod environments. Both provider tag keys and [Virtual Tag](/tagging) keys can be added as columns. To add tag columns: From the top-right corner of the Resource Report table, click **Manage Columns**. Open the **Tags** section to view available tag keys for the resources in your report. Select one or more tag keys. Each selection is added as its own column to the report. The column header uses the tag key, and each row displays the corresponding tag value for that resource. To save your selections so they persist across sessions, click **Save** or **Save as New** at the top of the report. * If a resource does not have a value for the selected tag key, the column displays an empty value for that row, making it easy to identify untagged or inconsistently tagged resources. * There is no limit to the number of tag columns you can add to a Resource Report. * Tag columns are included in [CSV exports](#export-resource-report) and in API responses for the report. ### Sort Columns To sort a column in a Resource Report, click the arrow next to a column name in the column header. The active sort column icon is highlighted in green, with an arrow indicating the sort direction. Sorting applies across the entire result set, not just the resources visible on the current page. Sorting on the **Accrued Cost** column requires the report to be saved first. ![GIF of selecting custom columns](https://assets.vantage.sh/docs/sort-columns.gif) The column order is saved per report. If you save a report after you customize the columns, the configuration—including visibility, order, and sort—will persist. ### Resource Report Filters The following filters are available for resource reports. | Filter | Provider | Examples | | - | - | - | | Account | AWS, GCP | AWS or GCP account name (e.g., production) | | Billing Account | AWS | AWS billing account name | | Label | All providers | The resource's label (i.e., name) | | Metadata | All providers | Specific to each resource type (e.g., AWS S3 buckets object count; Azure Load Balancers provisioning state; GCP Dataflow Jobs create time; Confluent Kafka cluster type; MongoDB Atlas cluster deployed region; PlanetScale database branches count; Snowflake query invocations; Kubernetes workload namespace) | | Not Tagged | All providers | Filter to see resources not tagged with a specific tag key or any tag key | | Region | AWS, Azure, GCP, Linode | us-east-1, ap-northeast-2, eastus, us-east4, us-lax | | Resource group | Azure | The Azure resource group name | | Resource type | All providers | EC2 instances, S3 buckets, Confluent Kafka clusters, Snowflake queries, etc. | | Subscription | Azure | The Azure subscription name | | Tag | All providers | Filter to see resource by a specific tag key or tag key/value; Virtual Tags for only AWS and Azure at this time | | UUID (ARN for AWS) | All providers | The unique provider ID (i.e., ARN for AWS) for the resource | ## Export Resource Report To export a resource report, click the export button (looks like an arrow pointing down) on the top right of a resource report (does not need to be saved). The resources in the report are exported in a ZIP file with a CSV file per active resource type. Each row includes an active resource along with its cost and metadata. Any [tag columns](#add-tag-columns) added to the report are also included as dedicated columns in the CSV export. Select one or more Vantage user emails to send the report. Then, click **Export**. It may take a few minutes for the email to be sent. ## Additional Active Resource Views The following tabs are available for specific resources on the **Active Resources** screen. These tabs provide additional resource-specific information. Some of these tabs may also display [Cost Recommendations](/cost_recommendations) relevant to the specific resource you are viewing. In these cases, a recommendation card is displayed at the top of the tab containing a description of the recommendation and remediation steps. The remediation workflow can include CLI commands, links to provider console actions, a list of manual steps, and references to Vantage blogs. When displayed within a specific resource tab, like Rightsizing or Extended Support, the CLI command will automatically include the exact resource ARN of the resource you are viewing. ### Billing Code Descriptions AWS practitioners who are having trouble understanding AWS billing codes can find descriptions of each billing code, other variations of that billing code, and other services that use the same billing code for specific services in Resource Reports. When you view a Resource Report for a specific service (e.g., EC2 instances), a link to [cur.vantage.sh](https://cur.vantage.sh/) is provided that takes you to a page with details for that billing line item. [cur.vantage.sh](https://cur.vantage.sh/) is a free utility that gives cloud practitioners simple definitions of billing codes for every AWS service. The site has a distinct page for each AWS service (e.g., S3 or EC2) that clusters together similar billing codes for that service, as there may be separate or distinct billing codes for each individual region. ![A Resource Report grouped to show a subcategory link with the corresponding cur.vantage.sh page](https://assets.vantage.sh/docs/cur-active-resource.png) ### Resource Relationships You can view relationships between specific resources on the **Relationships** tab. ![The Relationships tab with an example EBS volume displayed](https://assets.vantage.sh/docs/resource-report-relationships.png) Below are some examples of relationships you may see within your active resources. | Resource | Relationship | | - | - | | Amazon EBS Volumes | See associated EC2 instances, with accrued cost, account, instance ID, region, instance type, launch time, and lifecycle | | Amazon EC2 Instances | See associated EBS volumes and IP addresses, with accrued cost, account, volume type, size, IOPs, and state | | Amazon IP Addresses | See associated EC2 instances, with accrued cost, account, instance ID, region, instance type, launch time, and lifecycle | | Amazon RDS Snapshots | See associated RDS instances, with accrued cost, account, database identifier, engine, engine version, instance type, status, and allocated storage | | Azure Disks | See associated Azure Virtual Machines with accrued cost, account, resource ID, admin username, virtual machine size, boot diagnostics enabled, secure boot enabled, date/time created | | Azure Virtual Machines | See associated disk resources with accrued cost, account, resource ID, disk size, OS type, disk IOPs read/write, disk state, encryption type, network access policy, provisioning state, public network access, zones, and date/time created | | GCP Compute Disks | See associated Compute Instances, with accrued cost, account, instance name, machine type, creation timestamp, CPU platform, and resource URL | | GCP Compute Instances | See associated Compute Disks, with accrued cost, account, disk name, disk type, size, architecture, creation timestamp, and resource URL | The **Relationships** tab only appears when related resources are found. If a resource has no associated relationships, the tab will not be displayed. ### S3 Storage Summary For S3 buckets, a **Storage Summary** tab is available that provides a list of storage classes, their corresponding storage sizes, and approximate monthly costs for objects in the S3 bucket. ![An example of the S3 Storage Summary screen with Intelligent Tiering suggestions](https://assets.vantage.sh/docs/resource-report-s3-buckets.png) When available, this screen also includes **S3 Intelligent Tiering Considerations** with a table of possible maximum savings you can potentially yield as a result of implementing S3 Intelligent Tiering across all objects in the bucket with Standard Storage. ### S3 Request Metrics and Egress To view S3 request metrics and egress data, you must configure request metrics on the S3 bucket. It takes roughly 15 minutes for AWS to begin delivering these metrics after they are enabled. See the [AWS documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metrics-configurations.html) for more information about ingress and egress request metrics. The required `s3:GetMetricsConfiguration` permission is included automatically via the `VantageS3RequestMetrics` policy in the default CloudFormation template and StackSet. AWS charges you on a per-request basis for S3 with potentially different rates for each request type. The **Request Metrics & Egress** tab provides a summary of request metrics for the bucket and each metric's cost for the trailing 30 days. ![An example of the S3 Storage Summary screen with Intelligent Tiering suggestions](https://assets.vantage.sh/docs/resource-report-egress.png) A graph of each request type (`GET`, `PUT`, `HEAD`, `POST`, `SELECT`, and `LIST`) is provided, which visualizes the total number of requests. The total cost for each request type is also provided. ### EC2 Rightsizing Recommendations For EC2 instances where Vantage identifies rightsizing opportunities, the **Rightsizing** tab is displayed with recommendations. See the [Cost Recommendations](/cost_recommendations) documentation for details. ### CloudWatch Metrics For certain resources, you can view high-fidelity charts for CloudWatch metrics. On resources that support CloudWatch metrics, the **CloudWatch Metrics** tab is displayed. These metrics are useful for rightsizing servers and databases based on utilization. ![Resource Report Drill Down](https://assets.vantage.sh/docs/cloudwatch-metrics.png) When you connect an AWS account to Vantage, CloudWatch metrics are configured automatically, per resource. The following table lists the supported services and the specific metrics displayed for each. | Service | Metrics | | - | - | | EC2 | CPU Utilization, Network In, Network Out, Memory Utilization\* | | EBS | Read Bytes, Write Bytes, Queue Length | | RDS | CPU Utilization, Database Connections, Free Storage Space, Write IOPS, Read IOPS | | S3 | Bucket Size Bytes, Number of Objects | | ECS/Fargate | CPU Utilization, Memory Utilization | *\*EC2 Memory Utilization requires the [CloudWatch Agent](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) to be installed on the instance. If CloudWatch Agent data is not available, a prompt is displayed with a link to the AWS installation documentation.* ### VPC Flow Logs For active resources that generate network traffic costs, such as NAT Gateways and EC2 instances, the **VPC Flow Logs** tab is displayed. Select this tab to view peer resources and the associated traffic category (e.g., public). A Sankey diagram of each associated network flow is provided. See the [Network Flow Reports](/network_flow_reports) documentation for details on network flow reporting. ![Network Flow Report provider resource view](https://assets.vantage.sh/docs/nfr-resource.png) ### Extended Support Recommendations Vantage surfaces metadata and recommendations for AWS services that enter Extended Support to help teams understand upcoming end-of-support milestones and plan upgrades. This information is currently available for EKS, ElastiCache, OpenSearch/Elasticsearch, and RDS. When you view EKS, ElastiCache, OpenSearch, or RDS Resource Reports, additional metadata fields for Support Type (Standard or Extended), Standard Support End Date, and Extended Support End Date are available. From any Resource Report, add a new filter: * Standard Support End Date: `from AWS where Metadata Standard Support End Date is ` * Support Status: `from AWS where Metadata Support Status is ` ![Extended support report](https://assets.vantage.sh/docs/rds-filter.png) A report is displayed and shows resources that match the filter. #### EKS Extended Support For more information on [Amazon EKS Extended Support](https://www.vantage.sh/blog/amazon-eks-extended-support-cost-kubernetes), see the Vantage blog. Select a cluster from the Resource Report list, then select the **Extended Support** tab. On this tab, Vantage provides a list of versions with their standard and extended support dates, displayed in descending order (newest first), as well as the current version of the cluster. Recommendations for the version to upgrade to are also provided. Vantage only recommends versions that have at least 90 days of standard support remaining, ensuring you won't be recommended a version that's about to enter extended support. ![EKS extended support report](https://assets.vantage.sh/blog/eks-extended-support/eks-extended-support-calendar.png) Click **Upgrade** to go to the AWS Management Console and perform the upgrade. #### ElastiCache Extended Support For more information on [Amazon ElastiCache Extended Support](https://www.vantage.sh/blog/opensearch-elasticsearch-elasticache-extended-support), see the Vantage blog. Vantage automatically identifies Amazon ElastiCache for Redis clusters that are in, or approaching, Extended Support. This includes Redis OSS versions with published AWS Extended Support timelines, beginning with Redis OSS v4 and v5. For each ElastiCache for Redis cluster monitored in Vantage, the following process is used to estimate projected Extended Support costs: Look up the End of Standard Support date for the cluster's Redis engine version. Check if the cluster is within three months of this date. * If yes, proceed with cost estimation. Retrieve the relevant Extended Support premium for the supported Redis OSS version. Calculate the projected monthly cost using the Extended Support pricing model published by AWS. Select a cluster from the Resource Report list, then select the **Extended Support** tab. On this tab, Vantage provides upgrade recommendations, including the version required to exit Extended Support. The primary recommendation is to move to ElastiCache for Valkey or to a newer Redis OSS version supported by AWS. Vantage determines the next version number that does not have an Extended Support date within the next three months; however, it is recommended you upgrade to the highest allowable version based on your application's dependencies. Click **Upgrade** to go to the AWS Management Console and perform the upgrade. #### OpenSearch/Elasticsearch Extended Support For more information on [Amazon OpenSearch Extended Support](https://www.vantage.sh/blog/opensearch-elasticsearch-elasticache-extended-support), see the Vantage blog. Vantage automatically identifies Amazon OpenSearch Service domains that are in, or approaching, Extended Support. This includes both legacy Elasticsearch versions and OpenSearch versions with published Standard Support and Extended Support timelines. For each OpenSearch Service domain monitored in Vantage, the following process is used to estimate projected Extended Support costs: Look up the End of Standard Support date for the domain's engine version. Check if the domain is within three months of this date. * If yes, proceed with cost estimation. Retrieve the regional Extended Support fee (per normalized instance hour) for the domain. Calculate projected monthly cost using: $$ \text{Monthly Cost} = \text{Normalized Instance Hours (data + master nodes)} \times \text{Hourly Rate} \times 730 $$ Where **730** represents the assumed average runtime hours in a month. Select a domain from the Resource Report list, then select the **Extended Support** tab. On this tab, Vantage provides upgrade recommendations, including the version required to exit Extended Support. Vantage determines the next version that does not have an Extended Support date within the next three months; however, it is recommended you upgrade to the highest allowable version based on your application's dependencies. Click **Upgrade** to go to the AWS Management Console and perform the upgrade. #### RDS Extended Support For more information on [Amazon RDS Extended Support](https://www.vantage.sh/blog/amazon-rds-extended-support), see the Vantage blog. Vantage automatically identifies Amazon RDS instances that are in, or approaching, Extended Support for MySQL and PostgreSQL. For each Amazon RDS MySQL or PostgreSQL instance monitored in Vantage, the following process is used to estimate projected Extended Support costs: Look up the End of Standard Support date for the instance. Check if the instance is within three months of this date. * If yes, proceed with cost estimation. * If auto-upgrade is enabled for [MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.MySQL.Minor.html) or [PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.PostgreSQL.Minor.html), the instance is excluded. Retrieve the number of vCPUs for the instance. Retrieve the AWS hourly Extended Support rate (per vCPU) for the region. Calculate the projected monthly cost using: $$ \text{Monthly Cost} = \text{vCPUs} \times \text{Hourly Rate (per vCPU)} \times 730 $$ Where **730** represents the assumed runtime hours in a 30-day month. Select an instance from the Resource Report list, then select the **Extended Support** tab. On this tab, Vantage provides upgrade recommendations, including the version required to exit Extended Support. Vantage determines the next minor version number that does not have an Extended Support date within the next three months; however, it is recommended you upgrade to the highest allowable version based on your application's dependencies. Click **Upgrade** to go to the AWS Management Console and perform the upgrade. ![RDS extended support report](https://assets.vantage.sh/blog/rds-extended-support/rds-extended-support-calendar.png) ### GCP Compute Rightsizing Recommendations For GCP Compute resources where Vantage identifies rightsizing opportunities, the **Rightsizing** tab is displayed with recommendations. See the [Cost Recommendations](/cost_recommendations) documentation for details. ### Kubernetes Rightsizing Recommendations For Kubernetes workloads where Vantage identifies rightsizing opportunities, the **Rightsizing** tab is displayed with recommendations. See the [Cost Recommendations](/cost_recommendations#kubernetes-rightsizing-recommendations) documentation for details on how to view and use this information. ### Datadog Host Costs For cloud resources that have the Datadog agent installed, Vantage can associate Datadog per-host fees along with the primary cloud resources from AWS, Azure, and Google Cloud that drive those costs. To view these costs and agent information, you need to have a [Datadog](/connecting_datadog) integration, along with either an [AWS](/connecting_aws), [Azure](/connecting_azure), or [GCP](/connecting_gcp) integration. On Active Resource views for resources like EC2 instances or Virtual Machines, the **Associated Datadog Costs** section is displayed and provides a service breakdown of costs. The following resources are supported: * Compute resources with the Datadog agent installed, such as virtual machines or container services * Databases that are monitored by Datadog’s DBM The following Datadog services are supported: * Infrastructure Monitoring * Database Monitoring * APM (Hosts) For eligible resources, the **Datadog Agent Installed** dimension indicates whether the agent is installed. The below image shows resource data for a particular EC2 instance. On the right information panel, the **Datadog Agent Installed** dimension displays **True**. Observe associated Datadog costs for **Infrastructure Monitoring** and **APM** in the table at the bottom. ![The Associated Datadog Costs section is displayed on an active resource](https://assets.vantage.sh/docs/datadog-host-screen.png) You can also create a Resource Report that filters for resources where the Datadog agent is installed. In the below image, the filter looks for EC2 instances where the agent is installed. Vantage automatically generates this type of report when it finds the Datadog Agent installed on relevant resources. Navigate to the [Resource Reports](https://console.vantage.sh/resources) screen. Auto-generated reports will have a name similar to *AWS EC2 Instances with the Datadog Agent Installed*. Select the **Metadata** filter option. For **Resource Type**, select an eligible resource, like **EC2 Instances** or **RDS Instances**. For **Select a Key**, select **Datadog Agent Installed**. For **Value**, select **true**. ![Metadata filter for Datadog Agent costs](https://assets.vantage.sh/docs/datadog-filters.png) ### Datadog Custom Metrics For Datadog accounts with custom metrics, Vantage can surface unused custom metrics that are no longer providing value. Vantage identifies custom metrics that are unused by checking if: * The metric has not been queried in the past 30 days * The metric is not referenced by any dashboards, monitors, notebooks, or SLOs Each custom metric is displayed as an active resource with the following metadata: * **Metric Name**: The name of the custom metric * **Unit**: The unit of measurement for the metric * **Per Unit**: The per-unit cost for the metric * **Description**: Description of the metric * **Short Name**: Short name for the metric * **Statsd Interval**: The StatsD interval for the metric * **Integration**: The integration that created the metric * **Tags**: Tags associated with the metric * **Indexed Volume**: The indexed volume for the metric * **Has Related Assets**: Whether the metric is related to any dashboards, monitors, notebooks, or SLOs * **Has Been Queried**: Whether the metric has been queried in the last 30 days You can create Resource Reports to filter and analyze your Datadog custom metrics, helping you identify which metrics can be removed to reduce costs. In addition, the **Metric Cleanup** tab is displayed. See the [Datadog unused custom metrics](/cost_recommendations#unused-custom-metrics) cost recommendation documentation for details. # Annotations Source: https://docs.vantage.sh/annotations Add contextual notes to Cost Reports with Vantage Annotations. Annotations add context to events or data points within [Cost Reports](/cost_reports). An annotation includes a date and a comment, and is useful for explaining infrastructure changes, deployment events, billing updates, or other context that helps teammates understand a cost change. Annotations can be created manually from a report, or automatically when certain alert types fire: | Annotation Type | How It Is Created | Where It Appears | | - | - | - | | Manual annotation | A user adds it from a report chart or the **Annotations** sidebar. | On the selected Cost Report. | | Cost Alert annotation | A [Cost Alert](/cost_alerts) is triggered. | On the Cost Report associated with the alert event. | | Budget Alert annotation | A [Budget Alert](/budgets#budget-alerts) is triggered. | On the Cost Report associated with the budget alert. | ## Add an Annotation You can add annotations directly from the chart on a Cost Report, or from the **Annotations** sidebar. From any report chart or graph, hover over the chart's bars or line and select the date point you want to annotate. The **Annotations** sidebar is displayed on the right side of the screen. Your username is displayed as well as the date that corresponds with the selected date point on the chart. Enter a comment for the annotation. To save the annotation, click the arrow icon on the bottom right of the comment box. ![Add Annotation From Graph](https://assets.vantage.sh/docs/annotation-add-graph.gif) From the top right of any report, click the **Annotation** icon (looks like a word bubble). The **Annotations** sidebar is displayed. Click **New**. Select the appropriate date from the date picker, and enter a comment. To save the annotation, click the arrow icon on the bottom right of the comment box. When you manually create an annotation, [a corresponding issue](/annotations#view-corresponding-issues) is also created. ## View and Edit Annotations To view an annotation, from the top right of any Cost Report, click the **Annotation** icon (looks like a word bubble). The **Annotations** sidebar is displayed, with the most recently added annotation at the top of the list. A vertical line is also displayed on the report chart or graph for dates that have an existing annotation. To edit the annotation, click the ellipses (...) on the top right of the annotation, then select **Edit**. Select a new date from the date picker and/or edit the text in the comment field. To save the annotation, click the arrow icon on the bottom right of the comment box. Clicking an annotation marker (the vertical line) on the report chart scopes the **Annotations** sidebar to that day, making it easier to find the annotations tied to a specific point in time. Clear the day filter to return to the full list. ## Hide Annotations From the top right of any Cost Report, click the **Annotation** icon (looks like a word bubble). From the top right of the Annotations pane, click the **Annotations Settings** icon (looks like a gear). You can toggle an annotation's visibility in the **Chart Display** section. ![Hiding Annotations](https://assets.vantage.sh/docs/hide-annotations.png) ## Delete an Annotation To delete an annotation, from the top right of any Cost Report, click the **Annotation** icon (looks like a word bubble). The **Annotations** sidebar is displayed. Click the ellipses (...) on the top right of the annotation, then select **Remove** > **OK**. Instead of deleting an annotation, consider resolving the annotation, as described below. ## Resolve an Annotation To resolve an annotation, from the top right of any Cost Report, click the **Annotation** icon (looks like a word bubble). The **Annotations** sidebar is displayed. Click the ellipses (...) on the top right of the annotation, then select **Mark as Resolved**. To unresolve an annotation, repeat the previous steps, but instead, select the **Unresolve** option. ### View Resolved Annotations By default, reports hide resolved annotations from the annotations list and chart or graph. To view resolved annotations, click the **Annotation** icon at the top right of the screen. From the **Annotations** sidebar, click the filter icon (next to the **New** button), then click **Show Resolved**. Resolved annotations are displayed in both views. ## Share an Annotation To share an annotation with a teammate, from the top right of any Cost Report, click the **Annotation** icon. The **Annotations** sidebar is displayed. Click the ellipses (...) on the top right of the annotation, then select **Copy Link**. A link is added to your clipboard, which you can use to share with a teammate. ## View Corresponding Issues When you manually create an annotation, a corresponding [issue](/issues) is also automatically created. Budget Alert annotations also have a corresponding issue. Cost Alert annotations are linked to the Cost Alert instead, so their menu shows **Go to Cost Alert** rather than **Go to Issue**. To open the corresponding issue, click the ellipses (...) on the top right of the annotation. Then, select **Go to Issue**. ![View of issue created by an annotation](https://assets.vantage.sh/docs/annotation-issues.png) For manual annotations, the issue is automatically created with the **Annotation** category label attached and a link to the annotated report. The issue's title defaults to the report name and annotation's date. You can use the comment function in the issue to also comment on the annotation. When an annotation is resolved, the corresponding issue will become a closed issue. Unresolving an annotation reopens the corresponding issue. ## Cost Alert Annotations When a [Cost Alert](/cost_alerts) is triggered, an annotation is added to the corresponding Cost Report. This happens even if you do not configure external notification delivery through email, Slack, Microsoft Teams, or Jira. Cost Alert annotations show details about the alert event, such as the alert title, the grouping that triggered the alert, the change amount, and the comparison interval. From the annotation menu, select **Go to Cost Alert** to view or edit the alert configuration. See [Cost Alerts](/cost_alerts) for details on how to set up Cost Alerts. If Jira delivery is configured for the Cost Alert, the annotation also includes a link to the Jira issue. If Jira delivery is not configured, no Jira issue is created, but the Cost Alert annotation still appears on the report. ## Budget Alert Annotations When a Budget Alert is triggered, an annotation is added to the corresponding Cost Report. See the [Budget Alerts](/budgets#budget-alerts) documentation for details on how to set up Budget Alerts. ## Troubleshooting The annotation was created by a Cost Alert. Cost Alert annotations are connected to the alert event, so the menu links back to the Cost Alert configuration. If the alert was also delivered to Jira, the annotation includes a separate **Go to Jira Issue** option. Cost Alerts can be configured without external delivery channels. When a Cost Alert triggers, Vantage still adds an annotation to the associated Cost Report so the event is visible during report review. Alert-generated annotations use the date of the cost event that triggered the alert. Cloud providers can update billing data after the original usage date, so an alert may be detected later while the annotation appears on the date the cost change occurred. # Vantage API Source: https://docs.vantage.sh/api Access Vantage's REST API to programmatically manage cloud cost data. The Vantage API allows you to programmatically access your cost data and create cost resources, like Cost Reports, folders, and dashboards. Use the API when you need repeatable automation, custom integrations, or raw cost data for your own systems. If you want a point-in-time CSV (optionally FOCUS-formatted) or PDF that matches the current view of a Cost Report, use the [Cost Report export flow](/cost_reports#export-cost-reports) in the Vantage console instead. Browse all API endpoints alphabetically in the left navigation menu. Each endpoint page features a **"Try it"** button at the top that opens an interactive API playground. Enter your [Vantage API token](/api/authentication) to test API calls directly from your browser. **Keep in mind that the playground makes real API calls to your Vantage account using your live Vantage data. Exercise caution when testing endpoints that create, modify, or delete Vantage resources.** The interactive API playground lets you test endpoints directly from your browser. In the video below, the user opens the API playground and enters their access token. As they fill in parameters on the left, the information populates in the request on the right. Click **Send** to complete the API call. *** ## Resources Get started with the Vantage API. Understand the API schema and how to call various endpoints. Learn how to authenticate and access the Vantage API. Create an API access token with Read and Write scopes enabled. Vantage Query Language (VQL) is a SQL-like language designed to filter cloud cost data. VQL provides a normalized schema across various cloud providers. Consult the Data Dictionary to view the normalized field names used to create VQL statements. Each provider that Vantage integrates with makes different fields available in their billing data. ## Libraries The `v2` API currently supports the following libraries. These libraries are officially maintained by Vantage and are auto-generated from the API specification. If you want to have your client added to the list, please email [support@vantage.sh](mailto:support@vantage.sh). * [Go](https://github.com/vantage-sh/vantage-go) * [Python](https://github.com/vantage-sh/vantage-python) * [TypeScript](https://github.com/vantage-sh/vantage-ts) ## OpenAPI Specifications The API provides both [OAS (Swagger) 2.0](https://swagger.io/specification/v2/) and [OpenAPI 3.0.1](https://swagger.io/specification/) specifications. You can use either specification to generate your own client libraries or to explore the API using tools like [Swagger UI](https://swagger.io/tools/swagger-ui/) or [Postman](https://www.postman.com/). * The Swagger 2.0 specification is available at [https://api.vantage.sh/v2/swagger.json](https://api.vantage.sh/v2/swagger.json). * The OpenAPI 3.0.1 specification is available at [https://api.vantage.sh/v2/oas\_v3.json](https://api.vantage.sh/v2/oas_v3.json). # Create access grant Source: https://docs.vantage.sh/api/accessgrants/create-access-grant https://api.vantage.sh/v2/oas_v3.json post /access_grants Create an Access Grant. # Delete access grant Source: https://docs.vantage.sh/api/accessgrants/delete-access-grant https://api.vantage.sh/v2/oas_v3.json delete /access_grants/{access_grant_token} Delete an Access Grant. # Get access grant by token Source: https://docs.vantage.sh/api/accessgrants/get-access-grant-by-token https://api.vantage.sh/v2/oas_v3.json get /access_grants/{access_grant_token} Return a specific Access Grant. # Get all access grants Source: https://docs.vantage.sh/api/accessgrants/get-all-access-grants https://api.vantage.sh/v2/oas_v3.json get /access_grants Return all Access Grants that the current API token has access to. # Update access grant Source: https://docs.vantage.sh/api/accessgrants/update-access-grant https://api.vantage.sh/v2/oas_v3.json put /access_grants/{access_grant_token} Update an AccessGrant. # Create access policy Source: https://docs.vantage.sh/api/accesspolicies/create-access-policy https://api.vantage.sh/v2/oas_v3.json post /access_policies Create an Access Policy. # Delete access policy Source: https://docs.vantage.sh/api/accesspolicies/delete-access-policy https://api.vantage.sh/v2/oas_v3.json delete /access_policies/{access_policy_token} Delete an Access Policy. # Get all access policies Source: https://docs.vantage.sh/api/accesspolicies/get-all-access-policies https://api.vantage.sh/v2/oas_v3.json get /access_policies Return all Access Policies for the current account. # Update access policy Source: https://docs.vantage.sh/api/accesspolicies/update-access-policy https://api.vantage.sh/v2/oas_v3.json put /access_policies/{access_policy_token} Update an Access Policy. # Create an annotation Source: https://docs.vantage.sh/api/annotations/create-an-annotation https://api.vantage.sh/v2/oas_v3.json post /annotations Create an Annotation. # Delete an annotation Source: https://docs.vantage.sh/api/annotations/delete-an-annotation https://api.vantage.sh/v2/oas_v3.json delete /annotations/{annotation_token} Delete an Annotation. # Get all annotations Source: https://docs.vantage.sh/api/annotations/get-all-annotations https://api.vantage.sh/v2/oas_v3.json get /annotations Return all Annotations. # Update an annotation Source: https://docs.vantage.sh/api/annotations/update-an-annotation https://api.vantage.sh/v2/oas_v3.json put /annotations/{annotation_token} Update an Annotation. # Get all anomaly alerts Source: https://docs.vantage.sh/api/anomalyalerts/get-all-anomaly-alerts https://api.vantage.sh/v2/oas_v3.json get /anomaly_alerts Return all Anomaly Alerts that the current API token has access to. # Get anomaly alert by token Source: https://docs.vantage.sh/api/anomalyalerts/get-anomaly-alert-by-token https://api.vantage.sh/v2/oas_v3.json get /anomaly_alerts/{anomaly_alert_token} Return an AnomalyAlert that the current API token has access to. # Update anomaly alert Source: https://docs.vantage.sh/api/anomalyalerts/update-anomaly-alert https://api.vantage.sh/v2/oas_v3.json put /anomaly_alerts/{anomaly_alert_token} Update an AnomalyAlert. # Create anomaly notification Source: https://docs.vantage.sh/api/anomalynotifications/create-anomaly-notification https://api.vantage.sh/v2/oas_v3.json post /anomaly_notifications Create an Anomaly Notification for a Cost Report. # Delete anomaly notification Source: https://docs.vantage.sh/api/anomalynotifications/delete-anomaly-notification https://api.vantage.sh/v2/oas_v3.json delete /anomaly_notifications/{anomaly_notification_token} Delete an Anomaly Notification. # Get all anomaly notifications Source: https://docs.vantage.sh/api/anomalynotifications/get-all-anomaly-notifications https://api.vantage.sh/v2/oas_v3.json get /anomaly_notifications Return all Anomaly Notifications. # Get anomaly notification by token Source: https://docs.vantage.sh/api/anomalynotifications/get-anomaly-notification-by-token https://api.vantage.sh/v2/oas_v3.json get /anomaly_notifications/{anomaly_notification_token} Return an Anomaly Notification that the current API token has access to. # Update anomaly notification Source: https://docs.vantage.sh/api/anomalynotifications/update-anomaly-notification https://api.vantage.sh/v2/oas_v3.json put /anomaly_notifications/{anomaly_notification_token} Update an Anomaly Notification. # Get all audit logs Source: https://docs.vantage.sh/api/auditlogs/get-all-audit-logs https://api.vantage.sh/v2/oas_v3.json get /audit_logs Return all AuditLogs. # Get audit log by token Source: https://docs.vantage.sh/api/auditlogs/get-audit-log-by-token https://api.vantage.sh/v2/oas_v3.json get /audit_logs/{audit_log_token} Return a specific AuditLog. # Authentication Source: https://docs.vantage.sh/api/authentication Learn how to authenticate your requests using API keys. The Vantage API authenticates all requests with an API access token. Tokens are required to ensure stability of the API and enforce rate limiting. If you do not include a token along with a request or pass an incorrect value, an error is returned within the API response. Keep your token in a safe place; do not share it. ## Create a Vantage API Service Token Service tokens are associated with an account, not with an individual user. These tokens ensure that any changes to specific users within your Vantage account will not disrupt automated workflows. All Service Tokens created in non-Enterprise accounts are assigned to the Everyone team. For Enterprise customers who use Teams and Role-Based Access Control, tokens can be attached to specific teams and will inherit the permissions from their associated team. Users with Organization Owner or Team Owner permissions can create API service tokens. **Best Practice for Kubernetes and Terraform:** Service tokens used for the [Kubernetes agent](/kubernetes_agent) or [Terraform provider](/terraform) should be assigned to the **Everyone** team. This is required for organization-level actions such as managing provider integrations and creating teams. Service tokens assigned to other teams will not have the necessary permissions for these organization-level operations, which can result in authorization errors. To generate an API service token, access the [Service Tokens tab](https://console.vantage.sh/settings/access_tokens) on the API Access Tokens page: On the left navigation of the **Settings** screen, select **API Access Tokens**. Enter a new token name, choose a team (Enterprise accounts), select the **Read** and/or **Write** scope, and click **Create**. Click **Show** to reveal and copy your token. To revoke a token, click **Delete**. ## Create a Vantage API Personal Access Token Personal access tokens are associated with the user who created the token. To generate an API personal access token, access the [Personal Access Tokens tab](https://console.vantage.sh/settings/access_tokens/personal) on the API Access Tokens page: On the left navigation of the **Settings** screen, select **API Access Tokens**, then navigate to the **Personal Access Tokens** tab. Enter a new token name, select the **Read** and/or **Write** scope, and click **Create**. Click **Show** to reveal and copy your token. To revoke a token, click **Delete**. ## Choose the Right Token Use the following guidance when deciding which token type to use: | Token type | Best for | Notes | | - | - | - | | **Service token** | Shared automation, background jobs, CI pipelines, and long-lived integrations | In Enterprise accounts, the token inherits the permissions of its assigned team. | | **Personal access token** | Interactive testing, local scripts, and requests that should run with an individual user's access | The token's access follows the user who created it. | In Enterprise accounts, a token can only access the workspaces and items available to its team. If an automation needs organization-level access, such as managing provider integrations, assign the service token to the **Everyone** team. See the [RBAC permissions reference](/rbac_permissions). ## Use Your Access Token in a Request Pass your access token through the `Authorization` header of a request: ```bash theme={null} curl --request GET \ --url https://api.vantage.sh/v2/cost_reports \ --header 'Accept: application/json' \ --header 'Authorization: Bearer ' ``` # Create billing profile Source: https://docs.vantage.sh/api/billingprofiles/create-billing-profile https://api.vantage.sh/v2/oas_v3.json post /billing_profiles Create a billing profile (MSP invoicing required). # Delete billing profile Source: https://docs.vantage.sh/api/billingprofiles/delete-billing-profile https://api.vantage.sh/v2/oas_v3.json delete /billing_profiles/{billing_profile_token} Requires MSP invoicing to be enabled on the account. # Get all billing profiles Source: https://docs.vantage.sh/api/billingprofiles/get-all-billing-profiles https://api.vantage.sh/v2/oas_v3.json get /billing_profiles Returns a list of billing profiles (MSP invoicing required). # Get billing profile by token Source: https://docs.vantage.sh/api/billingprofiles/get-billing-profile-by-token https://api.vantage.sh/v2/oas_v3.json get /billing_profiles/{billing_profile_token} Requires MSP invoicing to be enabled on the account. # Update billing profile Source: https://docs.vantage.sh/api/billingprofiles/update-billing-profile https://api.vantage.sh/v2/oas_v3.json put /billing_profiles/{billing_profile_token} Requires MSP invoicing to be enabled on the account. # Create billing rule Source: https://docs.vantage.sh/api/billingrules/create-billing-rule https://api.vantage.sh/v2/oas_v3.json post /billing_rules Create a BillingRule. # Delete billing rule Source: https://docs.vantage.sh/api/billingrules/delete-billing-rule https://api.vantage.sh/v2/oas_v3.json delete /billing_rules/{billing_rule_token} Delete a BillingRule. # Get all billing rules Source: https://docs.vantage.sh/api/billingrules/get-all-billing-rules https://api.vantage.sh/v2/oas_v3.json get /billing_rules Returns a list of billing rules. # Get billing rule by token Source: https://docs.vantage.sh/api/billingrules/get-billing-rule-by-token https://api.vantage.sh/v2/oas_v3.json get /billing_rules/{billing_rule_token} Return a BillingRule. # Update billing rule Source: https://docs.vantage.sh/api/billingrules/update-billing-rule https://api.vantage.sh/v2/oas_v3.json put /billing_rules/{billing_rule_token} Update a BillingRule. # Create budget alert Source: https://docs.vantage.sh/api/budgetalerts/create-budget-alert https://api.vantage.sh/v2/oas_v3.json post /budget_alerts Create a Budget Alert. # Delete budget alert Source: https://docs.vantage.sh/api/budgetalerts/delete-budget-alert https://api.vantage.sh/v2/oas_v3.json delete /budget_alerts/{budget_alert_token} Delete a BudgetAlert. # Get all budget alerts Source: https://docs.vantage.sh/api/budgetalerts/get-all-budget-alerts https://api.vantage.sh/v2/oas_v3.json get /budget_alerts Return all BudgetAlerts. # Get budget alert by token Source: https://docs.vantage.sh/api/budgetalerts/get-budget-alert-by-token https://api.vantage.sh/v2/oas_v3.json get /budget_alerts/{budget_alert_token} Return a BudgetAlert. # Update budget alert Source: https://docs.vantage.sh/api/budgetalerts/update-budget-alert https://api.vantage.sh/v2/oas_v3.json put /budget_alerts/{budget_alert_token} Updates an existing BudgetAlert. # Create budget Source: https://docs.vantage.sh/api/budgets/create-budget https://api.vantage.sh/v2/oas_v3.json post /budgets Create a Budget. # Delete budget Source: https://docs.vantage.sh/api/budgets/delete-budget https://api.vantage.sh/v2/oas_v3.json delete /budgets/{budget_token} Delete a Budget. # Get all budgets Source: https://docs.vantage.sh/api/budgets/get-all-budgets https://api.vantage.sh/v2/oas_v3.json get /budgets Return all Budgets. # Get budget by token Source: https://docs.vantage.sh/api/budgets/get-budget-by-token https://api.vantage.sh/v2/oas_v3.json get /budgets/{budget_token} Return a Budget. # Update budget Source: https://docs.vantage.sh/api/budgets/update-budget https://api.vantage.sh/v2/oas_v3.json put /budgets/{budget_token} Update a Budget. # Create business metric Source: https://docs.vantage.sh/api/businessmetrics/create-business-metric https://api.vantage.sh/v2/oas_v3.json post /business_metrics Create a new BusinessMetric. # Delete business metric Source: https://docs.vantage.sh/api/businessmetrics/delete-business-metric https://api.vantage.sh/v2/oas_v3.json delete /business_metrics/{business_metric_token} Deletes an existing BusinessMetric. # Delete business metric values Source: https://docs.vantage.sh/api/businessmetrics/delete-business-metric-values https://api.vantage.sh/v2/oas_v3.json delete /business_metrics/{business_metric_token}/values Deletes Business Metric values (historical or forecasted unit metrics). BusinessMetrics whose values are stored in ClickHouse only support deleting every historical value or every forecasted value, so supplying start_date, end_date, or label returns 422. # Get all business metrics Source: https://docs.vantage.sh/api/businessmetrics/get-all-business-metrics https://api.vantage.sh/v2/oas_v3.json get /business_metrics Return all BusinessMetrics that the current API token has access to. # Get business metric by token Source: https://docs.vantage.sh/api/businessmetrics/get-business-metric-by-token https://api.vantage.sh/v2/oas_v3.json get /business_metrics/{business_metric_token} Return a BusinessMetric. # Get business metric forecasted values Source: https://docs.vantage.sh/api/businessmetrics/get-business-metric-forecasted-values https://api.vantage.sh/v2/oas_v3.json get /business_metrics/{business_metric_token}/forecasted_values Return forecasted values of a BusinessMetric # Get business metric labels Source: https://docs.vantage.sh/api/businessmetrics/get-business-metric-labels https://api.vantage.sh/v2/oas_v3.json get /business_metrics/{business_metric_token}/labels Return labels of a BusinessMetric. # Get business metric values Source: https://docs.vantage.sh/api/businessmetrics/get-business-metric-values https://api.vantage.sh/v2/oas_v3.json get /business_metrics/{business_metric_token}/values Return values of a BusinessMetric # Update business metric Source: https://docs.vantage.sh/api/businessmetrics/update-business-metric https://api.vantage.sh/v2/oas_v3.json put /business_metrics/{business_metric_token} Updates an existing BusinessMetric. # Update business metric values from CSV Source: https://docs.vantage.sh/api/businessmetrics/update-business-metric-values-from-csv https://api.vantage.sh/v2/oas_v3.json put /business_metrics/{business_metric_token}/values.csv Updates the values for an existing BusinessMetric from a CSV file. # Create canvas Source: https://docs.vantage.sh/api/canvases/create-canvas https://api.vantage.sh/v2/oas_v3.json post /canvases Create a Canvas. # Delete canvas Source: https://docs.vantage.sh/api/canvases/delete-canvas https://api.vantage.sh/v2/oas_v3.json delete /canvases/{canvas_token} Delete a Canvas. # Get all canvases Source: https://docs.vantage.sh/api/canvases/get-all-canvases https://api.vantage.sh/v2/oas_v3.json get /canvases Return all Canvases. # Get canvas by token Source: https://docs.vantage.sh/api/canvases/get-canvas-by-token https://api.vantage.sh/v2/oas_v3.json get /canvases/{canvas_token} Return a specific Canvas. # Update canvas Source: https://docs.vantage.sh/api/canvases/update-canvas https://api.vantage.sh/v2/oas_v3.json put /canvases/{canvas_token} Update a Canvas. # Get all cost alert events Source: https://docs.vantage.sh/api/costalertevents/get-all-cost-alert-events https://api.vantage.sh/v2/oas_v3.json get /cost_alerts/{cost_alert_token}/events Get all CostAlertEvents # Get cost alert event by token Source: https://docs.vantage.sh/api/costalertevents/get-cost-alert-event-by-token https://api.vantage.sh/v2/oas_v3.json get /cost_alerts/{cost_alert_token}/events/{event_token} Get a CostAlertEvent # Create cost alert Source: https://docs.vantage.sh/api/costalerts/create-cost-alert https://api.vantage.sh/v2/oas_v3.json post /cost_alerts Create a new Cost Alert # Delete cost alert Source: https://docs.vantage.sh/api/costalerts/delete-cost-alert https://api.vantage.sh/v2/oas_v3.json delete /cost_alerts/{cost_alert_token} Delete a Cost Alert # Get all cost alerts Source: https://docs.vantage.sh/api/costalerts/get-all-cost-alerts https://api.vantage.sh/v2/oas_v3.json get /cost_alerts List all Cost Alerts # Get cost alert by token Source: https://docs.vantage.sh/api/costalerts/get-cost-alert-by-token https://api.vantage.sh/v2/oas_v3.json get /cost_alerts/{cost_alert_token} Get a Cost Alert # Update cost alert Source: https://docs.vantage.sh/api/costalerts/update-cost-alert https://api.vantage.sh/v2/oas_v3.json put /cost_alerts/{cost_alert_token} Update a Cost Alert # Get cost providers Source: https://docs.vantage.sh/api/costprovider/get-cost-providers https://api.vantage.sh/v2/oas_v3.json get /cost_providers List CostProviders available to query in a given Workspace. # Get all cost provider accounts Source: https://docs.vantage.sh/api/costprovideraccounts/get-all-cost-provider-accounts https://api.vantage.sh/v2/oas_v3.json get /cost_provider_accounts List CostProviderAccounts available in a given Workspace. # Create cost report Source: https://docs.vantage.sh/api/costs/create-cost-report https://api.vantage.sh/v2/oas_v3.json post /cost_reports Create a CostReport. # Delete cost report Source: https://docs.vantage.sh/api/costs/delete-cost-report https://api.vantage.sh/v2/oas_v3.json delete /cost_reports/{cost_report_token} Delete a CostReport. # Generate cost data export Source: https://docs.vantage.sh/api/costs/generate-cost-data-export https://api.vantage.sh/v2/oas_v3.json post /costs/data_exports Generate a DataExport of costs. # Get all cost reports Source: https://docs.vantage.sh/api/costs/get-all-cost-reports https://api.vantage.sh/v2/oas_v3.json get /cost_reports Return all CostReports. # Get cost report by token Source: https://docs.vantage.sh/api/costs/get-cost-report-by-token https://api.vantage.sh/v2/oas_v3.json get /cost_reports/{cost_report_token} Return a CostReport. # Get costs for cost report or VQL filter Source: https://docs.vantage.sh/api/costs/get-costs-for-cost-report-or-vql-filter https://api.vantage.sh/v2/oas_v3.json get /costs Return all Costs for a CostReport or VQL filter. # Get forecasted costs for a cost report Source: https://docs.vantage.sh/api/costs/get-forecasted-costs-for-a-cost-report https://api.vantage.sh/v2/oas_v3.json get /cost_reports/{cost_report_token}/forecasted_costs Return all ForecastedCosts. # Update cost report Source: https://docs.vantage.sh/api/costs/update-cost-report https://api.vantage.sh/v2/oas_v3.json put /cost_reports/{cost_report_token} Update a CostReport. # Get cost services Source: https://docs.vantage.sh/api/costservice/get-cost-services https://api.vantage.sh/v2/oas_v3.json get /cost_services List CostServices available to query in a given Workspace. # Create dashboard notification Source: https://docs.vantage.sh/api/dashboardnotifications/create-dashboard-notification https://api.vantage.sh/v2/oas_v3.json post /dashboard_notifications Create a DashboardNotification. # Delete dashboard notification Source: https://docs.vantage.sh/api/dashboardnotifications/delete-dashboard-notification https://api.vantage.sh/v2/oas_v3.json delete /dashboard_notifications/{dashboard_notification_token} Delete a DashboardNotification. # Get all dashboard notifications Source: https://docs.vantage.sh/api/dashboardnotifications/get-all-dashboard-notifications https://api.vantage.sh/v2/oas_v3.json get /dashboard_notifications Return all DashboardNotifications. # Get dashboard notification by token Source: https://docs.vantage.sh/api/dashboardnotifications/get-dashboard-notification-by-token https://api.vantage.sh/v2/oas_v3.json get /dashboard_notifications/{dashboard_notification_token} Return a DashboardNotification. # Update dashboard notification Source: https://docs.vantage.sh/api/dashboardnotifications/update-dashboard-notification https://api.vantage.sh/v2/oas_v3.json put /dashboard_notifications/{dashboard_notification_token} Update a DashboardNotification. # Create dashboard Source: https://docs.vantage.sh/api/dashboards/create-dashboard https://api.vantage.sh/v2/oas_v3.json post /dashboards Create a Dashboard. # Delete dashboard Source: https://docs.vantage.sh/api/dashboards/delete-dashboard https://api.vantage.sh/v2/oas_v3.json delete /dashboards/{dashboard_token} Delete a Dashboard. # Delete dashboard widget Source: https://docs.vantage.sh/api/dashboards/delete-dashboard-widget https://api.vantage.sh/v2/oas_v3.json delete /widgets/{widget_token} Delete a Dashboard Widget. # Get all dashboards Source: https://docs.vantage.sh/api/dashboards/get-all-dashboards https://api.vantage.sh/v2/oas_v3.json get /dashboards Return all Dashboards. # Get dashboard by token Source: https://docs.vantage.sh/api/dashboards/get-dashboard-by-token https://api.vantage.sh/v2/oas_v3.json get /dashboards/{dashboard_token} Return a specific Dashboard. # Get dashboard widget Source: https://docs.vantage.sh/api/dashboards/get-dashboard-widget https://api.vantage.sh/v2/oas_v3.json get /widgets/{widget_token} Return a Dashboard Widget. # Update dashboard Source: https://docs.vantage.sh/api/dashboards/update-dashboard https://api.vantage.sh/v2/oas_v3.json put /dashboards/{dashboard_token} Update a Dashboard. # Update dashboard widget Source: https://docs.vantage.sh/api/dashboards/update-dashboard-widget https://api.vantage.sh/v2/oas_v3.json patch /widgets/{widget_token} Update a single Dashboard Widget. # Get status of data export Source: https://docs.vantage.sh/api/dataexports/get-status-of-data-export https://api.vantage.sh/v2/oas_v3.json get /data_exports/{data_export_token} Get the status of a data export. # Get all enrichment sources Source: https://docs.vantage.sh/api/enrichmentsources/get-all-enrichment-sources https://api.vantage.sh/v2/oas_v3.json get /enrichment_sources Return all EnrichmentSources. # Get enrichment source by token Source: https://docs.vantage.sh/api/enrichmentsources/get-enrichment-source-by-token https://api.vantage.sh/v2/oas_v3.json get /enrichment_sources/{enrichment_source_token} Return an EnrichmentSource. # Get enrichment statistics Source: https://docs.vantage.sh/api/enrichmentstatistics/get-enrichment-statistics https://api.vantage.sh/v2/oas_v3.json get /enrichment_sources/{enrichment_source_token}/statistics Return enrichment statistics. # Errors Source: https://docs.vantage.sh/api/errors Understand potential errors and how to correct them when using the Vantage API. All error responses follow a standard format and are nested under an errors key in the response. The value will be an array of error messages. ```curl theme={null} { "errors": [ "You are not authorized to view this resource." ] } ``` | Status Code | Message | Reason | | - | - | - | | `401` | Unauthorized or Invalid Token | The token is missing, malformed, expired, or otherwise invalid. | | `403` | Forbidden | The token is valid, but it does not have permission to perform that action or access that workspace or resource. | | `404` | Not Found | The requested resource could not be found. This could be due to a mistyped URL or a resource that has been deleted. | | `429` | Too Many Requests | The user has sent too many requests in a given amount of time. See the [Rate Limiting](/api/rate_limiting) section for details. | | `500` | Internal Server Error | An unexpected condition was encountered. This is a generic error message for server-side issues. | | `422` | Unprocessable Entity | The request was well-formed but could not be processed because of validation or other semantic errors in the request data. | ## Common Authentication and Permission Failures * If you receive a `401`, verify that your `Authorization: Bearer ...` header is present and that the token value is correct. * If you receive a `403`, verify that the token has the necessary scope and that it can access the relevant workspace or resource. * If you are using an Enterprise team-scoped service token, make sure the token's team has access to the workspace you are trying to query or modify. # Get all exchange rates Source: https://docs.vantage.sh/api/exchangerates/get-all-exchange-rates https://api.vantage.sh/v2/oas_v3.json get /exchange_rates Return all Exchange Rates. # Upload exchange rates via CSV Source: https://docs.vantage.sh/api/exchangerates/upload-exchange-rates-via-csv https://api.vantage.sh/v2/oas_v3.json post /exchange_rates/csv Upload Exchange Rates via CSV. # Create financial commitment report Source: https://docs.vantage.sh/api/financialcommitmentreports/create-financial-commitment-report https://api.vantage.sh/v2/oas_v3.json post /financial_commitment_reports Create a FinancialCommitmentReport. # Delete financial commitment report Source: https://docs.vantage.sh/api/financialcommitmentreports/delete-financial-commitment-report https://api.vantage.sh/v2/oas_v3.json delete /financial_commitment_reports/{financial_commitment_report_token} Delete a FinancialCommitmentReport. # Get all financial commitment reports Source: https://docs.vantage.sh/api/financialcommitmentreports/get-all-financial-commitment-reports https://api.vantage.sh/v2/oas_v3.json get /financial_commitment_reports Return all FinancialCommitmentReports. # Get costs for financial commitment report Source: https://docs.vantage.sh/api/financialcommitmentreports/get-costs-for-financial-commitment-report https://api.vantage.sh/v2/oas_v3.json get /financial_commitment_reports/{financial_commitment_report_token}/costs Return costs for a FinancialCommitmentReport. # Get financial commitment report by token Source: https://docs.vantage.sh/api/financialcommitmentreports/get-financial-commitment-report-by-token https://api.vantage.sh/v2/oas_v3.json get /financial_commitment_reports/{financial_commitment_report_token} Return a FinancialCommitmentReport. # Update financial commitment report Source: https://docs.vantage.sh/api/financialcommitmentreports/update-financial-commitment-report https://api.vantage.sh/v2/oas_v3.json put /financial_commitment_reports/{financial_commitment_report_token} Update a FinancialCommitmentReport. # Get all financial commitments Source: https://docs.vantage.sh/api/financialcommitments/get-all-financial-commitments https://api.vantage.sh/v2/oas_v3.json get /financial_commitments Return all FinancialCommitments. # Create folder Source: https://docs.vantage.sh/api/folders/create-folder https://api.vantage.sh/v2/oas_v3.json post /folders Create a Folder for CostReports. # Delete folder Source: https://docs.vantage.sh/api/folders/delete-folder https://api.vantage.sh/v2/oas_v3.json delete /folders/{folder_token} Delete a Folder for CostReports. # Get all folders Source: https://docs.vantage.sh/api/folders/get-all-folders https://api.vantage.sh/v2/oas_v3.json get /folders Return all Folders for CostReports. # Get folder by token Source: https://docs.vantage.sh/api/folders/get-folder-by-token https://api.vantage.sh/v2/oas_v3.json get /folders/{folder_token} Return a specific Folder for CostReports. # Update folder Source: https://docs.vantage.sh/api/folders/update-folder https://api.vantage.sh/v2/oas_v3.json put /folders/{folder_token} Update a Folder for CostReports. # Get OpenAPI specification Source: https://docs.vantage.sh/api/getopenapispecifications Retrieve the OpenAPI 3.0.1 specification for Vantage's API. This endpoint returns a compliant OpenAPI 3.0.1 specification document for the Vantage API. You can use this specification to: * Generate client libraries for your preferred programming language * Explore the API using tools like [Swagger UI](https://swagger.io/tools/swagger-ui/) or [Postman](https://www.postman.com/) * Understand the complete API schema, including all endpoints, request/response models, and authentication requirements The OpenAPI specification is always up-to-date and reflects the current state of the Vantage API. The "Try it" feature is not available for this endpoint. Please use the code examples below or make requests directly to the endpoint URL. ```bash cURL theme={null} curl --request GET \ --url https://api.vantage.sh/v2/oas_v3.json \ --header 'authorization: Bearer TOKEN' ``` ```python Python theme={null} import requests url = "https://api.vantage.sh/v2/oas_v3.json" headers = { "authorization": "Bearer TOKEN" } response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.vantage.sh/v2/oas_v3.json', { method: 'GET', headers: { 'authorization': 'Bearer TOKEN' } }); const data = await response.json(); console.log(data); ``` ## Authentication This endpoint requires authentication via a Bearer token in the Authorization header. See [Authentication](/api/authentication) for details on creating an API access token. ## Request Parameters This endpoint does not accept any query parameters or path parameters. ## Response The response is a JSON object containing the full OpenAPI specification, including: * API metadata (title, description, version, contact information) * Server information * Authentication schemes * All available endpoints with their methods, paths, parameters, and request/response schemas * Data models and schema definitions ```json theme={null} { "openapi": "3.0.1", "info": { "title": "Vantage", "description": "Vantage API", "termsOfService": "https://www.vantage.sh/terms-of-use", "contact": { "name": "Vantage Support", "url": "https://www.vantage.sh", "email": "support@vantage.sh" } }, ... } ``` The full specification document is extensive and includes detailed information about all endpoints, request/response models, and authentication methods available in the Vantage API. # Create Azure integration Source: https://docs.vantage.sh/api/integrations/create-azure-integration https://api.vantage.sh/v2/oas_v3.json post /integrations/azure Create an Azure Integration # Create custom provider integration Source: https://docs.vantage.sh/api/integrations/create-custom-provider-integration https://api.vantage.sh/v2/oas_v3.json post /integrations/custom_provider Create a Custom Provider Integration # Create GCP integration Source: https://docs.vantage.sh/api/integrations/create-gcp-integration https://api.vantage.sh/v2/oas_v3.json post /integrations/gcp Create a GCP Integration # Create Twilio integration Source: https://docs.vantage.sh/api/integrations/create-twilio-integration https://api.vantage.sh/v2/oas_v3.json post /integrations/twilio Create a Twilio Integration # Delete integration Source: https://docs.vantage.sh/api/integrations/delete-integration https://api.vantage.sh/v2/oas_v3.json delete /integrations/{integration_token} Delete an Integration. # Delete user costs upload Source: https://docs.vantage.sh/api/integrations/delete-user-costs-upload https://api.vantage.sh/v2/oas_v3.json delete /integrations/{integration_token}/costs/{user_costs_upload_token} Delete a UserCostsUpload. # Get all integrations Source: https://docs.vantage.sh/api/integrations/get-all-integrations https://api.vantage.sh/v2/oas_v3.json get /integrations Return all Integrations. # Get all user costs uploads Source: https://docs.vantage.sh/api/integrations/get-all-user-costs-uploads https://api.vantage.sh/v2/oas_v3.json get /integrations/{integration_token}/costs List UserCostUploads. # Get integration by token Source: https://docs.vantage.sh/api/integrations/get-integration-by-token https://api.vantage.sh/v2/oas_v3.json get /integrations/{integration_token} Return an Integration. # Update integration Source: https://docs.vantage.sh/api/integrations/update-integration https://api.vantage.sh/v2/oas_v3.json put /integrations/{integration_token} Update an Integration. # Upload custom provider costs Source: https://docs.vantage.sh/api/integrations/upload-custom-provider-costs https://api.vantage.sh/v2/oas_v3.json post /integrations/{integration_token}/costs.csv Create UserCostsUpload via CSV for a Custom Provider Integration. # Create invoice Source: https://docs.vantage.sh/api/invoices/create-invoice https://api.vantage.sh/v2/oas_v3.json post /invoices Create an invoice (MSP accounts only). # Get all invoices Source: https://docs.vantage.sh/api/invoices/get-all-invoices https://api.vantage.sh/v2/oas_v3.json get /invoices Returns a list of invoices (MSP invoicing required). # Get cost report URL Source: https://docs.vantage.sh/api/invoices/get-cost-report-url https://api.vantage.sh/v2/oas_v3.json get /invoices/{invoice_token}/cost_report Get cost report URL for invoice period. # Get invoice by token Source: https://docs.vantage.sh/api/invoices/get-invoice-by-token https://api.vantage.sh/v2/oas_v3.json get /invoices/{invoice_token} Return an invoice. # Get invoice file Source: https://docs.vantage.sh/api/invoices/get-invoice-file https://api.vantage.sh/v2/oas_v3.json post /invoices/{invoice_token}/download Download invoice file (PDF or CSV). # Regenerate invoice Source: https://docs.vantage.sh/api/invoices/regenerate-invoice https://api.vantage.sh/v2/oas_v3.json post /invoices/{invoice_token}/regenerate Regenerate an existing invoice (MSP accounts only). # Send and approve invoice Source: https://docs.vantage.sh/api/invoices/send-and-approve-invoice https://api.vantage.sh/v2/oas_v3.json post /invoices/{invoice_token}/send_and_approve Send and approve invoice via email (MSP accounts only). # Send invoice Source: https://docs.vantage.sh/api/invoices/send-invoice https://api.vantage.sh/v2/oas_v3.json post /invoices/{invoice_token}/send Send invoice via email. # Create Kubernetes efficiency report Source: https://docs.vantage.sh/api/kubernetesefficiencyreports/create-kubernetes-efficiency-report https://api.vantage.sh/v2/oas_v3.json post /kubernetes_efficiency_reports Create a KubernetesEfficiencyReport. # Delete Kubernetes efficiency report Source: https://docs.vantage.sh/api/kubernetesefficiencyreports/delete-kubernetes-efficiency-report https://api.vantage.sh/v2/oas_v3.json delete /kubernetes_efficiency_reports/{kubernetes_efficiency_report_token} Delete a KubernetesEfficiencyReport. # Generate Kubernetes efficiency data export Source: https://docs.vantage.sh/api/kubernetesefficiencyreports/generate-kubernetes-efficiency-data-export https://api.vantage.sh/v2/oas_v3.json post /kubernetes_efficiency_reports/data_exports Generate a DataExport of Kubernetes efficiency data. # Get all Kubernetes efficiency reports Source: https://docs.vantage.sh/api/kubernetesefficiencyreports/get-all-kubernetes-efficiency-reports https://api.vantage.sh/v2/oas_v3.json get /kubernetes_efficiency_reports Return all KubernetesEfficiencyReports. # Get costs for Kubernetes efficiency report Source: https://docs.vantage.sh/api/kubernetesefficiencyreports/get-costs-for-kubernetes-efficiency-report https://api.vantage.sh/v2/oas_v3.json get /kubernetes_efficiency_reports/{kubernetes_efficiency_report_token}/costs Return costs for a KubernetesEfficiencyReport. # Get Kubernetes efficiency report by token Source: https://docs.vantage.sh/api/kubernetesefficiencyreports/get-kubernetes-efficiency-report-by-token https://api.vantage.sh/v2/oas_v3.json get /kubernetes_efficiency_reports/{kubernetes_efficiency_report_token} Return a KubernetesEfficiencyReport. # Update Kubernetes efficiency report Source: https://docs.vantage.sh/api/kubernetesefficiencyreports/update-kubernetes-efficiency-report https://api.vantage.sh/v2/oas_v3.json put /kubernetes_efficiency_reports/{kubernetes_efficiency_report_token} Update a KubernetesEfficiencyReport. # Configure SSO for managed account Source: https://docs.vantage.sh/api/managedaccounts/configure-sso-for-managed-account https://api.vantage.sh/v2/oas_v3.json post /managed_accounts/{managed_account_token}/sso_connection Configure SSO for a Managed Account. # Create managed account Source: https://docs.vantage.sh/api/managedaccounts/create-managed-account https://api.vantage.sh/v2/oas_v3.json post /managed_accounts Create a Managed Account. # Delete managed account Source: https://docs.vantage.sh/api/managedaccounts/delete-managed-account https://api.vantage.sh/v2/oas_v3.json delete /managed_accounts/{managed_account_token} Delete a Managed Account. # Delete SSO connection for managed account Source: https://docs.vantage.sh/api/managedaccounts/delete-sso-connection-for-managed-account https://api.vantage.sh/v2/oas_v3.json delete /managed_accounts/{managed_account_token}/sso_connection Delete SSO connection for a Managed Account. # Get all managed accounts Source: https://docs.vantage.sh/api/managedaccounts/get-all-managed-accounts https://api.vantage.sh/v2/oas_v3.json get /managed_accounts Returns a list of managed accounts. # Get managed account by token Source: https://docs.vantage.sh/api/managedaccounts/get-managed-account-by-token https://api.vantage.sh/v2/oas_v3.json get /managed_accounts/{managed_account_token} Return a Managed Account. # Get managed account integration Source: https://docs.vantage.sh/api/managedaccounts/get-managed-account-integration https://api.vantage.sh/v2/oas_v3.json get /managed_accounts/{managed_account_token}/integrations/{access_credential_token} Returns the Integration delegated to this Managed Account from the Access Credential named in the path, along with the provider account identifiers it imports. Delegate an Access Credential to a Managed Account with access_credential_tokens before calling this. # Update managed account Source: https://docs.vantage.sh/api/managedaccounts/update-managed-account https://api.vantage.sh/v2/oas_v3.json put /managed_accounts/{managed_account_token} Update a Managed Account. # Update managed account integration Source: https://docs.vantage.sh/api/managedaccounts/update-managed-account-integration https://api.vantage.sh/v2/oas_v3.json put /managed_accounts/{managed_account_token}/integrations/{access_credential_token} Replaces the provider account identifiers a delegated Integration imports. An empty array applies no filter, so every provider account the Access Credential can see is imported. Identifiers are only accepted for providers that support scoping a delegation. Azure CSP uses subscription ids and GCP uses project ids. Stop delegating an Integration by removing its token from access_credential_tokens on the Managed Account. # Update SSO configuration for managed account Source: https://docs.vantage.sh/api/managedaccounts/update-sso-configuration-for-managed-account https://api.vantage.sh/v2/oas_v3.json put /managed_accounts/{managed_account_token}/sso_connection Update SSO configuration for a Managed Account. # Get authenticated user info Source: https://docs.vantage.sh/api/me/get-authenticated-user-info https://api.vantage.sh/v2/oas_v3.json get /me Get information about the authenticated BearerToken. # Update authenticated user Source: https://docs.vantage.sh/api/me/update-authenticated-user https://api.vantage.sh/v2/oas_v3.json put /me Update the authenticated User. # Get network flow logs Source: https://docs.vantage.sh/api/networkflowlogs/get-network-flow-logs https://api.vantage.sh/v2/oas_v3.json get /network_flow_logs Return aggregated Network Flow Logs for a saved report or ad hoc VQL query. # Create network flow report Source: https://docs.vantage.sh/api/networkflowreports/create-network-flow-report https://api.vantage.sh/v2/oas_v3.json post /network_flow_reports Create a NetworkFlowReport. # Delete network flow report Source: https://docs.vantage.sh/api/networkflowreports/delete-network-flow-report https://api.vantage.sh/v2/oas_v3.json delete /network_flow_reports/{network_flow_report_token} Delete a NetworkFlowReport. # Get all network flow reports Source: https://docs.vantage.sh/api/networkflowreports/get-all-network-flow-reports https://api.vantage.sh/v2/oas_v3.json get /network_flow_reports Return all NetworkFlowReports. # Get network flow report by token Source: https://docs.vantage.sh/api/networkflowreports/get-network-flow-report-by-token https://api.vantage.sh/v2/oas_v3.json get /network_flow_reports/{network_flow_report_token} Return a NetworkFlowReport. # Update network flow report Source: https://docs.vantage.sh/api/networkflowreports/update-network-flow-report https://api.vantage.sh/v2/oas_v3.json put /network_flow_reports/{network_flow_report_token} Update a NetworkFlowReport. # Pagination Source: https://docs.vantage.sh/api/pagination Understand how to paginate through large sets of data. When querying for lists of items, the responses will be paginated. The pagination will be represented in the `links` key of the response. ```json theme={null} "links":{ "self": "https://api.vantage.sh/v2/folders?page=2", "first": "https://api.vantage.sh/v2/folders?page=1", "next": "https://api.vantage.sh/v2/folders?page=3", "last": "https://api.vantage.sh/v2/folders?page=5", "prev": "https://api.vantage.sh/v2/folders?page=1" } ``` | Field | Description | | - | - | | `self` | The URL of the current page. | | `first` | The URL of the first page of items. | | `next` | The URL of the next page of items. | | `last` | The URL of the last page of items. | | `prev` | The URL of the previous page of items. | The array of items will be available as a key that matches the name of the route. For instance, folders will have a top-level `folders` key. ```json theme={null} { "links": {}, "folders":[] } ``` You can specify the page you want to access and the number of items per page by using the `page` and `limit` query parameters. ```bash theme={null} curl --request GET \ --url https://api.vantage.sh/v2/folders?page=3&limit=10 \ --header 'Accept: application/json' ``` # Get ping Source: https://docs.vantage.sh/api/ping/get-ping https://api.vantage.sh/v2/oas_v3.json get /ping This is a health check endpoint that can be used to determine Vantage API healthiness. It will return 200 if everything is running smoothly. # Get all products Source: https://docs.vantage.sh/api/prices/get-all-products https://api.vantage.sh/v2/oas_v3.json get /products Return available Products for a Service. For example, with a Provider of AWS and a Service of EC2, Products will be a list of all EC2 Instances. By default, this endpoint returns all Products across all Services and Providers but has optional query parameters for filtering listed below. # Get price by ID Source: https://docs.vantage.sh/api/prices/get-price-by-id https://api.vantage.sh/v2/oas_v3.json get /products/{product_id}/prices/{id} Returns a price # Get prices for a product Source: https://docs.vantage.sh/api/prices/get-prices-for-a-product https://api.vantage.sh/v2/oas_v3.json get /products/{product_id}/prices Return available Prices across all Regions for a Product. # Get product by ID Source: https://docs.vantage.sh/api/prices/get-product-by-id https://api.vantage.sh/v2/oas_v3.json get /products/{id} Return a product # Quickstart Source: https://docs.vantage.sh/api/quickstart Get started with the Vantage API. This quickstart guide will walk you through building a complete cost management workflow using the Vantage API. You'll learn to create folders, generate Cost Reports, and analyze spending data programmatically. ## Prerequisites * A [Vantage account](https://console.vantage.sh/) with at least one provider integration * A Vantage [API access token](/api/authentication) with Read and Write scopes enabled All Vantage API `v2` requests use the following base URL: ```bash theme={null} https://api.vantage.sh/v2 ``` In this quickstart, we'll cover the following steps: First, we'll retrieve all workspaces your API token has access to. Set up a folder structure to organize your Cost Reports. Create a VQL-powered Cost Report with specific filters. Retrieve and analyze cost and usage data from your report. This quickstart focuses on API-native resource creation and data retrieval. If you need a point-in-time CSV (including a CSV export in the FOCUS schema) or PDF that mirrors a Cost Report in the UI, use the [Cost Report export flow](/cost_reports#export-cost-reports) instead. ## Step 1: Discover Your Workspaces Retrieve all workspaces your API token has access to. This endpoint returns workspace tokens and metadata that you'll use in subsequent API calls. ```bash theme={null} curl --request GET \ --url https://api.vantage.sh/v2/workspaces \ --header 'accept: application/json' \ --header 'authorization: Bearer ACCESS_TOKEN' ``` The response includes pagination links and an array of workspace objects with tokens, names, and configuration details. ```json theme={null} { "links": { "self": "https://api.vantage.sh/v2/workspaces", "first": "https://api.vantage.sh/v2/workspaces?page=1", "next": null, "last": "https://api.vantage.sh/v2/workspaces?page=1", "prev": null }, "workspaces": [ { "token": "wrkspc_123445abcde", "name": "Management", "created_at": "2023-10-01T01:00:56Z", "enable_currency_conversion": false, "currency": "USD", "exchange_rate_date": "daily_rate" }, { "token": "wrkspc_5678fghijk", "name": "Marketing", "created_at": "2023-10-01T01:00:56Z", "enable_currency_conversion": false, "currency": "USD", "exchange_rate_date": "daily_rate" } ] } ``` Save the workspace tokens from this response. You'll need them for creating folders and Cost Reports in the next steps. If your account uses multiple workspaces or team-scoped service tokens, choose a workspace that your token can access and use that `workspace_token` consistently in your create requests. ## Step 2: Create an Organized Folder Structure Create a folder to organize your Cost Reports. This helps maintain a clean structure for your cost management workflows. ```bash theme={null} curl --request POST \ --url https://api.vantage.sh/v2/folders \ --header 'accept: application/json' \ --header 'authorization: Bearer ACCESS_TOKEN' \ --header 'content-type: application/json' \ --data '{ "title": "Team Reports", "workspace_token": "wrkspc_123445abcde" }' ``` Use the workspace token from Step 1. You can also specify a `parent_folder_token` to create nested folder structures. The response includes the new folder's token, which you'll use when creating Cost Reports. ```json theme={null} { "token": "fldr_123456abcde123", "title": "Team Reports", "parent_folder_token": null, "saved_filter_tokens": [], "created_at": "2023-10-09T13:24:33Z", "updated_at": "2023-10-09T13:24:33Z", "workspace_token": "wrkspc_123445abcde" } ``` Save the folder token (`fldr_123456abcde123`). You'll need it in the next step to create your Cost Report. ## Step 3: Create an Intelligent Cost Report This step demonstrates the power of **Vantage Query Language (VQL)**, a flexible query system that lets you filter costs by provider, tags, services, and more. Learn more about [VQL syntax](/vql). Create a VQL-powered Cost Report that automatically filters AWS production costs. ```bash theme={null} curl --request POST \ --url https://api.vantage.sh/v2/cost_reports \ --header 'accept: application/json' \ --header 'authorization: Bearer ' \ --header 'content-type: application/json' \ --data '{ "settings": { "include_credits": false, "include_refunds": false, "include_discounts": true, "include_tax": true, "amortize": true, "unallocated": false, "aggregate_by": "cost", "show_previous_period": true }, "chart_type": "line", "date_bin": "cumulative", "title": "AWS Production Costs", "folder_token": "fldr_123456abcde123", "filter": "costs.provider = 'aws' AND tags.name = 'environment' AND tags.value = 'production'" }' ``` The VQL filter `costs.provider = 'aws' AND tags.name = 'environment' AND tags.value = 'production'` does the following: * **`costs.provider = 'aws'`** - Only includes AWS costs * **`tags.name = 'environment'`** - Filters for resources with an `environment` tag * **`tags.value = 'production'`** - Only includes resources tagged as `production` This creates a focused report showing only your production AWS spending. The response includes the Cost Report token and all configuration details. This token is needed for retrieving cost data in the next step. ```json theme={null} { "token": "rprt_1234a5678b1ab234", "title": "AWS Production Costs", "folder_token": "fldr_123456abcde123", "saved_filter_tokens": [], "filter": "costs.provider = 'aws' AND tags.name = 'environment' AND tags.value = 'production'", "groupings": "provider,service", "settings": { "include_credits": false, "include_refunds": false, "include_discounts": true, "include_tax": true, "amortize": true, "unallocated": false, "aggregate_by": "cost" }, "created_at": "2023-10-09T15:51:48Z", "workspace_token": "wrkspc_123445abcde", "previous_period_start_date": null, "previous_period_end_date": null, "start_date": "2024-07-01", "end_date": "2024-07-31", "date_interval": "this_month", "chart_type": "bar", "date_bin": "day" } ``` Save the report token (`rprt_1234a5678b1ab234`) - you'll use it to retrieve cost data in the next step. ## Step 4: Analyze Your Cost Data Retrieve detailed cost data from your report with flexible filtering and grouping options. This demonstrates how to extract actionable insights from your cost data. ```bash theme={null} curl --request GET \ --url 'https://api.vantage.sh/v2/costs?cost_report_token=rprt_1234a5678b1ab234&start_date=2023-12-01&end_date=2023-12-31&groupings=service&order=desc' \ --header 'accept: application/json' \ --header 'authorization: Bearer ' ``` * **`cost_report_token`** - Uses the report token from Step 3 * **`start_date` & `end_date`** - ISO 8601 date range for filtering * **`groupings=service`** - Groups costs by AWS service (EC2, RDS, etc.) * **`order=desc`** - Sorts by date in descending order (newest first) The response includes pagination links, total cost summary, and detailed cost breakdowns by service. ```json theme={null} { "links": { "self": "https://api.vantage.sh/v2/costs?cost_report_token=rprt_1234a5678b1ab234&start_date=2023-12-01&end_date=2023-12-31&groupings=service&order=desc", "first": "https://api.vantage.sh/v2/costs?cost_report_token=rprt_1234a5678b1ab234&start_date=2023-12-01&end_date=2023-12-31&groupings=service&order=desc&page=1", "next": null, "last": "https://api.vantage.sh/v2/costs?cost_report_token=rprt_1234a5678b1ab234&start_date=2023-12-01&end_date=2023-12-31&groupings=service&order=desc&page=1", "prev": null }, "total_cost": { "amount": "1000.11", "currency": "USD" }, "costs": [ { "accrued_at": "2023-12-31", "amount": "300.05", "currency": "USD", "provider": "aws", "account_id": "123456789012", "service": "AmazonRDS" }, { "accrued_at": "2023-12-28", "amount": "500.03", "currency": "USD", "provider": "aws", "account_id": "123456789012", "service": "AmazonVPC" }, { "accrued_at": "2023-12-24", "amount": "200.03", "currency": "USD", "provider": "aws", "account_id": "123456789012", "service": "AmazonECS" } ] } ``` This data structure is perfect for building cost dashboards, automated alerts, and financial reporting tools. ## Bonus: Retrieve Usage Analytics Beyond cost data, the Vantage API provides detailed usage analytics. This is perfect for understanding resource utilization patterns and optimizing your infrastructure. Retrieve both cost and usage data by setting `aggregate_by=usage`. This provides comprehensive resource utilization insights. ```bash theme={null} curl --request GET \ --url 'https://api.vantage.sh/v2/costs?cost_report_token=rprt_1234a5678b1ab234&order=desc&settings%5Binclude_credits%5D=false&settings%5Binclude_refunds%5D=false&settings%5Binclude_discounts%5D=true&settings%5Binclude_tax%5D=true&settings%5Bamortize%5D=true&settings%5Bunallocated%5D=false&settings%5Baggregate_by%5D=usage' \ --header 'accept: application/json' \ --header 'authorization: Bearer TOKEN' ``` The key parameter here is `settings[aggregate_by]=usage` which switches from cost aggregation to usage aggregation. The response includes both cost and usage data, providing comprehensive insights into your resource utilization patterns. ```json theme={null} { "links": { "self": "https://api.vantage.sh/v2/costs?cost_report_token=rprt_1234a5678b1ab234&start_date=2023-12-01&end_date=2023-12-31&groupings=service&order=desc", "first": "https://api.vantage.sh/v2/costs?cost_report_token=rprt_1234a5678b1ab234&start_date=2023-12-01&end_date=2023-12-31&groupings=service&order=desc&page=1", "next": null, "last": "https://api.vantage.sh/v2/costs?cost_report_token=rprt_1234a5678b1ab234&start_date=2023-12-01&end_date=2023-12-31&groupings=service&order=desc&page=1", "prev": null }, "total_cost": { "amount": "75455.01", "currency": "USD" }, "total_usage": [ { "amount": "0.0", "unit": "" }, { "amount": "147793.33", "unit": "Hrs" }, { "amount": "8929.98", "unit": "Hours" } ], "costs": [ { "accrued_at": "2025-01-06", "amount": "885.4577627912", "currency": "USD", "usage": { "amount": "910.969248694", "unit": "Hrs" }, "provider": "aws", "account_id": "123456789012", "service": "AmazonEC2" }, { "accrued_at": "2025-01-06", "amount": "19.4873999955", "currency": "USD", "usage": { "amount": "142.9999999995", "unit": "Hrs" }, "provider": "aws", "account_id": "123456789012", "service": "AmazonEC2" } ] } ``` This usage data is perfect for building resource optimization tools and capacity planning dashboards. You've successfully built a complete cost management workflow using the Vantage API: * Discovered workspaces and retrieved access tokens * Created organized folders for Cost Report management * Generated intelligent Cost Reports using VQL filtering * Analyzed cost data with flexible grouping and filtering * Retrieved usage analytics for resource optimization # Rate Limiting Source: https://docs.vantage.sh/api/rate_limiting Understand the rate limiting policies for the Vantage API to ensure optimal usage and avoid interruptions. API calls are rate limited to prevent bursts of incoming traffic to help maximize stability. These limits are account-wide rather than per-user restrictions, meaning all API activity within your Vantage account contributes to these thresholds. These limits include a general rate limit of 1,000 requests per hour across all API endpoints, and a more restrictive limit of 5 requests per 5 seconds, specifically for Cost Report endpoints. If a client is rate limited, the API will return a `429` status code. If you need higher rate limits, contact [support@vantage.sh](mailto:support@vantage.sh). Three headers are returned with every API response that indicate how close the client is to being rate limited and when the limit will reset. | Header | Description | | - | - | | `x-rate-limit-limit` | The total limit for the given period of time. | | `x-rate-limit-remaining` | The number of requests remaining in the current rate limit window. | | `x-rate-limit-reset` | The time at which the current rate limit window resets to the value in `x-rate-limit-limit`, provided in [Unix time](https://en.wikipedia.org/wiki/Unix_time). | **Example:** ```bash theme={null} x-rate-limit-limit: 1000 x-rate-limit-remaining: 995 x-rate-limit-reset: 1619380800 ``` # Get all recommendations Source: https://docs.vantage.sh/api/recommendations/get-all-recommendations https://api.vantage.sh/v2/oas_v3.json get /recommendations 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). # Get all resources for a recommendation Source: https://docs.vantage.sh/api/recommendations/get-all-resources-for-a-recommendation https://api.vantage.sh/v2/oas_v3.json get /recommendations/{recommendation_token}/resources Return all Active Resources, including Recommendation Actions, referenced in this Recommendation. # Get all resources for a recommendation type Source: https://docs.vantage.sh/api/recommendations/get-all-resources-for-a-recommendation-type https://api.vantage.sh/v2/oas_v3.json get /recommendations/by_type/{type}/resources Return all Active Resources associated with recommendations of the specified type. # Get recommendation by token Source: https://docs.vantage.sh/api/recommendations/get-recommendation-by-token https://api.vantage.sh/v2/oas_v3.json get /recommendations/{recommendation_token} Return a Recommendation. # Get specific resource for a recommendation Source: https://docs.vantage.sh/api/recommendations/get-specific-resource-for-a-recommendation https://api.vantage.sh/v2/oas_v3.json get /recommendations/{recommendation_token}/resources/{resource_token} Return an Active Resource, including Recommendation Actions, referenced in this Recommendation. # Create recommendation view Source: https://docs.vantage.sh/api/recommendationviews/create-recommendation-view https://api.vantage.sh/v2/oas_v3.json post /recommendation_views Create a RecommendationView. # Delete recommendation view Source: https://docs.vantage.sh/api/recommendationviews/delete-recommendation-view https://api.vantage.sh/v2/oas_v3.json delete /recommendation_views/{recommendation_view_token} Delete a RecommendationView. # Get all recommendation views Source: https://docs.vantage.sh/api/recommendationviews/get-all-recommendation-views https://api.vantage.sh/v2/oas_v3.json get /recommendation_views Return all RecommendationViews. # Get recommendation view by token Source: https://docs.vantage.sh/api/recommendationviews/get-recommendation-view-by-token https://api.vantage.sh/v2/oas_v3.json get /recommendation_views/{recommendation_view_token} Return a specific RecommendationView. # Update recommendation view Source: https://docs.vantage.sh/api/recommendationviews/update-recommendation-view https://api.vantage.sh/v2/oas_v3.json put /recommendation_views/{recommendation_view_token} Update a RecommendationView. # Create report forecast Source: https://docs.vantage.sh/api/reportforecasts/create-report-forecast https://api.vantage.sh/v2/oas_v3.json post /report_forecasts Create a scenario-model ReportForecast. # Delete report forecast Source: https://docs.vantage.sh/api/reportforecasts/delete-report-forecast https://api.vantage.sh/v2/oas_v3.json delete /report_forecasts/{report_forecast_token} Delete a scenario-model ReportForecast. # Get all report forecasts Source: https://docs.vantage.sh/api/reportforecasts/get-all-report-forecasts https://api.vantage.sh/v2/oas_v3.json get /report_forecasts Return all scenario-model ReportForecasts for a CostReport. # Get report forecast by token Source: https://docs.vantage.sh/api/reportforecasts/get-report-forecast-by-token https://api.vantage.sh/v2/oas_v3.json get /report_forecasts/{report_forecast_token} Return a scenario-model ReportForecast. # Update report forecast Source: https://docs.vantage.sh/api/reportforecasts/update-report-forecast https://api.vantage.sh/v2/oas_v3.json put /report_forecasts/{report_forecast_token} Update a scenario-model ReportForecast. # Create report notification Source: https://docs.vantage.sh/api/reportnotifications/create-report-notification https://api.vantage.sh/v2/oas_v3.json post /report_notifications Create a ReportNotification. # Delete report notification Source: https://docs.vantage.sh/api/reportnotifications/delete-report-notification https://api.vantage.sh/v2/oas_v3.json delete /report_notifications/{report_notification_token} Delete a ReportNotification. # Get all report notifications Source: https://docs.vantage.sh/api/reportnotifications/get-all-report-notifications https://api.vantage.sh/v2/oas_v3.json get /report_notifications Return all ReportNotifications. # Get report notification by token Source: https://docs.vantage.sh/api/reportnotifications/get-report-notification-by-token https://api.vantage.sh/v2/oas_v3.json get /report_notifications/{report_notification_token} Return a ReportNotification. # Update report notification Source: https://docs.vantage.sh/api/reportnotifications/update-report-notification https://api.vantage.sh/v2/oas_v3.json put /report_notifications/{report_notification_token} Update a ReportNotification. # Create resource report Source: https://docs.vantage.sh/api/resourcereports/create-resource-report https://api.vantage.sh/v2/oas_v3.json post /resource_reports Create a ResourceReport. # Delete resource report Source: https://docs.vantage.sh/api/resourcereports/delete-resource-report https://api.vantage.sh/v2/oas_v3.json delete /resource_reports/{resource_report_token} Delete a ResourceReport. # Get all resource reports Source: https://docs.vantage.sh/api/resourcereports/get-all-resource-reports https://api.vantage.sh/v2/oas_v3.json get /resource_reports Return all ResourceReports. # Get resource report by token Source: https://docs.vantage.sh/api/resourcereports/get-resource-report-by-token https://api.vantage.sh/v2/oas_v3.json get /resource_reports/{resource_report_token} Return a ResourceReport. # Get resource report columns Source: https://docs.vantage.sh/api/resourcereports/get-resource-report-columns https://api.vantage.sh/v2/oas_v3.json get /resource_reports/columns List available columns for a resource type. # Update resource report Source: https://docs.vantage.sh/api/resourcereports/update-resource-report https://api.vantage.sh/v2/oas_v3.json put /resource_reports/{resource_report_token} Update a ResourceReport. # Get resource by token Source: https://docs.vantage.sh/api/resources/get-resource-by-token https://api.vantage.sh/v2/oas_v3.json get /resources/{resource_token} Return a single Resource # Get resources Source: https://docs.vantage.sh/api/resources/get-resources https://api.vantage.sh/v2/oas_v3.json get /resources Return Resources contained in a ResourceReport # Create saved filter Source: https://docs.vantage.sh/api/savedfilters/create-saved-filter https://api.vantage.sh/v2/oas_v3.json post /saved_filters Create a SavedFilter for CostReports. # Delete saved filter Source: https://docs.vantage.sh/api/savedfilters/delete-saved-filter https://api.vantage.sh/v2/oas_v3.json delete /saved_filters/{saved_filter_token} Delete a SavedFilter for CostReports. # Get all saved filters Source: https://docs.vantage.sh/api/savedfilters/get-all-saved-filters https://api.vantage.sh/v2/oas_v3.json get /saved_filters Return all SavedFilters that can be applied to a CostReport. # Get saved filter by token Source: https://docs.vantage.sh/api/savedfilters/get-saved-filter-by-token https://api.vantage.sh/v2/oas_v3.json get /saved_filters/{saved_filter_token} Return a specific SavedFilter. # Update saved filter Source: https://docs.vantage.sh/api/savedfilters/update-saved-filter https://api.vantage.sh/v2/oas_v3.json put /saved_filters/{saved_filter_token} Update a SavedFilter for CostReports. # Create scenario model Source: https://docs.vantage.sh/api/scenariomodels/create-scenario-model https://api.vantage.sh/v2/oas_v3.json post /scenario_models Create a ScenarioModel. # Delete scenario model Source: https://docs.vantage.sh/api/scenariomodels/delete-scenario-model https://api.vantage.sh/v2/oas_v3.json delete /scenario_models/{scenario_model_token} Delete a ScenarioModel. # Get all scenario models Source: https://docs.vantage.sh/api/scenariomodels/get-all-scenario-models https://api.vantage.sh/v2/oas_v3.json get /scenario_models Return all ScenarioModels. # Get scenario model by token Source: https://docs.vantage.sh/api/scenariomodels/get-scenario-model-by-token https://api.vantage.sh/v2/oas_v3.json get /scenario_models/{scenario_model_token} Return a ScenarioModel. # Update scenario model Source: https://docs.vantage.sh/api/scenariomodels/update-scenario-model https://api.vantage.sh/v2/oas_v3.json put /scenario_models/{scenario_model_token} Update a ScenarioModel. # Create segment Source: https://docs.vantage.sh/api/segments/create-segment https://api.vantage.sh/v2/oas_v3.json post /segments Create a Segment. # Delete segment Source: https://docs.vantage.sh/api/segments/delete-segment https://api.vantage.sh/v2/oas_v3.json delete /segments/{segment_token} Delete a Segment. # Get all segments Source: https://docs.vantage.sh/api/segments/get-all-segments https://api.vantage.sh/v2/oas_v3.json get /segments Return all Segments. # Get segment by token Source: https://docs.vantage.sh/api/segments/get-segment-by-token https://api.vantage.sh/v2/oas_v3.json get /segments/{segment_token} Return a Segment. # Update segment Source: https://docs.vantage.sh/api/segments/update-segment https://api.vantage.sh/v2/oas_v3.json put /segments/{segment_token} Update a Segment. # Get all tags Source: https://docs.vantage.sh/api/tags/get-all-tags https://api.vantage.sh/v2/oas_v3.json get /tags Return all Tags that the current API token has access to. # Get tag values Source: https://docs.vantage.sh/api/tags/get-tag-values https://api.vantage.sh/v2/oas_v3.json get /tags/{key}/values Returns corresponding TagValues for a given Tag. # Update tag Source: https://docs.vantage.sh/api/tags/update-tag https://api.vantage.sh/v2/oas_v3.json put /tags Updates an existing Tag. # Add team member Source: https://docs.vantage.sh/api/teams/add-team-member https://api.vantage.sh/v2/oas_v3.json post /teams/{team_token}/members Add a member to a Team. # Create team Source: https://docs.vantage.sh/api/teams/create-team https://api.vantage.sh/v2/oas_v3.json post /teams Create a new Team. # Delete team Source: https://docs.vantage.sh/api/teams/delete-team https://api.vantage.sh/v2/oas_v3.json delete /teams/{team_token} Delete a Team. # Get all teams Source: https://docs.vantage.sh/api/teams/get-all-teams https://api.vantage.sh/v2/oas_v3.json get /teams Return all Teams that the current API token has access to. # Get team by token Source: https://docs.vantage.sh/api/teams/get-team-by-token https://api.vantage.sh/v2/oas_v3.json get /teams/{team_token} Return a specific Team. # Get team members Source: https://docs.vantage.sh/api/teams/get-team-members https://api.vantage.sh/v2/oas_v3.json get /teams/{team_token}/members Return all members of a Team. # Remove team member Source: https://docs.vantage.sh/api/teams/remove-team-member https://api.vantage.sh/v2/oas_v3.json delete /teams/{team_token}/members/{user_token} Remove a member from a Team. # Update team Source: https://docs.vantage.sh/api/teams/update-team https://api.vantage.sh/v2/oas_v3.json put /teams/{team_token} Update a Team. # Generate data export of unit costs Source: https://docs.vantage.sh/api/unitcosts/generate-data-export-of-unit-costs https://api.vantage.sh/v2/oas_v3.json post /unit_costs/data_exports Generate a DataExport of unit costs. # Get all unit costs for a cost report Source: https://docs.vantage.sh/api/unitcosts/get-all-unit-costs-for-a-cost-report https://api.vantage.sh/v2/oas_v3.json get /unit_costs Return all UnitCosts for a CostReport. # Submit user feedback Source: https://docs.vantage.sh/api/userfeedback/submit-user-feedback https://api.vantage.sh/v2/oas_v3.json post /user_feedback Provide UserFeedback for our product and features. # Get all users Source: https://docs.vantage.sh/api/users/get-all-users https://api.vantage.sh/v2/oas_v3.json get /users Return all Users that the current API token has access to. # Get user by token Source: https://docs.vantage.sh/api/users/get-user-by-token https://api.vantage.sh/v2/oas_v3.json get /users/{user_token} Return a specific User. # Update a user Source: https://docs.vantage.sh/api/users/update-a-user https://api.vantage.sh/v2/oas_v3.json put /users/{user_token} Update a specific User. # Vantage API Reference Source: https://docs.vantage.sh/api/vantage_api_reference Complete reference of all Vantage API endpoints. This page is auto-generated from the OpenAPI specification. This page is auto-generated from the [OpenAPI specification](https://api.vantage.sh/v2/oas_v3.json). For interactive testing and detailed schemas, visit the individual endpoint pages linked below. ## AccessGrants ### GET /access\_grants **Get all access grants** Return all Access Grants that the current API token has access to. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/accessgrants/get-all-access-grants](https://docs.vantage.sh/api/accessgrants/get-all-access-grants) *** ### POST /access\_grants **Create access grant** Create an Access Grant. #### Request Body ```json theme={null} { "resource_token": string // required // The token of the resource for which you are granting access, "team_token": string // required // The token of the Team you want to grant access to, "access": string // The access level you want to grant. Defaults to 'allowed'. Allowed values: `denied`, `allowed` } ``` #### Responses **201**: Created **400**: BadRequest **403**: Forbidden **404**: NotFound **406**: NotAcceptable **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/accessgrants/create-access-grant](https://docs.vantage.sh/api/accessgrants/create-access-grant) *** ### DELETE /access\_grants/ **Delete access grant** Delete an Access Grant. #### Path Parameters * **access\_grant\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/accessgrants/delete-access-grant](https://docs.vantage.sh/api/accessgrants/delete-access-grant) *** ### GET /access\_grants/ **Get access grant by token** Return a specific Access Grant. #### Path Parameters * **access\_grant\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/accessgrants/get-access-grant-by-token](https://docs.vantage.sh/api/accessgrants/get-access-grant-by-token) *** ### PUT /access\_grants/ **Update access grant** Update an AccessGrant. #### Path Parameters * **access\_grant\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "access": string // required // Allowed or denied access to resource. Allowed values: `denied`, `allowed` } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/accessgrants/update-access-grant](https://docs.vantage.sh/api/accessgrants/update-access-grant) *** ## AccessPolicies ### GET /access\_policies **Get all access policies** Return all Access Policies for the current account. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. #### Responses **200**: OK **403**: Forbidden For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/accesspolicies/get-all-access-policies](https://docs.vantage.sh/api/accesspolicies/get-all-access-policies) *** ### POST /access\_policies **Create access policy** Create an Access Policy. #### Request Body ```json theme={null} { "title": string // required // The title of the AccessPolicy, "policy": { // required // The AccessPolicy definition as a v1 document with vantage.* VQL "api_version": string // required // The AccessPolicy document version. Allowed values: `v1`, "policy": { // required // The AccessPolicy rules for this version "filter": string // required // Vantage Query Language (VQL) that controls which costs this AccessPolicy allows } }, "description": string // The description of the AccessPolicy, "team_tokens": [string] // The tokens for Teams this AccessPolicy is assigned to } ``` #### Responses **201**: Created **400**: BadRequest **403**: Forbidden **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/accesspolicies/create-access-policy](https://docs.vantage.sh/api/accesspolicies/create-access-policy) *** ### DELETE /access\_policies/ **Delete access policy** Delete an Access Policy. #### Path Parameters * **access\_policy\_token** (path) (string) - **Required** #### Responses **204**: No Content **403**: Forbidden **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/accesspolicies/delete-access-policy](https://docs.vantage.sh/api/accesspolicies/delete-access-policy) *** ### PUT /access\_policies/ **Update access policy** Update an Access Policy. #### Path Parameters * **access\_policy\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string // The title of the AccessPolicy, "policy": { // The AccessPolicy definition as a v1 document with vantage.* VQL "api_version": string // required // The AccessPolicy document version. Allowed values: `v1`, "policy": { // required // The AccessPolicy rules for this version "filter": string // required // Vantage Query Language (VQL) that controls which costs this AccessPolicy allows } }, "description": string // The description of the AccessPolicy, "team_tokens": [string] // The tokens for Teams this AccessPolicy is assigned to } ``` #### Responses **200**: OK **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/accesspolicies/update-access-policy](https://docs.vantage.sh/api/accesspolicies/update-access-policy) *** ## Annotations ### GET /annotations **Get all annotations** Return all Annotations. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The number of results to return. The maximum is 5000. * **report\_token** (string) - Optional: Filter by Report token. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/annotations/get-all-annotations](https://docs.vantage.sh/api/annotations/get-all-annotations) *** ### POST /annotations **Create an annotation** Create an Annotation. #### Request Body ```json theme={null} { "report_tokens": [string] // required // The tokens of the Reports to annotate, "title": string // The title of the Annotation. Defaults to a title generated from the first Report and date, "date": string // required // The date of the Annotation. ISO 8601 formatted, "message": string // required // The message of the Annotation } ``` #### Responses **201**: Annotation created successfully. **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/annotations/create-an-annotation](https://docs.vantage.sh/api/annotations/create-an-annotation) *** ### DELETE /annotations/ **Delete an annotation** Delete an Annotation. #### Path Parameters * **annotation\_token** (path) (string) - **Required**: The token of the Annotation. #### Responses **204**: Annotation deleted successfully. **403**: Forbidden **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/annotations/delete-an-annotation](https://docs.vantage.sh/api/annotations/delete-an-annotation) *** ### PUT /annotations/ **Update an annotation** Update an Annotation. #### Path Parameters * **annotation\_token** (path) (string) - **Required**: The token of the Annotation. #### Request Body ```json theme={null} { "title": string // The title of the Annotation, "date": string // The date of the Annotation. ISO 8601 formatted, "message": string // The message of the Annotation, "report_tokens": [string] // The tokens of the Reports to associate with the Annotation } ``` #### Responses **200**: Annotation updated successfully. **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/annotations/update-an-annotation](https://docs.vantage.sh/api/annotations/update-an-annotation) *** ## AnomalyAlerts ### GET /anomaly\_alerts **Get all anomaly alerts** Return all Anomaly Alerts that the current API token has access to. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **start\_date** (string (date-time)) - Optional: The start date of the anomalies to return. ISO 8601 formatted. * **end\_date** (string (date-time)) - Optional: The end date of the anomalies to return. ISO 8601 formatted. * **provider** (string) - Optional: The provider of the anomalies to return. * **service** (string) - Optional: The service of the anomalies to return. * **cost\_category** (string) - Optional: The cost category of the anomalies to return. * **cost\_report\_token** (string) - Optional: The cost report token of the anomalies to return. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/anomalyalerts/get-all-anomaly-alerts](https://docs.vantage.sh/api/anomalyalerts/get-all-anomaly-alerts) *** ### GET /anomaly\_alerts/ **Get anomaly alert by token** Return an AnomalyAlert that the current API token has access to. #### Path Parameters * **anomaly\_alert\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/anomalyalerts/get-anomaly-alert-by-token](https://docs.vantage.sh/api/anomalyalerts/get-anomaly-alert-by-token) *** ### PUT /anomaly\_alerts/ **Update anomaly alert** Update an AnomalyAlert. #### Path Parameters * **anomaly\_alert\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "status": string // required // The status of the Anomaly Alert, "feedback": string // Optional additional comments for why this alert is ignored } ``` #### Responses **200**: OK **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/anomalyalerts/update-anomaly-alert](https://docs.vantage.sh/api/anomalyalerts/update-anomaly-alert) *** ## AnomalyNotifications ### GET /anomaly\_notifications **Get all anomaly notifications** Return all Anomaly Notifications. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **workspace\_token** (string) - Optional: Filter by workspace token. * **cost\_report\_token** (string) - Optional: Filter by Cost Report token. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/anomalynotifications/get-all-anomaly-notifications](https://docs.vantage.sh/api/anomalynotifications/get-all-anomaly-notifications) *** ### POST /anomaly\_notifications **Create anomaly notification** Create an Anomaly Notification for a Cost Report. #### Request Body ```json theme={null} { "cost_report_token": string // required // The token of the Cost Report that has the notification, "threshold": integer // The threshold amount that must be met for the notification to fire, "user_tokens": [string] // The tokens of the Users that receive the notification, "recipient_emails": [string] // Email addresses that receive the notification. Must be organization users, on the account's SSO domain, or an approved third-party service address, "recipient_channels": [string] // The Slack/MS Teams channels that receive the notification } ``` #### Responses **201**: Created **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/anomalynotifications/create-anomaly-notification](https://docs.vantage.sh/api/anomalynotifications/create-anomaly-notification) *** ### DELETE /anomaly\_notifications/ **Delete anomaly notification** Delete an Anomaly Notification. #### Path Parameters * **anomaly\_notification\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/anomalynotifications/delete-anomaly-notification](https://docs.vantage.sh/api/anomalynotifications/delete-anomaly-notification) *** ### GET /anomaly\_notifications/ **Get anomaly notification by token** Return an Anomaly Notification that the current API token has access to. #### Path Parameters * **anomaly\_notification\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/anomalynotifications/get-anomaly-notification-by-token](https://docs.vantage.sh/api/anomalynotifications/get-anomaly-notification-by-token) *** ### PUT /anomaly\_notifications/ **Update anomaly notification** Update an Anomaly Notification. #### Path Parameters * **anomaly\_notification\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "threshold": integer // The threshold amount that must be met for the notification to fire, "user_tokens": [string] // The tokens of the users that receive the notification, "recipient_emails": [string] // Email addresses that receive the notification. Must be organization users, on the account's SSO domain, or an approved third-party service address, "recipient_channels": [string] // The Slack/MS Teams channels that receive the notification } ``` #### Responses **200**: OK **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/anomalynotifications/update-anomaly-notification](https://docs.vantage.sh/api/anomalynotifications/update-anomaly-notification) *** ## AuditLogs ### GET /audit\_logs **Get all audit logs** Return all AuditLogs. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. Defaults to 100. The maximum is 5000. * **user** (integer (int32)) - Optional: Filter by personal or service API token that performed the action. * **workspace\_token** (string) - Optional: Filter by workspace token. * **action** (string) - Optional: Filter by action type. * Allowed values: `create`, `update`, `delete` * **object\_name** (string) - Optional: Filter by object name. * **source** (string) - Optional: Filter by source. * Allowed values: `console`, `api`, `finops_agent` * **object\_type** (string) - Optional: Filter by object type. * Allowed values: `virtual_tag`, `cost_report`, `recommendation_commitment`, `segment`, `access_policy` * **token** (string) - Optional: Filter by audit log token. * **object\_token** (string) - Optional: Filter by object token (auditable\_token). * **start\_date** (string (date)) - Optional: Filter by start date (ISO 8601 format, e.g., 2024-06-01). * **end\_date** (string (date)) - Optional: Filter by end date (ISO 8601 format, e.g., 2024-06-01). #### Responses **200**: OK **403**: Forbidden For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/auditlogs/get-all-audit-logs](https://docs.vantage.sh/api/auditlogs/get-all-audit-logs) *** ### GET /audit\_logs/ **Get audit log by token** Return a specific AuditLog. #### Path Parameters * **audit\_log\_token** (path) (string) - **Required** #### Responses **200**: OK **403**: Forbidden **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/auditlogs/get-audit-log-by-token](https://docs.vantage.sh/api/auditlogs/get-audit-log-by-token) *** ## BillingProfiles ### GET /billing\_profiles **Get all billing profiles** Returns a list of billing profiles (MSP invoicing required). #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/billingprofiles/get-all-billing-profiles](https://docs.vantage.sh/api/billingprofiles/get-all-billing-profiles) *** ### POST /billing\_profiles **Create billing profile** Create a billing profile (MSP invoicing required). #### Request Body ```json theme={null} { "nickname": string // required // Display name for the billing profile, "billing_information_attributes": { // Billing address and contact information "token": string, "company_name": string // Company name for billing, "country_code": string // ISO country code, "address_line_1": string // First line of billing address, "address_line_2": string // Second line of billing address, "city": string // City for billing address, "state": string // State or province for billing address, "postal_code": string // Postal or ZIP code, "billing_email": [string] // Array of billing email addresses }, "business_information_attributes": { // Business information and custom fields "token": string, "metadata": { // Business metadata including custom fields "custom_fields": [ // Array of custom field objects { "name": string // Custom field name, "value": string // Custom field value } ] } }, "banking_information_attributes": { // Banking details (MSP accounts only) "token": string, "bank_name": string // Name of the bank, "beneficiary_name": string // Name of the account beneficiary, "tax_id": string // Tax identification number, "secure_data": { // Encrypted banking details "account_number": string // Bank account number (US), "routing_number": string // Bank routing number (US), "iban": string // International Bank Account Number (EU), "swift_bic": string // SWIFT/BIC code (EU) } }, "invoice_adjustment_attributes": { // Invoice adjustments (taxes, fees, etc.) "token": string, "adjustment_items": [ // Array of adjustment items { "name": string // required // Name of the adjustment, "adjustment_type": string // Type of adjustment. Allowed values: `charge`, `credit`, `discount`, "calculation_type": string // required // How the adjustment is calculated. Allowed values: `fixed`, `percentage`, "amount": number // required // Amount or percentage value } ] } } ``` #### Responses **201**: Created **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/billingprofiles/create-billing-profile](https://docs.vantage.sh/api/billingprofiles/create-billing-profile) *** ### DELETE /billing\_profiles/ **Delete billing profile** Requires MSP invoicing to be enabled on the account. #### Path Parameters * **billing\_profile\_token** (path) (string) - **Required** #### Responses **204**: Billing Profile deleted successfully. **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/billingprofiles/delete-billing-profile](https://docs.vantage.sh/api/billingprofiles/delete-billing-profile) *** ### GET /billing\_profiles/ **Get billing profile by token** Requires MSP invoicing to be enabled on the account. #### Path Parameters * **billing\_profile\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/billingprofiles/get-billing-profile-by-token](https://docs.vantage.sh/api/billingprofiles/get-billing-profile-by-token) *** ### PUT /billing\_profiles/ **Update billing profile** Requires MSP invoicing to be enabled on the account. #### Path Parameters * **billing\_profile\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "nickname": string // Display name for the billing profile, "billing_information_attributes": { // Billing address and contact information "token": string, "company_name": string // Company name for billing, "country_code": string // ISO country code, "address_line_1": string // First line of billing address, "address_line_2": string // Second line of billing address, "city": string // City for billing address, "state": string // State or province for billing address, "postal_code": string // Postal or ZIP code, "billing_email": [string] // Array of billing email addresses }, "business_information_attributes": { // Business information and custom fields "token": string, "metadata": { // Business metadata including custom fields "custom_fields": [ // Array of custom field objects { "name": string // Custom field name, "value": string // Custom field value } ] } }, "banking_information_attributes": { // Banking details (MSP accounts only) "token": string, "bank_name": string // Name of the bank, "beneficiary_name": string // Name of the account beneficiary, "tax_id": string // Tax identification number, "secure_data": { // Encrypted banking details "account_number": string // Bank account number (US), "routing_number": string // Bank routing number (US), "iban": string // International Bank Account Number (EU), "swift_bic": string // SWIFT/BIC code (EU) } }, "invoice_adjustment_attributes": { // Invoice adjustments (taxes, fees, etc.) "token": string, "adjustment_items": [ // Array of adjustment items { "name": string // required // Name of the adjustment, "adjustment_type": string // Type of adjustment. Allowed values: `charge`, `credit`, `discount`, "calculation_type": string // required // How the adjustment is calculated. Allowed values: `fixed`, `percentage`, "amount": number // required // Amount or percentage value } ] } } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/billingprofiles/update-billing-profile](https://docs.vantage.sh/api/billingprofiles/update-billing-profile) *** ## BillingRules ### GET /billing\_rules **Get all billing rules** Returns a list of billing rules. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/billingrules/get-all-billing-rules](https://docs.vantage.sh/api/billingrules/get-all-billing-rules) *** ### POST /billing\_rules **Create billing rule** Create a BillingRule. #### Request Body ```json theme={null} { "type": string // required // The type of the BillingRule. Note: the values are case insensitive. Allowed values: `exclusion`, `adjustment`, `credit`, `charge`, `custom`, "title": string // required // The title of the BillingRule, "start_period": string // The start period of the BillingRule. DEPRECATED: use start_date instead, "start_date": string // The start date of the BillingRule. ISO 8601 formatted, "end_date": string // The end date of the BillingRule. ISO 8601 formatted, "apply_to_all": boolean // Determines if the BillingRule applies to all current and future managed accounts, "charge_type": string // The charge type of the BillingRule. Required for Exclusion rules, "percentage": number // The percentage of the cost shown. Required for Adjustment rules. Example value: 75.0, "service": string // The service of the BillingRule. Required for Charge and Credit rules, "category": string // The category of the BillingRule. Required for Charge and Credit rules, "sub_category": string // The subcategory of the BillingRule. Required for Charge and Credit rules, "amount": number // The amount for the BillingRule. Required for Charge and Credit rules. Example value: 300, "sql_query": string // The SQL query for the BillingRule. Required for Custom rules. Example value: UPDATE costs SET costs.amount = costs.amount * 0.95 } ``` #### Responses **201**: Created **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/billingrules/create-billing-rule](https://docs.vantage.sh/api/billingrules/create-billing-rule) *** ### DELETE /billing\_rules/ **Delete billing rule** Delete a BillingRule. #### Path Parameters * **billing\_rule\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/billingrules/delete-billing-rule](https://docs.vantage.sh/api/billingrules/delete-billing-rule) *** ### GET /billing\_rules/ **Get billing rule by token** Return a BillingRule. #### Path Parameters * **billing\_rule\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/billingrules/get-billing-rule-by-token](https://docs.vantage.sh/api/billingrules/get-billing-rule-by-token) *** ### PUT /billing\_rules/ **Update billing rule** Update a BillingRule. #### Path Parameters * **billing\_rule\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string // The title of the BillingRule, "charge_type": string // The charge type of the BillingRule, "percentage": number // The percentage of the cost shown. Example value: 75.0, "service": string // The service of the BillingRule, "category": string // The category of the BillingRule, "sub_category": string // The subcategory of the BillingRule, "start_period": string // The start period of the BillingRule, "amount": number // The credit amount for the BillingRule. Example value: 300, "start_date": string // The start date of the BillingRule. ISO 8601 formatted, "end_date": string // The end date of the BillingRule. ISO 8601 formatted, "apply_to_all": boolean // Determines if the BillingRule applies to all current and future managed accounts, "sql_query": string // The SQL query of the BillingRule } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/billingrules/update-billing-rule](https://docs.vantage.sh/api/billingrules/update-billing-rule) *** ## BudgetAlerts ### GET /budget\_alerts **Get all budget alerts** Return all BudgetAlerts. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The number of results to return. The maximum is 1000. * **workspace\_token** (string) - Optional: Filter by workspace token. * **budget\_token** (string) - Optional: Filter by budget token. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/budgetalerts/get-all-budget-alerts](https://docs.vantage.sh/api/budgetalerts/get-all-budget-alerts) *** ### POST /budget\_alerts **Create budget alert** Create a Budget Alert. #### Request Body ```json theme={null} { "budget_tokens": [string] // required // The tokens of the Budget that has the alert, "threshold": integer // required // The threshold amount that must be met for the alert to fire, "workspace_token": string // The token of the Workspace to add the BudgetAlert to. Required if the API token is associated with multiple Workspaces, "user_tokens": [string] // The tokens of the users that receive the alert, "recipient_emails": [string] // Email addresses that receive the alert. Must be organization users, on the account's SSO domain, or an approved third-party service address, "duration_in_days": string // required // The number of days from the start or end of the month to trigger the alert if the threshold is reached. For the full month, pass an empty value, "period_to_track": string // The period tracked on the alert. Used with duration_in_days to determine the time window of the alert. Defaults to start_of_the_month if not passed. Possible values: start_of_the_month, end_of_the_month, "recipient_channels": [string] // The channels receiving the alerts. Requires an integration provider to be connected } ``` #### Responses **201**: Created **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/budgetalerts/create-budget-alert](https://docs.vantage.sh/api/budgetalerts/create-budget-alert) *** ### DELETE /budget\_alerts/ **Delete budget alert** Delete a BudgetAlert. #### Path Parameters * **budget\_alert\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/budgetalerts/delete-budget-alert](https://docs.vantage.sh/api/budgetalerts/delete-budget-alert) *** ### GET /budget\_alerts/ **Get budget alert by token** Return a BudgetAlert. #### Path Parameters * **budget\_alert\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/budgetalerts/get-budget-alert-by-token](https://docs.vantage.sh/api/budgetalerts/get-budget-alert-by-token) *** ### PUT /budget\_alerts/ **Update budget alert** Updates an existing BudgetAlert. #### Path Parameters * **budget\_alert\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "budget_tokens": [string] // The tokens of the Budget that has the alert, "threshold": integer // The threshold amount that must be met for the alert to fire, "workspace_token": string // The token of the Workspace the BudgetAlert belongs to. Required if the API token is associated with multiple Workspaces, "user_tokens": [string] // The tokens of the users that receive the alert, "recipient_emails": [string] // Email addresses that receive the alert. Must be organization users, on the account's SSO domain, or an approved third-party service address, "duration_in_days": string // The number of days from the start or end of the month to trigger the alert if the threshold is reached. For the full month, pass an empty value, "period_to_track": string // The period tracked on the alert. Used with duration_in_days to determine the time window of the alert. Defaults to start_of_the_month if not passed. Possible values: start_of_the_month, end_of_the_month, "recipient_channels": [string] // The channels receiving the alerts. Requires an integration provider to be connected } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/budgetalerts/update-budget-alert](https://docs.vantage.sh/api/budgetalerts/update-budget-alert) *** ## Budgets ### GET /budgets **Get all budgets** Return all Budgets. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The number of results to return. The maximum is 1000. * **q** (string) - Optional: Search budgets by name. * **workspace\_token** (string) - Optional: The workspace token of the budgets to return. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/budgets/get-all-budgets](https://docs.vantage.sh/api/budgets/get-all-budgets) *** ### POST /budgets **Create budget** Create a Budget. #### Request Body ```json theme={null} { "name": string // required // The name of the Budget, "workspace_token": string // The token of the Workspace to add the Budget to, "cost_report_token": string // The CostReport token. Ignored for hierarchical Budgets, "type": string // The type of Budget. One of: cost, usage. Allowed values: `cost`, `usage`, "unit": string // The usage unit for usage Budgets, "child_budget_tokens": [string] // The tokens of any child Budgets when creating a hierarchical Budget. Child budgets must share the same current period dates, "period_cadence": { // The interval cadence for budget periods "starts_at": string // required // The anchor date for budget period intervals. Send null to clear, "interval_count": integer // The number of interval units per budget period, "interval_unit": string // The unit for budget period intervals. One of: day, week, month, year. Allowed values: `day`, `week`, `month`, `year` }, "periods": [ // The periods for the Budget. The start_at and end_at must be iso8601 formatted e.g. YYYY-MM-DD. Ignored for hierarchical Budgets { "start_at": string // required // The start date of the period, "end_at": string // The end date of the period, "amount": number // required // The amount of the period } ] } ``` #### Responses **201**: Created **400**: BadRequest **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/budgets/create-budget](https://docs.vantage.sh/api/budgets/create-budget) *** ### DELETE /budgets/ **Delete budget** Delete a Budget. #### Path Parameters * **budget\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/budgets/delete-budget](https://docs.vantage.sh/api/budgets/delete-budget) *** ### GET /budgets/ **Get budget by token** Return a Budget. #### Path Parameters * **budget\_token** (path) (string) - **Required** #### Query Parameters * **include\_performance** (boolean) - Optional: Include performance data. #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/budgets/get-budget-by-token](https://docs.vantage.sh/api/budgets/get-budget-by-token) *** ### PUT /budgets/ **Update budget** Update a Budget. #### Path Parameters * **budget\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "name": string // The name of the Budget, "cost_report_token": string // The CostReport token. Ignored for hierarchical Budgets, "type": string // The type of Budget. One of: cost, usage. Allowed values: `cost`, `usage`, "unit": string // The usage unit for usage Budgets. Send null to clear, "child_budget_tokens": [string] // The tokens of any child Budgets when creating a hierarchical Budget. Child budgets must share the same current period dates. Omitted on update to leave the current child list unchanged, "period_cadence": { // The interval cadence for budget periods. Changing cadence after creation is rejected "starts_at": string // required // The anchor date for budget period intervals. Send null to clear, "interval_count": integer // The number of interval units per budget period, "interval_unit": string // The unit for budget period intervals. One of: day, week, month, year. Allowed values: `day`, `week`, `month`, `year` }, "periods": [ // The periods for the Budget. The start_at and end_at must be iso8601 formatted e.g. YYYY-MM-DD. Ignored for hierarchical Budgets { "start_at": string // required // The start date of the period, "end_at": string // The end date of the period, "amount": number // required // The amount of the period } ] } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/budgets/update-budget](https://docs.vantage.sh/api/budgets/update-budget) *** ## BusinessMetrics ### GET /business\_metrics **Get all business metrics** Return all BusinessMetrics that the current API token has access to. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 5000. * **q** (string) - Optional: Search business metrics by title. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/businessmetrics/get-all-business-metrics](https://docs.vantage.sh/api/businessmetrics/get-all-business-metrics) *** ### POST /business\_metrics **Create business metric** Create a new BusinessMetric. #### Request Body ```json theme={null} { "title": string // required // The title of the BusinessMetrics, "cost_report_tokens_with_metadata": [ // The tokens for any CostReports that use the BusinessMetric, the unit scale, and label filter { "cost_report_token": string // required // The token of the CostReport the BusinessMetric is attached to, "unit_scale": string // Determines the scale of the BusinessMetric's values within the CostReport. Allowed values: `per_unit`, `per_hundred`, `per_thousand`, `per_million`, `per_billion`, "calculation_type": string // The calculation type applied when this BusinessMetric is used in the CostReport. Allowed values: `unit_cost`, `gross_margin`, `usage_unit_cost`, `raw_business_metric`, "label": string // Optional custom display name for this BusinessMetric on the CostReport. When omitted, a default is derived from the calculation type, "label_filter": [string] // Include only values with these labels in the CostReport, "label_filters": object // Include only ClickHouse BusinessMetric values matching every label key and one of its values } ], "values": [ // The dates, amounts, and (optional) labels for the BusinessMetric { "date": string // required, "amount": number // required, "label": string } ], "forecasted_values": [ // The dates, amounts, and (optional) labels for forecasted BusinessMetric values { "date": string // required, "amount": number // required, "label": string } ], "datadog_metric_fields": { // Datadog metric configuration fields "integration_token": string // Integration token for the account from which you would like to fetch metrics, "query": string // Datadog metrics query string. e.g. sum:aws.applicationelb.request_count{region:us-east-1}.rollup(avg,daily) }, "cloudwatch_fields": { // Cloudwatch configuration fields "integration_token": string // Integration token for the account from which you would like to fetch metrics, "stat": string, "region": string, "namespace": string, "metric_name": string, "label_dimension": string, "dimensions": [ { "name": string, "value": string } ] }, "gcp_bigquery_metric_fields": { // GCP BigQuery metric configuration fields "integration_token": string // Integration token for the GCP integration from which you would like to fetch metrics, "query_project_id": string // GCP project in which the BigQuery job should run, "sql_query": string // BigQuery SQL query returning date, value, and optional label columns }, "snowflake_metric_fields": { // Snowflake metric configuration fields "integration_token": string // Integration token for the Snowflake integration from which you would like to fetch metrics, "sql_query": string // Snowflake SQL query returning date, value, and optional label columns }, "clickhouse_metric_fields": { // ClickHouse metric configuration fields "integration_token": string // Integration token for the ClickHouse integration from which you would like to fetch metrics, "query_endpoint_id": string // UUID of the ClickHouse query endpoint used to fetch metrics } } ``` #### Responses **201**: Created **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/businessmetrics/create-business-metric](https://docs.vantage.sh/api/businessmetrics/create-business-metric) *** ### DELETE /business\_metrics/ **Delete business metric** Deletes an existing BusinessMetric. #### Path Parameters * **business\_metric\_token** (path) (string) - **Required** #### Responses **204**: No Content **403**: Forbidden **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/businessmetrics/delete-business-metric](https://docs.vantage.sh/api/businessmetrics/delete-business-metric) *** ### GET /business\_metrics/ **Get business metric by token** Return a BusinessMetric. #### Path Parameters * **business\_metric\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/businessmetrics/get-business-metric-by-token](https://docs.vantage.sh/api/businessmetrics/get-business-metric-by-token) *** ### PUT /business\_metrics/ **Update business metric** Updates an existing BusinessMetric. #### Path Parameters * **business\_metric\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string // The title of the BusinessMetric, "cost_report_tokens_with_metadata": [ // The tokens for any CostReports that use the BusinessMetric, and the unit scale { "cost_report_token": string // required // The token of the CostReport the BusinessMetric is attached to, "unit_scale": string // Determines the scale of the BusinessMetric's values within the CostReport. Allowed values: `per_unit`, `per_hundred`, `per_thousand`, `per_million`, `per_billion`, "calculation_type": string // The calculation type applied when this BusinessMetric is used in the CostReport. Allowed values: `unit_cost`, `gross_margin`, `usage_unit_cost`, `raw_business_metric`, "label": string // Optional custom display name for this BusinessMetric on the CostReport. When omitted, a default is derived from the calculation type, "label_filter": [string] // Include only values with these labels in the CostReport, "label_filters": object // Include only ClickHouse BusinessMetric values matching every label key and one of its values } ], "values": [ // The dates, amounts, and (optional) labels for the BusinessMetric { "date": string // required, "amount": number // required, "label": string } ], "forecasted_values": [ // The dates, amounts, and (optional) labels for forecasted BusinessMetric values { "date": string // required, "amount": number // required, "label": string } ], "datadog_metric_fields": { // Datadog metric configuration fields "integration_token": string // Integration token for the account from which you would like to fetch metrics, "query": string // Datadog metrics query string. e.g. sum:aws.applicationelb.request_count{region:us-east-1}.rollup(avg,daily) }, "cloudwatch_fields": { // Cloudwatch configuration fields "integration_token": string // Integration token for the account from which you would like to fetch metrics, "stat": string, "region": string, "namespace": string, "metric_name": string, "label_dimension": string, "dimensions": [ { "name": string, "value": string } ] }, "snowflake_metric_fields": { // Snowflake metric configuration fields "integration_token": string // Integration token for the Snowflake integration from which you would like to fetch metrics, "sql_query": string // Snowflake SQL query returning date, value, and optional label columns } } ``` #### Responses **200**: OK **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/businessmetrics/update-business-metric](https://docs.vantage.sh/api/businessmetrics/update-business-metric) *** ### GET /business\_metrics//forecasted\_values **Get business metric forecasted values** Return forecasted values of a BusinessMetric #### Path Parameters * **business\_metric\_token** (path) (string) - **Required** #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 5000. * **start\_date** (string (date)) - Optional: Query BusinessMetrics by the first date you would like to filter from. ISO 8601 Formatted - 2021-07-15 #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/businessmetrics/get-business-metric-forecasted-values](https://docs.vantage.sh/api/businessmetrics/get-business-metric-forecasted-values) *** ### GET /business\_metrics//labels **Get business metric labels** Return labels of a BusinessMetric. #### Path Parameters * **business\_metric\_token** (path) (string) - **Required** #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * Default: `1` * **limit** (integer (int32)) - Optional: The number of results to return per page. Defaults to 1000. The maximum is 5000. * Default: `1000` #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/businessmetrics/get-business-metric-labels](https://docs.vantage.sh/api/businessmetrics/get-business-metric-labels) *** ### DELETE /business\_metrics//values **Delete business metric values** Deletes Business Metric values (historical or forecasted unit metrics). BusinessMetrics whose values are stored in ClickHouse only support deleting every historical value or every forecasted value, so supplying start\_date, end\_date, or label returns 422. #### Path Parameters * **business\_metric\_token** (path) (string) - **Required** #### Query Parameters * **start\_date** (string) - Optional: Inclusive lower bound (ISO 8601 date or datetime, UTC). Date-only values start at 00:00:00 UTC that day. * **end\_date** (string) - Optional: Inclusive upper bound (ISO 8601 date or datetime, UTC). Date-only values include the full calendar day through 23:59:59.999999999 UTC. * **label** (string) - Optional: When present in the query string (including as an empty value), only unit metrics with this exact label are deleted. Omit the parameter to delete all labels in range. * **forecasted** (boolean) - Optional: When true, deletes forecasted unit metrics instead of historical ones. * Default: `False` #### Responses **200**: OK **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/businessmetrics/delete-business-metric-values](https://docs.vantage.sh/api/businessmetrics/delete-business-metric-values) *** ### GET /business\_metrics//values **Get business metric values** Return values of a BusinessMetric #### Path Parameters * **business\_metric\_token** (path) (string) - **Required** #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 5000. * **start\_date** (string (date)) - Optional: Query BusinessMetrics by the first date you would like to filter from. ISO 8601 Formatted - 2021-07-15 * **label\_values** (array) - Optional: Return values matching any exact label value. For multi-label metrics, matches values under any label key. * **date\_bin** (string) - Optional: Sum values by UTC day or month while preserving labels. When omitted, values are returned without aggregation. * Allowed values: `day`, `month` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/businessmetrics/get-business-metric-values](https://docs.vantage.sh/api/businessmetrics/get-business-metric-values) *** ### PUT /business\_metrics//values.csv **Update business metric values from CSV** Updates the values for an existing BusinessMetric from a CSV file. #### Path Parameters * **business\_metric\_token** (path) (string) - **Required** #### Responses **200**: OK **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/businessmetrics/update-business-metric-values-from-csv](https://docs.vantage.sh/api/businessmetrics/update-business-metric-values-from-csv) *** ## Canvases ### GET /canvases **Get all canvases** Return all Canvases. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **workspace\_token** (string) - Optional: Filter by workspace token. * **q** (string) - Optional: Search canvases by title. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/canvases/get-all-canvases](https://docs.vantage.sh/api/canvases/get-all-canvases) *** ### POST /canvases **Create canvas** Create a Canvas. #### Request Body ```json theme={null} { "title": string // required // The title of the Canvas, "prompt": string // required // The prompt used to generate the Canvas, "workspace_token": string // The token of the Workspace to add the Canvas to. Required if the API token is associated with multiple Workspaces } ``` #### Responses **201**: Created **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/canvases/create-canvas](https://docs.vantage.sh/api/canvases/create-canvas) *** ### DELETE /canvases/ **Delete canvas** Delete a Canvas. #### Path Parameters * **canvas\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/canvases/delete-canvas](https://docs.vantage.sh/api/canvases/delete-canvas) *** ### GET /canvases/ **Get canvas by token** Return a specific Canvas. #### Path Parameters * **canvas\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/canvases/get-canvas-by-token](https://docs.vantage.sh/api/canvases/get-canvas-by-token) *** ### PUT /canvases/ **Update canvas** Update a Canvas. #### Path Parameters * **canvas\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string // The title of the Canvas, "prompt": string // The prompt used to generate the Canvas } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/canvases/update-canvas](https://docs.vantage.sh/api/canvases/update-canvas) *** ## CostAlertEvents ### GET /cost\_alerts//events **Get all cost alert events** Get all CostAlertEvents #### Path Parameters * **cost\_alert\_token** (path) (string) - **Required**: The token of the CostAlertEvent. #### Query Parameters * **report\_token** (string) - Optional: The token of the report associated with the CostAlertEvent. * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The number of results to return. The maximum is 1000. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costalertevents/get-all-cost-alert-events](https://docs.vantage.sh/api/costalertevents/get-all-cost-alert-events) *** ### GET /cost\_alerts//events/ **Get cost alert event by token** Get a CostAlertEvent #### Path Parameters * **cost\_alert\_token** (path) (string) - **Required** * **event\_token** (path) (string) - **Required** #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costalertevents/get-cost-alert-event-by-token](https://docs.vantage.sh/api/costalertevents/get-cost-alert-event-by-token) *** ## CostAlerts ### GET /cost\_alerts **Get all cost alerts** List all Cost Alerts #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 5000. * **q** (string) - Optional: Search cost alerts by title. * **workspace\_token** (string) - Optional: The workspace token of the cost alerts to return. #### Responses **200**: List all Cost Alerts For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costalerts/get-all-cost-alerts](https://docs.vantage.sh/api/costalerts/get-all-cost-alerts) *** ### POST /cost\_alerts **Create cost alert** Create a new Cost Alert #### Request Body ```json theme={null} { "title": string // required // The title of the Cost Alert, "interval": string // required // The period of time used to compare costs. Options are 'day', 'week', 'month', 'quarter', "threshold": number // required // The threshold value for the Cost Alert, "unit_type": string // required // The unit type used to compare costs. Options are 'currency' or 'percentage', "workspace_token": string // required // The token of the Workspace to add the Cost Alert to, "report_tokens": [string] // required // The tokens of the reports to alert on, "email_recipients": [string] // The email recipients for the Cost Alert. Accepts organization users, SSO-domain emails, and approved third-party service emails, "slack_channels": [string] // The Slack channels that will receive the alert, "teams_channels": [string] // The Microsoft Teams channels that will receive the alert, "minimum_threshold": number // The minimum monetary amount threshold for percentage-based alerts. Only applicable when unit_type is 'percentage' } ``` #### Responses **201**: Cost Alert created successfully. **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costalerts/create-cost-alert](https://docs.vantage.sh/api/costalerts/create-cost-alert) *** ### DELETE /cost\_alerts/ **Delete cost alert** Delete a Cost Alert #### Path Parameters * **cost\_alert\_token** (path) (string) - **Required**: The token of the Cost Alert. #### Responses **204**: Cost Alert deleted successfully. **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costalerts/delete-cost-alert](https://docs.vantage.sh/api/costalerts/delete-cost-alert) *** ### GET /cost\_alerts/ **Get cost alert by token** Get a Cost Alert #### Path Parameters * **cost\_alert\_token** (path) (string) - **Required**: The token of the Cost Alert. #### Responses **200**: Get a Cost Alert **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costalerts/get-cost-alert-by-token](https://docs.vantage.sh/api/costalerts/get-cost-alert-by-token) *** ### PUT /cost\_alerts/ **Update cost alert** Update a Cost Alert #### Path Parameters * **cost\_alert\_token** (path) (string) - **Required**: The token of the Cost Alert. #### Request Body ```json theme={null} { "title": string // The title of the Cost Alert, "email_recipients": [string] // The email recipients for the Cost Alert. Accepts organization users, SSO-domain emails, and approved third-party service emails, "interval": string // The period of time used to compare costs. Options are 'day', 'week', 'month', 'quarter', "threshold": number // The threshold value for the Cost Alert, "slack_channels": [string] // The Slack channels that will receive the alert. Make sure your slack integration is connected at https://console.vantage.sh/settings/slack, "teams_channels": [string] // The Microsoft Teams channels that will receive the alert. Make sure your teams integration is connected at https://console.vantage.sh/settings/microsoft_teams, "unit_type": string // The unit type used to compare costs. Options are 'currency' or 'percentage', "report_tokens": [string] // The tokens of the reports to alert on, "minimum_threshold": number // The minimum monetary amount threshold for percentage-based alerts. Only applicable when unit_type is 'percentage' } ``` #### Responses **200**: Cost Alert updated successfully. **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costalerts/update-cost-alert](https://docs.vantage.sh/api/costalerts/update-cost-alert) *** ## CostProvider ### GET /cost\_providers **Get cost providers** List CostProviders available to query in a given Workspace. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The number of results to return. The maximum is 1000. * **workspace\_token** (string) - Optional: The token of the Workspace to list CostProviders for. Required if the API token is associated with multiple Workspaces. * **q** (string) - Optional: Search CostProviders by name or key. #### Responses **200**: List of connected CostProviders. For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costprovider/get-cost-providers](https://docs.vantage.sh/api/costprovider/get-cost-providers) *** ## CostProviderAccounts ### GET /cost\_provider\_accounts **Get all cost provider accounts** List CostProviderAccounts available in a given Workspace. #### Query Parameters * **workspace\_token** (string) - Optional: The token of the Workspace to list CostProviderAccounts for. Required if the API token is associated with multiple Workspaces. * **provider** (string) - Optional: Filter by provider type. * Allowed values: `aws`, `azure`, `gcp`, `snowflake`, `databricks`, `mongo`, `datadog`, `fastly`, `new_relic`, `opencost`, `open_ai`, `oracle`, `confluent`, `planetscale`, `coralogix`, `kubernetes`, `custom_provider`, `github`, `linode`, `grafana`, `clickhouse`, `temporal`, `twilio`, `azure_csp`, `kubernetes_agent`, `anthropic`, `anyscale`, `cursor`, `elastic`, `vercel`, `redis_cloud`, `circle_ci`, `modal`, `eleven_labs`, `baseten`, `cloudflare`, `fireworks_ai`, `cartesia`, `depot`, `xai`, `digital_ocean`, `together_ai`, `coreweave`, `devin`, `openrouter`, `deepgram`, `crusoe`, `sentry_billing` * **account\_id** (string) - Optional: Filter by provider account identifier. * **account\_name** (string) - Optional: Filter by account name (exact match). * **q** (string) - Optional: Search CostProviderAccounts by title. #### Responses **200**: List of provider accounts. For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costprovideraccounts/get-all-cost-provider-accounts](https://docs.vantage.sh/api/costprovideraccounts/get-all-cost-provider-accounts) *** ## CostService ### GET /cost\_services **Get cost services** List CostServices available to query in a given Workspace. #### Query Parameters * **workspace\_token** (string) - Optional: The token of the Workspace to list CostServices for. Required if the API token is associated with multiple Workspaces. #### Responses **200**: List of CostServices, used to query costs using VQL. For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costservice/get-cost-services](https://docs.vantage.sh/api/costservice/get-cost-services) *** ## Costs ### GET /cost\_reports **Get all cost reports** Return all CostReports. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **folder\_token** (string) - Optional: The token for the Folder you would like to fetch Reports from. * **q** (string) - Optional: Search cost reports by title. * **workspace\_token** (string) - Optional: The workspace token of the cost reports to return. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costs/get-all-cost-reports](https://docs.vantage.sh/api/costs/get-all-cost-reports) *** ### POST /cost\_reports **Create cost report** Create a CostReport. #### Request Body ```json theme={null} { "title": string // required // The title of the CostReport, "workspace_token": string // The token of the Workspace to add the Cost Report to. Ignored if 'folder_token' is set. Required if the API token is associated with multiple Workspaces, "groupings": string // Grouping values for aggregating costs on the report. Valid groupings: account_id, billing_account_id, charge_type, cost_category, cost_subcategory, provider, region, resource_id, service, tagged, usage_unit, tag:tag_value. If providing multiple groupings, join as comma separated values: groupings=provider,service,region, "filter": string // The filter query language to apply to the CostReport. Additional documentation available at https://docs.vantage.sh/vql, "saved_filter_tokens": [string] // The tokens of the SavedFilters to apply to the CostReport, "business_metric_tokens_with_metadata": [ // The tokens for any BusinessMetrics to attach to the CostReport, and the unit scale { "business_metric_token": string // required // The token of the BusinessMetric to attach to the CostReport, "unit_scale": string // Determines the scale of the BusinessMetric's values within the CostReport. Allowed values: `per_unit`, `per_hundred`, `per_thousand`, `per_million`, `per_billion`, "calculation_type": string // The calculation type applied when this BusinessMetric is used in the CostReport. Allowed values: `unit_cost`, `gross_margin`, `usage_unit_cost`, `raw_business_metric`, "label": string // Optional custom display name for this BusinessMetric on the CostReport. When omitted, a default is derived from the calculation type, "label_filter": [string] // Include only values with these labels in the CostReport, "label_filters": object // Include only ClickHouse BusinessMetric values matching every label key and one of its values } ], "folder_token": string // The token of the Folder to add the CostReport to. Determines the Workspace the report is assigned to, "settings": { // Report settings "include_credits": boolean // Report will include credits, "include_refunds": boolean // Report will include refunds, "include_discounts": boolean // Report will include discounts, "include_tax": boolean // Report will include tax, "amortize": boolean // Report will amortize, "unallocated": boolean // Report will show unallocated costs, "aggregate_by": string // Report will aggregate by cost, usage, or count. Allowed values: `cost`, `usage`, `count`, "show_previous_period": boolean // Report will show previous period cost, usage, or count comparison, "complete_period": boolean // Report will restrict date ranges to completed periods only }, "previous_period_start_date": string // The previous period start date of the CostReport. ISO 8601 Formatted, "previous_period_end_date": string // required // The previous period end date of the CostReport. ISO 8601 Formatted. Required when previous_period_start_date is provided, "start_date": string // The start date of the CostReport. ISO 8601 Formatted. Incompatible with 'date_interval' parameter, "end_date": string // required // The end date of the CostReport. ISO 8601 Formatted. Required when start_date is provided. Incompatible with 'date_interval' parameter, "date_interval": string // The date interval of the CostReport. Incompatible with 'start_date' and 'end_date' parameters. Defaults to 'this_month' if start_date and end_date are not provided. Allowed values: `this_month`, `last_7_days`, `last_30_days`, `last_month`, `last_3_months`, `last_6_months`, `custom`, `last_12_months`, `last_24_months`, `last_36_months`, `next_month`, `next_3_months`, `next_6_months`, `next_12_months`, `year_to_date`, `last_3_days`, `last_14_days`, "chart_type": string // The chart type of the CostReport. Allowed values: `area`, `line`, `pie`, `bar`, `multi_bar`, "date_bin": string // The date bin of the CostReport. Allowed values: `cumulative`, `day`, `week`, `month`, `quarter`, `hour`, "chart_settings": { // Report chart settings "x_axis_dimension": [string] // The dimension used to group or label data along the x-axis (e.g., by date, region, or service). NOTE: Only one value is allowed at this time. Defaults to ['date'], "y_axis_dimension": string // The metric or measure displayed on the chart’s y-axis. Possible values: 'cost', 'usage', 'count'. Defaults to 'cost'. Allowed values: `cost`, `usage`, `count` } } ``` #### Responses **201**: Created **400**: BadRequest **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costs/create-cost-report](https://docs.vantage.sh/api/costs/create-cost-report) *** ### DELETE /cost\_reports/ **Delete cost report** Delete a CostReport. #### Path Parameters * **cost\_report\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costs/delete-cost-report](https://docs.vantage.sh/api/costs/delete-cost-report) *** ### GET /cost\_reports/ **Get cost report by token** Return a CostReport. #### Path Parameters * **cost\_report\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costs/get-cost-report-by-token](https://docs.vantage.sh/api/costs/get-cost-report-by-token) *** ### PUT /cost\_reports/ **Update cost report** Update a CostReport. #### Path Parameters * **cost\_report\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string // The title of the CostReport, "groupings": string // Grouping values for aggregating costs on the report. Valid groupings: account_id, billing_account_id, charge_type, cost_category, cost_subcategory, provider, region, resource_id, service, tagged, usage_unit, tag:tag_value. If providing multiple groupings, join as comma separated values: groupings=provider,service,region, "filter": string // The filter query language to apply to the CostReport. Additional documentation available at https://docs.vantage.sh/vql, "saved_filter_tokens": [string] // The tokens of the SavedFilters to apply to the CostReport, "business_metric_tokens_with_metadata": [ // The tokens for any BusinessMetrics to attach to the CostReport, and the unit scale { "business_metric_token": string // required // The token of the BusinessMetric to attach to the CostReport, "unit_scale": string // Determines the scale of the BusinessMetric's values within the CostReport. Allowed values: `per_unit`, `per_hundred`, `per_thousand`, `per_million`, `per_billion`, "calculation_type": string // The calculation type applied when this BusinessMetric is used in the CostReport. Allowed values: `unit_cost`, `gross_margin`, `usage_unit_cost`, `raw_business_metric`, "label": string // Optional custom display name for this BusinessMetric on the CostReport. When omitted, a default is derived from the calculation type, "label_filter": [string] // Include only values with these labels in the CostReport, "label_filters": object // Include only ClickHouse BusinessMetric values matching every label key and one of its values } ], "folder_token": string // The token of the Folder to add the CostReport to. Determines the Workspace the report is assigned to, "default_forecast": { // The default forecast selection for the CostReport "kind": string // required // The default forecast selection kind. Allowed values: `baseline`, `report_forecast`, "report_forecast_token": string // The token for the report forecast to set as default when kind is report_forecast }, "settings": { // Report settings "include_credits": boolean // Report will include credits, "include_refunds": boolean // Report will include refunds, "include_discounts": boolean // Report will include discounts, "include_tax": boolean // Report will include tax, "amortize": boolean // Report will amortize, "unallocated": boolean // Report will show unallocated costs, "aggregate_by": string // Report will aggregate by cost, usage, or count. Allowed values: `cost`, `usage`, `count`, "show_previous_period": boolean // Report will show previous period cost, usage, or count comparison, "complete_period": boolean // Report will restrict date ranges to completed periods only }, "chart_settings": { // Report chart settings "x_axis_dimension": [string] // The dimension used to group or label data along the x-axis (e.g., by date, region, or service). NOTE: Only one value is allowed at this time. Defaults to ['date'], "y_axis_dimension": string // The metric or measure displayed on the chart’s y-axis. Possible values: 'cost', 'usage', 'count'. Defaults to 'cost'. Allowed values: `cost`, `usage`, `count` }, "previous_period_start_date": string // The previous period start date of the CostReport. ISO 8601 Formatted, "previous_period_end_date": string // The previous period end date of the CostReport. ISO 8601 Formatted. Required when previous_period_start_date is provided, "start_date": string // The start date of the CostReport. ISO 8601 Formatted. Incompatible with 'date_interval' parameter, "end_date": string // The end date of the CostReport. ISO 8601 Formatted. Required when start_date is provided. Incompatible with 'date_interval' parameter, "date_interval": string // The date interval of the CostReport. Incompatible with 'start_date' and 'end_date' parameters. Defaults to 'this_month' if start_date and end_date are not provided. Allowed values: `this_month`, `last_7_days`, `last_30_days`, `last_month`, `last_3_months`, `last_6_months`, `custom`, `last_12_months`, `last_24_months`, `last_36_months`, `next_month`, `next_3_months`, `next_6_months`, `next_12_months`, `year_to_date`, `last_3_days`, `last_14_days`, "chart_type": string // The chart type of the CostReport. Allowed values: `area`, `line`, `pie`, `bar`, `multi_bar`, "date_bin": string // The date bin of the CostReport. Allowed values: `cumulative`, `day`, `week`, `month`, `quarter`, `hour` } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costs/update-cost-report](https://docs.vantage.sh/api/costs/update-cost-report) *** ### GET /cost\_reports//forecasted\_costs **Get forecasted costs for a cost report** Return all ForecastedCosts. #### Path Parameters * **cost\_report\_token** (path) (string) - **Required** #### Query Parameters * **start\_date** (string (date)) - Optional: First date you would like to filter forecasted costs from. ISO 8601 formatted. * **end\_date** (string (date)) - Optional: Last date you would like to filter forecasted costs from. ISO 8601 formatted. * **provider** (string) - Optional: Limit the forecasted costs to a specific provider. 'all' is accepted to filter to overall forecast. * Allowed values: `aws`, `azure`, `gcp`, `snowflake`, `databricks`, `mongo`, `datadog`, `fastly`, `new_relic`, `opencost`, `open_ai`, `oracle`, `confluent`, `planetscale`, `coralogix`, `kubernetes`, `custom_provider`, `github`, `linode`, `grafana`, `clickhouse`, `temporal`, `twilio`, `azure_csp`, `kubernetes_agent`, `anthropic`, `anyscale`, `cursor`, `elastic`, `vercel`, `redis_cloud`, `circle_ci`, `modal`, `eleven_labs`, `baseten`, `cloudflare`, `fireworks_ai`, `cartesia`, `depot`, `xai`, `digital_ocean`, `together_ai`, `coreweave`, `devin`, `openrouter`, `deepgram`, `crusoe`, `sentry_billing`, `all` * **service** (string) - Optional: Limit the forecasted costs to a specific service. 'all' is accepted to filter to overall forecast. e.g. 'Amazon ElastiCache'. * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costs/get-forecasted-costs-for-a-cost-report](https://docs.vantage.sh/api/costs/get-forecasted-costs-for-a-cost-report) *** ### GET /costs **Get costs for cost report or VQL filter** Return all Costs for a CostReport or VQL filter. #### Query Parameters * **cost\_report\_token** (string) - Optional: The CostReport token. * **filter** (string) - Optional: The VQL filter to apply to the costs. If this is supplied you do not need cost\_report\_token. * **workspace\_token** (string) - Optional: The token of the Workspace to query costs from. Ignored if 'cost\_report\_token' is set. Required if the API token is associated with multiple Workspaces. * **start\_date** (string) - Optional: First date you would like to filter costs from. ISO 8601 formatted. When omitted with cost\_report\_token, the report's saved start date is used. * **end\_date** (string) - Optional: Last date you would like to filter costs to. ISO 8601 formatted. When omitted with cost\_report\_token, the report's saved end date is used. * **groupings** (array) - Optional: Group the results by specific field(s). When omitted with cost\_report\_token, the report's saved groupings are used; otherwise defaults to provider, service, account\_id. Valid groupings: account\_id, billing\_account\_id, charge\_type, cost\_category, cost\_subcategory, provider, region, resource\_id, service, tagged, usage\_unit, tag:tag\_value. If providing multiple groupings, join as comma separated values: groupings=provider,service,region * **order** (string) - Optional: Whether to order costs by date in an ascending or descending manner. * Allowed values: `asc`, `desc` * Default: `desc` * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 5000. * **page** (integer (int32)) - Optional: The page of results to return. * **date\_bin** (string) - Optional: The date bin of the costs. Defaults to the report's default or day. * Allowed values: `day`, `week`, `month`, `quarter`, `hour` * **settings\[include\_credits]** (boolean) - Optional: Results will include credits. * **settings\[include\_refunds]** (boolean) - Optional: Results will include refunds. * **settings\[include\_discounts]** (boolean) - Optional: Results will include discounts. * **settings\[include\_tax]** (boolean) - Optional: Results will include tax. * **settings\[amortize]** (boolean) - Optional: Results will amortize. * **settings\[unallocated]** (boolean) - Optional: Results will show unallocated costs. * **settings\[aggregate\_by]** (string) - Optional: Results will aggregate by cost, usage, or count. * Allowed values: `cost`, `usage`, `count` * **settings\[show\_previous\_period]** (boolean) - Optional: Results will show previous period cost, usage, or count comparison. #### Responses **200**: OK **400**: BadRequest **402**: PaymentRequired **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costs/get-costs-for-cost-report-or-vql-filter](https://docs.vantage.sh/api/costs/get-costs-for-cost-report-or-vql-filter) *** ### POST /costs/data\_exports **Generate cost data export** Generate a DataExport of costs. #### Request Body ```json theme={null} { "cost_report_token": string // The CostReport token, "filter": string // The VQL filter to apply to the costs. If this is supplied you do not need cost_report_token, "workspace_token": string // The token of the Workspace to query costs from. Ignored if 'cost_report_token' is set. Required if the API token is associated with multiple Workspaces, "start_date": string // First date you would like to filter costs from. ISO 8601 formatted. When omitted with cost_report_token, the report's saved start date is used, "end_date": string // Last date you would like to filter costs to. ISO 8601 formatted. When omitted with cost_report_token, the report's saved end date is used, "groupings": [string] // Group the results by specific field(s). When omitted with cost_report_token, the report's saved groupings are used; otherwise defaults to provider, service, account_id. Valid groupings: account_id, billing_account_id, charge_type, cost_category, cost_subcategory, provider, region, resource_id, service, tagged, usage_unit, tag:tag_value. If providing multiple groupings, join as comma separated values: groupings=provider,service,region, "date_bin": string // The date bin of the costs. Defaults to the report's default or day. Allowed values: `day`, `week`, `month`, `quarter`, `hour`, "schema": string // The schema of the data export. Allowed values: `vntg`, `focus`, `comparison`, "settings": { // Cost-related settings "include_credits": boolean // Results will include credits, "include_refunds": boolean // Results will include refunds, "include_discounts": boolean // Results will include discounts, "include_tax": boolean // Results will include tax, "amortize": boolean // Results will amortize, "unallocated": boolean // Results will show unallocated costs, "aggregate_by": string // Results will aggregate by cost, usage, or count. Allowed values: `cost`, `usage`, `count`, "show_previous_period": boolean // Results will show previous period cost, usage, or count comparison } } ``` #### Responses **202**: The data export has been queued and will be available at the location specified in the Location header. **400**: BadRequest **402**: PaymentRequired **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/costs/generate-cost-data-export](https://docs.vantage.sh/api/costs/generate-cost-data-export) *** ## DashboardNotifications ### GET /dashboard\_notifications **Get all dashboard notifications** Return all DashboardNotifications. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **q** (string) - Optional: Search dashboard notifications by title. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/dashboardnotifications/get-all-dashboard-notifications](https://docs.vantage.sh/api/dashboardnotifications/get-all-dashboard-notifications) *** ### POST /dashboard\_notifications **Create dashboard notification** Create a DashboardNotification. #### Request Body ```json theme={null} { "title": string // required // The title of the DashboardNotification, "dashboard_token": string // required // The Dashboard token, "workspace_token": string // The token of the Workspace to add the DashboardNotification to. Required if the API token is associated with multiple Workspaces, "user_tokens": [string] // The Users that receive the notification, "recipient_emails": [string] // Email addresses that receive the notification. Must be organization users, on the account's SSO domain, or an approved third-party service address, "frequency": string // required // The frequency the DashboardNotification is sent. Possible values: daily, weekly, monthly. Allowed values: `daily`, `weekly`, `monthly` } ``` #### Responses **201**: Created **400**: BadRequest **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/dashboardnotifications/create-dashboard-notification](https://docs.vantage.sh/api/dashboardnotifications/create-dashboard-notification) *** ### DELETE /dashboard\_notifications/ **Delete dashboard notification** Delete a DashboardNotification. #### Path Parameters * **dashboard\_notification\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/dashboardnotifications/delete-dashboard-notification](https://docs.vantage.sh/api/dashboardnotifications/delete-dashboard-notification) *** ### GET /dashboard\_notifications/ **Get dashboard notification by token** Return a DashboardNotification. #### Path Parameters * **dashboard\_notification\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/dashboardnotifications/get-dashboard-notification-by-token](https://docs.vantage.sh/api/dashboardnotifications/get-dashboard-notification-by-token) *** ### PUT /dashboard\_notifications/ **Update dashboard notification** Update a DashboardNotification. #### Path Parameters * **dashboard\_notification\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string // The title of the DashboardNotification, "dashboard_token": string // The Dashboard token. Retargeting requires edit access to the new Dashboard, "user_tokens": [string] // The Users that receive the notification, "recipient_emails": [string] // Email addresses that receive the notification. Must be organization users, on the account's SSO domain, or an approved third-party service address, "frequency": string // The frequency the DashboardNotification is sent. Possible values: daily, weekly, monthly. Allowed values: `daily`, `weekly`, `monthly` } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/dashboardnotifications/update-dashboard-notification](https://docs.vantage.sh/api/dashboardnotifications/update-dashboard-notification) *** ## Dashboards ### GET /dashboards **Get all dashboards** Return all Dashboards. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **q** (string) - Optional: Search dashboards by title. * **workspace\_token** (string) - Optional: The workspace token of the dashboards to return. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/dashboards/get-all-dashboards](https://docs.vantage.sh/api/dashboards/get-all-dashboards) *** ### POST /dashboards **Create dashboard** Create a Dashboard. #### Request Body ```json theme={null} { "title": string // required // The title of the Dashboard, "widgets": [ // The widgets to add to the Dashboard. Report-backed widgets use widgetable_token. Free text widgets use widgetable_type set to free_text and require content { "widgetable_token": string // The token of the represented Resource, "widgetable_type": string // The widget type. Use free_text for a free text widget. Allowed values: `free_text`, "title": string // The title of the Widget (defaults to the Resource title, or Free Text for a free text widget), "content": { // Rich-text document for a free text widget, for example {"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"Note"}]}]} "type": string // required // Document root. Must be doc. Allowed values: `doc`, "content": [object] }, "settings": { // The display and grid layout settings for the DashboardWidget "display_type": string // required // Allowed values: `table`, `chart`, `kpi`, "kpi_calculation": string // The aggregation used when display_type is kpi. Allowed values: `sum`, `average`, "kpi_type": string // The metric represented when display_type is kpi. Allowed values: `cost`, `usage`, `count`, `business_metric`, "kpi_usage_unit": string // The usage unit represented when kpi_type is usage, "grid": { // The widget's size and position in the dashboard's 12-column grid "x": integer // required // The zero-based horizontal position, "y": integer // required // The zero-based vertical position, "w": integer // required // The widget width in grid columns, "h": integer // required // The widget height in grid rows } } } ], "saved_filter_tokens": [string] // The tokens of the Saved Filters used in the Dashboard, "date_bin": string // Determines how to group costs in the Dashboard. Allowed values: `cumulative`, `day`, `week`, `month`, "date_interval": string // Determines the date range in the Dashboard. Incompatible with 'start_date' and 'end_date' parameters. Allowed values: `this_month`, `last_7_days`, `last_30_days`, `last_month`, `last_3_months`, `last_6_months`, `custom`, `last_12_months`, `last_24_months`, `last_36_months`, `next_month`, `next_3_months`, `next_6_months`, `next_12_months`, `year_to_date`, `last_3_days`, `last_14_days`, "start_date": string // The start date for the date range for costs in the Dashboard. ISO 8601 Formatted. Incompatible with 'date_interval' parameter, "end_date": string // The end date for the date range for costs in the Dashboard. ISO 8601 Formatted. Incompatible with 'date_interval' parameter, "workspace_token": string // The token of the Workspace to add the Dashboard to. Required if the API token is associated with multiple Workspaces } ``` #### Responses **201**: Created **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/dashboards/create-dashboard](https://docs.vantage.sh/api/dashboards/create-dashboard) *** ### DELETE /dashboards/ **Delete dashboard** Delete a Dashboard. #### Path Parameters * **dashboard\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/dashboards/delete-dashboard](https://docs.vantage.sh/api/dashboards/delete-dashboard) *** ### GET /dashboards/ **Get dashboard by token** Return a specific Dashboard. #### Path Parameters * **dashboard\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/dashboards/get-dashboard-by-token](https://docs.vantage.sh/api/dashboards/get-dashboard-by-token) *** ### PUT /dashboards/ **Update dashboard** Update a Dashboard. #### Path Parameters * **dashboard\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string // The title of the Dashboard, "widgets": [ // The complete replacement list of widgets for the Dashboard. Omit widgets or send null to preserve every existing widget. When provided, include every report-backed and free text widget to keep; an empty array removes all widgets. Report-backed widgets use widgetable_token. Free text widgets use widgetable_type set to free_text and require content { "widgetable_token": string // The token of the represented Resource, "widgetable_type": string // The widget type. Use free_text for a free text widget. Allowed values: `free_text`, "title": string // The title of the Widget (defaults to the Resource title, or Free Text for a free text widget), "content": { // Rich-text document for a free text widget, for example {"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"Note"}]}]} "type": string // required // Document root. Must be doc. Allowed values: `doc`, "content": [object] }, "settings": { // The display and grid layout settings for the DashboardWidget "display_type": string // required // Allowed values: `table`, `chart`, `kpi`, "kpi_calculation": string // The aggregation used when display_type is kpi. Allowed values: `sum`, `average`, "kpi_type": string // The metric represented when display_type is kpi. Allowed values: `cost`, `usage`, `count`, `business_metric`, "kpi_usage_unit": string // The usage unit represented when kpi_type is usage, "grid": { // The widget's size and position in the dashboard's 12-column grid "x": integer // required // The zero-based horizontal position, "y": integer // required // The zero-based vertical position, "w": integer // required // The widget width in grid columns, "h": integer // required // The widget height in grid rows } } } ], "saved_filter_tokens": [string] // The tokens of the Saved Filters used in the Dashboard, "date_bin": string // Determines how to group costs in the Dashboard. Allowed values: `cumulative`, `day`, `week`, `month`, "date_interval": string // Determines the date range in the Dashboard. Incompatible with 'start_date' and 'end_date' parameters. Allowed values: `this_month`, `last_7_days`, `last_30_days`, `last_month`, `last_3_months`, `last_6_months`, `custom`, `last_12_months`, `last_24_months`, `last_36_months`, `next_month`, `next_3_months`, `next_6_months`, `next_12_months`, `year_to_date`, `last_3_days`, `last_14_days`, ``, "start_date": string // The start date for the date range for costs in the Dashboard. ISO 8601 Formatted. Incompatible with 'date_interval' parameter, "end_date": string // The end date for the date range for costs in the Dashboard. ISO 8601 Formatted. Incompatible with 'date_interval' parameter, "workspace_token": string // The token of the Workspace the Dashboard belongs to. Required when updating widgets if the API token is associated with multiple Workspaces } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/dashboards/update-dashboard](https://docs.vantage.sh/api/dashboards/update-dashboard) *** ### DELETE /widgets/ **Delete dashboard widget** Delete a Dashboard Widget. #### Path Parameters * **widget\_token** (path) (string) - **Required** #### Responses **204**: No Content **403**: Forbidden **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/dashboards/delete-dashboard-widget](https://docs.vantage.sh/api/dashboards/delete-dashboard-widget) *** ### GET /widgets/ **Get dashboard widget** Return a Dashboard Widget. #### Path Parameters * **widget\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/dashboards/get-dashboard-widget](https://docs.vantage.sh/api/dashboards/get-dashboard-widget) *** ### PATCH /widgets/ **Update dashboard widget** Update a single Dashboard Widget. #### Path Parameters * **widget\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "widgetable_token": string // The token of the Resource represented by the Widget, "title": string // The title of the Widget, "settings": { // The settings for the DashboardWidget "display_type": string // Allowed values: `table`, `chart`, `kpi`, "kpi_calculation": string // Allowed values: `sum`, `average`, "kpi_type": string // Allowed values: `cost`, `usage`, `count`, `business_metric`, "kpi_usage_unit": string } } ``` #### Responses **200**: OK **400**: BadRequest **403**: Forbidden **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/dashboards/update-dashboard-widget](https://docs.vantage.sh/api/dashboards/update-dashboard-widget) *** ## DataExports ### GET /data\_exports/ **Get status of data export** Get the status of a data export. #### Path Parameters * **data\_export\_token** (path) (string) - **Required** #### Responses **200**: Returns the completed data export and its manifest. If it is still pending, the response will be a 202 and the caller should check the Location and Retry-After headers to determine where and how long to wait before polling again. **400**: BadRequest **402**: PaymentRequired **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/dataexports/get-status-of-data-export](https://docs.vantage.sh/api/dataexports/get-status-of-data-export) *** ## EnrichmentSources ### GET /enrichment\_sources **Get all enrichment sources** Return all EnrichmentSources. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The number of results to return. The maximum is 1000. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/enrichmentsources/get-all-enrichment-sources](https://docs.vantage.sh/api/enrichmentsources/get-all-enrichment-sources) *** ### GET /enrichment\_sources/ **Get enrichment source by token** Return an EnrichmentSource. #### Path Parameters * **enrichment\_source\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/enrichmentsources/get-enrichment-source-by-token](https://docs.vantage.sh/api/enrichmentsources/get-enrichment-source-by-token) *** ## EnrichmentStatistics ### GET /enrichment\_sources//statistics **Get enrichment statistics** Return enrichment statistics. #### Path Parameters * **enrichment\_source\_token** (path) (string) - **Required** #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * Default: `1` * **limit** (integer (int32)) - Optional: The number of results to return. The maximum is 1000. * Default: `50` * **provider** (string) - Optional: Filter statistics to costs for a specific provider key. * Allowed values: `aws`, `azure`, `gcp`, `snowflake`, `databricks`, `mongo`, `datadog`, `fastly`, `new_relic`, `opencost`, `open_ai`, `oracle`, `confluent`, `planetscale`, `coralogix`, `kubernetes`, `custom_provider`, `github`, `linode`, `grafana`, `clickhouse`, `temporal`, `twilio`, `azure_csp`, `kubernetes_agent`, `anthropic`, `anyscale`, `cursor`, `elastic`, `vercel`, `redis_cloud`, `circle_ci`, `modal`, `eleven_labs`, `baseten`, `cloudflare`, `fireworks_ai`, `cartesia`, `depot`, `xai`, `digital_ocean`, `together_ai`, `coreweave`, `devin`, `openrouter`, `deepgram`, `crusoe`, `sentry_billing` * Example: `aws` #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/enrichmentstatistics/get-enrichment-statistics](https://docs.vantage.sh/api/enrichmentstatistics/get-enrichment-statistics) *** ## ExchangeRates ### GET /exchange\_rates **Get all exchange rates** Return all Exchange Rates. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The number of results to return. The maximum is 1000. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/exchangerates/get-all-exchange-rates](https://docs.vantage.sh/api/exchangerates/get-all-exchange-rates) *** ### POST /exchange\_rates/csv **Upload exchange rates via CSV** Upload Exchange Rates via CSV. #### Responses **201**: CSV uploaded successfully **400**: BadRequest **403**: Forbidden For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/exchangerates/upload-exchange-rates-via-csv](https://docs.vantage.sh/api/exchangerates/upload-exchange-rates-via-csv) *** ## FinancialCommitmentReports ### GET /financial\_commitment\_reports **Get all financial commitment reports** Return all FinancialCommitmentReports. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **q** (string) - Optional: Search financial commitment reports by title. * **workspace\_token** (string) - Optional: The workspace token of the financial commitment reports to return. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/financialcommitmentreports/get-all-financial-commitment-reports](https://docs.vantage.sh/api/financialcommitmentreports/get-all-financial-commitment-reports) *** ### POST /financial\_commitment\_reports **Create financial commitment report** Create a FinancialCommitmentReport. #### Request Body ```json theme={null} { "workspace_token": string // required // The Workspace in which the FinancialCommitmentReport will be created, "title": string // required // The title of the FinancialCommitmentReport, "filter": string // The filter query language to apply to the FinancialCommitmentReport. Additional documentation available at https://docs.vantage.sh/vql, "start_date": string // The start date of the FinancialCommitmentReport. YYYY-MM-DD formatted. Incompatible with 'date_interval' parameter, "end_date": string // The end date of the FinancialCommitmentReport. YYYY-MM-DD formatted. Incompatible with 'date_interval' parameter, "date_interval": string // The date interval of the FinancialCommitmentReport. Unless 'custom' is used, this is incompatible with 'start_date' and 'end_date' parameters. Defaults to 'last_3_months'. Allowed values: `this_month`, `last_7_days`, `last_30_days`, `last_month`, `last_3_months`, `last_6_months`, `custom`, `last_12_months`, `last_24_months`, `last_36_months`, `year_to_date`, `last_3_days`, `last_14_days`, "date_bucket": string // The date bucket of the FinancialCommitmentReport. Allowed values: `hour`, `day`, `week`, `month`, `quarter`, "on_demand_costs_scope": string // The scope for the costs. Possible values: discountable, all. Allowed values: `discountable`, `all`, "groupings": [string] // Grouping values for aggregating costs on the FinancialCommitmentReport. Group by up to 100 fields. Valid groupings: cost_type, provider, commitment_type, commitment_id, service, resource_account_id, provider_account_id, region, cost_category, cost_sub_category, instance_type, tag:label_name } ``` #### Responses **201**: Created **400**: BadRequest **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/financialcommitmentreports/create-financial-commitment-report](https://docs.vantage.sh/api/financialcommitmentreports/create-financial-commitment-report) *** ### DELETE /financial\_commitment\_reports/ **Delete financial commitment report** Delete a FinancialCommitmentReport. #### Path Parameters * **financial\_commitment\_report\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/financialcommitmentreports/delete-financial-commitment-report](https://docs.vantage.sh/api/financialcommitmentreports/delete-financial-commitment-report) *** ### GET /financial\_commitment\_reports/ **Get financial commitment report by token** Return a FinancialCommitmentReport. #### Path Parameters * **financial\_commitment\_report\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/financialcommitmentreports/get-financial-commitment-report-by-token](https://docs.vantage.sh/api/financialcommitmentreports/get-financial-commitment-report-by-token) *** ### PUT /financial\_commitment\_reports/ **Update financial commitment report** Update a FinancialCommitmentReport. #### Path Parameters * **financial\_commitment\_report\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string // The title of the FinancialCommitmentReport, "filter": string // The filter query language to apply to the FinancialCommitmentReport. Additional documentation available at https://docs.vantage.sh/vql, "start_date": string // The start date of the FinancialCommitmentReport. YYYY-MM-DD formatted. Incompatible with 'date_interval' parameter, "end_date": string // The end date of the FinancialCommitmentReport. YYYY-MM-DD formatted. Incompatible with 'date_interval' parameter, "date_interval": string // The date interval of the FinancialCommitmentReport. Unless 'custom' is used, this is incompatible with 'start_date' and 'end_date' parameters. Defaults to 'last_3_months'. Allowed values: `this_month`, `last_7_days`, `last_30_days`, `last_month`, `last_3_months`, `last_6_months`, `custom`, `last_12_months`, `last_24_months`, `last_36_months`, `year_to_date`, `last_3_days`, `last_14_days`, "date_bucket": string // The date bucket of the FinancialCommitmentReport. Allowed values: `hour`, `day`, `week`, `month`, `quarter`, "on_demand_costs_scope": string // The scope for the costs. Possible values: discountable, all. Allowed values: `discountable`, `all`, "groupings": [string] // Grouping values for aggregating costs on the FinancialCommitmentReport. Group by up to 100 fields. Valid groupings: cost_type, provider, commitment_type, commitment_id, service, resource_account_id, provider_account_id, region, cost_category, cost_sub_category, instance_type, tag:label_name } ``` #### Responses **200**: OK **400**: BadRequest **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/financialcommitmentreports/update-financial-commitment-report](https://docs.vantage.sh/api/financialcommitmentreports/update-financial-commitment-report) *** ### GET /financial\_commitment\_reports//costs **Get costs for financial commitment report** Return costs for a FinancialCommitmentReport. #### Path Parameters * **financial\_commitment\_report\_token** (path) (string) - **Required** #### Query Parameters * **start\_date** (string (date)) - Optional: First date you would like to filter costs from, inclusive. YYYY-MM-DD formatted. * Example: `2024-03-01` * **end\_date** (string (date)) - Optional: Last date you would like to filter costs to, inclusive. YYYY-MM-DD formatted. * Example: `2024-03-31` * **date\_bin** (string) - Optional: The date bin of the costs. Defaults to the report's configured date bucket. Hourly costs are limited to 14 days. * Allowed values: `hour`, `day`, `week`, `month`, `quarter` * **groupings** (array) - Optional: Group the results by up to 100 fields. Valid groupings: cost\_type, provider, commitment\_type, commitment\_id, service, resource\_account\_id, provider\_account\_id, region, cost\_category, cost\_sub\_category, instance\_type, tag:label\_name. Serialize as a CSV query parameter: groupings=cost\_type,service. Repeated parameters (groupings\[]=cost\_type\&groupings\[]=service) are also accepted. * **filter** (string) - Optional: The VQL filter to apply to the costs. Overrides the report's saved filter. * **on\_demand\_costs\_scope** (string) - Optional: The scope for the costs. Possible values: discountable, all. * Allowed values: `discountable`, `all` * **order** (string) - Optional: Whether to order costs by date in an ascending or descending manner. * Allowed values: `asc`, `desc` * Default: `desc` * **limit** (integer (int32)) - Optional: The number of cost rows to return, not the number of date buckets. The maximum is 5000. * Default: `2500` * **page** (integer (int32)) - Optional: The page of results to return. * Default: `1` #### Responses **200**: OK **400**: BadRequest **402**: PaymentRequired **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/financialcommitmentreports/get-costs-for-financial-commitment-report](https://docs.vantage.sh/api/financialcommitmentreports/get-costs-for-financial-commitment-report) *** ## FinancialCommitments ### GET /financial\_commitments **Get all financial commitments** Return all FinancialCommitments. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/financialcommitments/get-all-financial-commitments](https://docs.vantage.sh/api/financialcommitments/get-all-financial-commitments) *** ## Folders ### GET /folders **Get all folders** Return all Folders for CostReports. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **type** (string) - Optional: Filter by folder type. * Allowed values: `CostFolder`, `ProviderResourceFolder` * **q** (string) - Optional: Search folders by title. * **workspace\_token** (string) - Optional: The workspace token of the folders to return. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/folders/get-all-folders](https://docs.vantage.sh/api/folders/get-all-folders) *** ### POST /folders **Create folder** Create a Folder for CostReports. #### Request Body ```json theme={null} { "title": string // required // The title of the Folder, "parent_folder_token": string // The token of the parent Folder, "saved_filter_tokens": [string] // The tokens of the SavedFilters to apply to any Cost Report contained within the Folder, "workspace_token": string // The token of the Workspace to add the Folder to. Ignored if 'parent_folder_token' is set. Required if the API token is associated with multiple Workspaces, "type": string // The type of the Folder. Allowed values: `CostFolder`, `ProviderResourceFolder` } ``` #### Responses **201**: Created **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/folders/create-folder](https://docs.vantage.sh/api/folders/create-folder) *** ### DELETE /folders/ **Delete folder** Delete a Folder for CostReports. #### Path Parameters * **folder\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/folders/delete-folder](https://docs.vantage.sh/api/folders/delete-folder) *** ### GET /folders/ **Get folder by token** Return a specific Folder for CostReports. #### Path Parameters * **folder\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/folders/get-folder-by-token](https://docs.vantage.sh/api/folders/get-folder-by-token) *** ### PUT /folders/ **Update folder** Update a Folder for CostReports. #### Path Parameters * **folder\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string // The title of the Folder, "parent_folder_token": string // The token of the parent Folder, "saved_filter_tokens": [string] // The tokens of the SavedFilters to apply to any Cost Report contained within the Folder } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/folders/update-folder](https://docs.vantage.sh/api/folders/update-folder) *** ## Integrations ### GET /integrations **Get all integrations** Return all Integrations. #### Query Parameters * **provider** (string) - Optional: Query by provider name to list all Integrations for a specific provider. * Allowed values: `aws`, `azure`, `gcp`, `snowflake`, `databricks`, `mongo`, `datadog`, `fastly`, `new_relic`, `opencost`, `open_ai`, `oracle`, `confluent`, `planetscale`, `coralogix`, `kubernetes`, `custom_provider`, `github`, `linode`, `grafana`, `clickhouse`, `temporal`, `twilio`, `azure_csp`, `kubernetes_agent`, `anthropic`, `anyscale`, `cursor`, `elastic`, `vercel`, `redis_cloud`, `circle_ci`, `modal`, `eleven_labs`, `baseten`, `cloudflare`, `fireworks_ai`, `cartesia`, `depot`, `xai`, `digital_ocean`, `together_ai`, `coreweave`, `devin`, `openrouter`, `deepgram`, `crusoe`, `sentry_billing` * **account\_identifier** (string) - Optional: Query by account identifier to list all Integrations that match a specific account. For Azure, this is the subscription ID. Must include provider when using this parameter. * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The number of results to return. The maximum is 1000. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/integrations/get-all-integrations](https://docs.vantage.sh/api/integrations/get-all-integrations) *** ### POST /integrations/azure **Create Azure integration** Create an Azure Integration #### Request Body ```json theme={null} { "tenant": string // required // Azure AD Tenant ID, "app_id": string // required // Service Principal Application ID, "password": string // required // Service Principal Password, "billing_account_id": string // Microsoft Customer Agreement (MCA) or Enterprise Agreement (EA) billing account ID. Must not contain whitespace } ``` #### Responses **201**: Created **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/integrations/create-azure-integration](https://docs.vantage.sh/api/integrations/create-azure-integration) *** ### POST /integrations/custom\_provider **Create custom provider integration** Create a Custom Provider Integration #### Request Body ```json theme={null} { "name": string // required // Name of the Custom Provider Integration, "description": string // Description of the Custom Provider Integration } ``` #### Responses **201**: Created **400**: BadRequest **403**: Forbidden For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/integrations/create-custom-provider-integration](https://docs.vantage.sh/api/integrations/create-custom-provider-integration) *** ### POST /integrations/gcp **Create GCP integration** Create a GCP Integration #### Request Body ```json theme={null} { "billing_account_id": string // required // GCP billing account ID, "project_id": string // required // GCP project ID, "dataset_name": string // required // BigQuery dataset name } ``` #### Responses **201**: Created **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/integrations/create-gcp-integration](https://docs.vantage.sh/api/integrations/create-gcp-integration) *** ### POST /integrations/twilio **Create Twilio integration** Create a Twilio Integration #### Request Body ```json theme={null} { "api_key": string // required // Twilio API key SID, "api_secret": string // required // Twilio API key secret, "account_sid": string // required // Twilio account SID, "friendly_account_name": string // required // Name for this Twilio account in Vantage, "description": string // required // Description of the integration, "is_oauth": boolean // When true, api_key and api_secret are an OAuth client id and secret } ``` #### Responses **201**: Created **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/integrations/create-twilio-integration](https://docs.vantage.sh/api/integrations/create-twilio-integration) *** ### DELETE /integrations/ **Delete integration** Delete an Integration. #### Path Parameters * **integration\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/integrations/delete-integration](https://docs.vantage.sh/api/integrations/delete-integration) *** ### GET /integrations/ **Get integration by token** Return an Integration. #### Path Parameters * **integration\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/integrations/get-integration-by-token](https://docs.vantage.sh/api/integrations/get-integration-by-token) *** ### PUT /integrations/ **Update integration** Update an Integration. #### Path Parameters * **integration\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "workspace_tokens": [string] // The Workspace tokens to associate to the Integration } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/integrations/update-integration](https://docs.vantage.sh/api/integrations/update-integration) *** ### GET /integrations//costs **Get all user costs uploads** List UserCostUploads. #### Path Parameters * **integration\_token** (path) (string) - **Required** #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/integrations/get-all-user-costs-uploads](https://docs.vantage.sh/api/integrations/get-all-user-costs-uploads) *** ### POST /integrations//costs.csv **Upload custom provider costs** Create UserCostsUpload via CSV for a Custom Provider Integration. #### Path Parameters * **integration\_token** (path) (string) - **Required** #### Responses **201**: Created **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/integrations/upload-custom-provider-costs](https://docs.vantage.sh/api/integrations/upload-custom-provider-costs) *** ### DELETE /integrations//costs/ **Delete user costs upload** Delete a UserCostsUpload. #### Path Parameters * **integration\_token** (path) (string) - **Required** * **user\_costs\_upload\_token** (path) (string) - **Required**: Token of the UserCostsUpload to delete. #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/integrations/delete-user-costs-upload](https://docs.vantage.sh/api/integrations/delete-user-costs-upload) *** ## Invoices ### GET /invoices **Get all invoices** Returns a list of invoices (MSP invoicing required). #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **managed\_account\_token** (string) - Optional: Filter invoices by managed account token (MSP accounts only) #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/invoices/get-all-invoices](https://docs.vantage.sh/api/invoices/get-all-invoices) *** ### POST /invoices **Create invoice** Create an invoice (MSP accounts only). #### Request Body ```json theme={null} { "billing_period_start": string // required // Start date of billing period (YYYY-MM-DD), "billing_period_end": string // required // End date of billing period (YYYY-MM-DD), "account_token": string // required // Token of the managed account to invoice } ``` #### Responses **201**: Created **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/invoices/create-invoice](https://docs.vantage.sh/api/invoices/create-invoice) *** ### GET /invoices/ **Get invoice by token** Return an invoice. #### Path Parameters * **invoice\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/invoices/get-invoice-by-token](https://docs.vantage.sh/api/invoices/get-invoice-by-token) *** ### GET /invoices//cost\_report **Get cost report URL** Get cost report URL for invoice period. #### Path Parameters * **invoice\_token** (path) (string) - **Required** #### Responses **200**: Get cost report URL for invoice period. **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/invoices/get-cost-report-url](https://docs.vantage.sh/api/invoices/get-cost-report-url) *** ### POST /invoices//download **Get invoice file** Download invoice file (PDF or CSV). #### Path Parameters * **invoice\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "file_type": string // required // Type of file to download (pdf or csv). Allowed values: `pdf`, `csv` } ``` #### Responses **200**: Returns download URL for the invoice file **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/invoices/get-invoice-file](https://docs.vantage.sh/api/invoices/get-invoice-file) *** ### POST /invoices//regenerate **Regenerate invoice** Regenerate an existing invoice (MSP accounts only). #### Path Parameters * **invoice\_token** (path) (string) - **Required** #### Responses **200**: Invoice regeneration started **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/invoices/regenerate-invoice](https://docs.vantage.sh/api/invoices/regenerate-invoice) *** ### POST /invoices//send **Send invoice** Send invoice via email. #### Path Parameters * **invoice\_token** (path) (string) - **Required** #### Responses **200**: Invoice sent successfully **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/invoices/send-invoice](https://docs.vantage.sh/api/invoices/send-invoice) *** ### POST /invoices//send\_and\_approve **Send and approve invoice** Send and approve invoice via email (MSP accounts only). #### Path Parameters * **invoice\_token** (path) (string) - **Required** #### Responses **200**: Invoice approved and sent successfully **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/invoices/send-and-approve-invoice](https://docs.vantage.sh/api/invoices/send-and-approve-invoice) *** ## KubernetesEfficiencyReports ### GET /kubernetes\_efficiency\_reports **Get all Kubernetes efficiency reports** Return all KubernetesEfficiencyReports. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **workspace\_token** (string) - Optional: Filter by workspace token. * **q** (string) - Optional: Search Kubernetes efficiency reports by title. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/kubernetesefficiencyreports/get-all-kubernetes-efficiency-reports](https://docs.vantage.sh/api/kubernetesefficiencyreports/get-all-kubernetes-efficiency-reports) *** ### POST /kubernetes\_efficiency\_reports **Create Kubernetes efficiency report** Create a KubernetesEfficiencyReport. #### Request Body ```json theme={null} { "workspace_token": string // required // The Workspace in which the KubernetesEfficiencyReport will be created, "title": string // required // The title of the KubernetesEfficiencyReport, "filter": string // The filter query language to apply to the KubernetesEfficiencyReport. Additional documentation available at https://docs.vantage.sh/vql, "start_date": string // The start date of the KubernetesEfficiencyReport. ISO 8601 Formatted. Incompatible with 'date_interval' parameter, "end_date": string // The end date of the KubernetesEfficiencyReport. ISO 8601 Formatted. Incompatible with 'date_interval' parameter, "date_interval": string // The date interval of the KubernetesEfficiencyReport. Incompatible with 'start_date' and 'end_date' parameters. Defaults to 'this_month' if start_date and end_date are not provided. Allowed values: `this_month`, `last_7_days`, `last_30_days`, `last_month`, `last_3_months`, `last_6_months`, `custom`, `last_12_months`, `last_24_months`, `last_36_months`, `next_month`, `next_3_months`, `next_6_months`, `next_12_months`, `year_to_date`, `last_3_days`, `last_14_days`, "aggregated_by": string // The column by which the costs are aggregated. Allowed values: `idle_cost`, `amount`, `cost_efficiency`, "date_bucket": string // The date bucket of the KubernetesEfficiencyReport. Allowed values: `day`, `week`, `month`, `quarter`, "groupings": [string] // Grouping values for aggregating costs on the KubernetesEfficiencyReport. Group by up to 100 fields. Valid groupings: cluster_id, namespace, region, labeled, category, pod, label:label_name } ``` #### Responses **201**: Created **400**: BadRequest **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/kubernetesefficiencyreports/create-kubernetes-efficiency-report](https://docs.vantage.sh/api/kubernetesefficiencyreports/create-kubernetes-efficiency-report) *** ### POST /kubernetes\_efficiency\_reports/data\_exports **Generate Kubernetes efficiency data export** Generate a DataExport of Kubernetes efficiency data. #### Query Parameters * **groupings** (array) - Optional: Group the results by up to 100 fields. Valid groupings: cluster\_id, namespace, region, labeled, category, pod, label:label\_name. #### Request Body ```json theme={null} { "kubernetes_efficiency_report_token": string // The KubernetesEfficiencyReport token. If not provided, the default report for the workspace will be used, "filter": string // The filter query language to apply to the KubernetesEfficiencyReport. Additional documentation available at https://docs.vantage.sh/vql, "workspace_token": string // The token of the Workspace to export data from. Ignored if 'kubernetes_efficiency_report_token' is set. Required if the API token is associated with multiple Workspaces, "start_date": string // First date you would like to filter data from. ISO 8601 formatted, "end_date": string // Last date you would like to filter data to. ISO 8601 formatted, "date_bin": string // The date bin of the data. Defaults to the report's default or day. Allowed values: `day`, `week`, `month`, `quarter` } ``` #### Responses **202**: The data export has been queued and will be available at the location specified in the Location header. **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/kubernetesefficiencyreports/generate-kubernetes-efficiency-data-export](https://docs.vantage.sh/api/kubernetesefficiencyreports/generate-kubernetes-efficiency-data-export) *** ### DELETE /kubernetes\_efficiency\_reports/ **Delete Kubernetes efficiency report** Delete a KubernetesEfficiencyReport. #### Path Parameters * **kubernetes\_efficiency\_report\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/kubernetesefficiencyreports/delete-kubernetes-efficiency-report](https://docs.vantage.sh/api/kubernetesefficiencyreports/delete-kubernetes-efficiency-report) *** ### GET /kubernetes\_efficiency\_reports/ **Get Kubernetes efficiency report by token** Return a KubernetesEfficiencyReport. #### Path Parameters * **kubernetes\_efficiency\_report\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/kubernetesefficiencyreports/get-kubernetes-efficiency-report-by-token](https://docs.vantage.sh/api/kubernetesefficiencyreports/get-kubernetes-efficiency-report-by-token) *** ### PUT /kubernetes\_efficiency\_reports/ **Update Kubernetes efficiency report** Update a KubernetesEfficiencyReport. #### Path Parameters * **kubernetes\_efficiency\_report\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string // The title of the KubernetesEfficiencyReport, "filter": string // The filter query language to apply to the KubernetesEfficiencyReport. Additional documentation available at https://docs.vantage.sh/vql, "start_date": string // The start date of the KubernetesEfficiencyReport. ISO 8601 Formatted. Incompatible with 'date_interval' parameter, "end_date": string // The end date of the KubernetesEfficiencyReport. ISO 8601 Formatted. Incompatible with 'date_interval' parameter, "date_interval": string // The date interval of the KubernetesEfficiencyReport. Incompatible with 'start_date' and 'end_date' parameters. Defaults to 'this_month' if start_date and end_date are not provided. Allowed values: `this_month`, `last_7_days`, `last_30_days`, `last_month`, `last_3_months`, `last_6_months`, `custom`, `last_12_months`, `last_24_months`, `last_36_months`, `next_month`, `next_3_months`, `next_6_months`, `next_12_months`, `year_to_date`, `last_3_days`, `last_14_days`, "aggregated_by": string // The column by which the costs are aggregated. Allowed values: `idle_cost`, `amount`, `cost_efficiency`, "date_bucket": string // The date bucket of the KubernetesEfficiencyReport. Allowed values: `day`, `week`, `month`, `quarter`, "groupings": [string] // Grouping values for aggregating costs on the KubernetesEfficiencyReport. Group by up to 100 fields. Valid groupings: cluster_id, namespace, region, labeled, category, pod, label:label_name } ``` #### Responses **200**: OK **400**: BadRequest **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/kubernetesefficiencyreports/update-kubernetes-efficiency-report](https://docs.vantage.sh/api/kubernetesefficiencyreports/update-kubernetes-efficiency-report) *** ### GET /kubernetes\_efficiency\_reports//costs **Get costs for Kubernetes efficiency report** Return costs for a KubernetesEfficiencyReport. #### Path Parameters * **kubernetes\_efficiency\_report\_token** (path) (string) - **Required** #### Query Parameters * **start\_date** (string (date)) - Optional: First date to query costs from, inclusive. YYYY-MM-DD formatted. * Example: `2026-09-01` * **end\_date** (string (date)) - Optional: Last date to query costs through, inclusive. YYYY-MM-DD formatted. * Example: `2026-09-30` * **date\_bin** (string) - Optional: The date bin for the costs. Defaults to the report's configured date bucket. * Allowed values: `day`, `week`, `month`, `quarter` * **groupings** (array) - Optional: Group the cost rows by up to 100 fields. Valid groupings: cluster\_id, namespace, region, labeled, category, pod, label:label\_name. * **filter** (string) - Optional: The VQL filter to apply to the costs. Overrides the report's saved filter. * **order** (string) - Optional: Whether to order cost rows by date ascending or descending. * Allowed values: `asc`, `desc` * Default: `desc` * **page** (integer (int32)) - Optional: The page of cost rows to return. * Default: `1` * **limit** (integer (int32)) - Optional: The number of cost rows to return. The maximum is 2500. * Default: `500` #### Responses **200**: OK **400**: BadRequest **402**: PaymentRequired **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/kubernetesefficiencyreports/get-costs-for-kubernetes-efficiency-report](https://docs.vantage.sh/api/kubernetesefficiencyreports/get-costs-for-kubernetes-efficiency-report) *** ## ManagedAccounts ### GET /managed\_accounts **Get all managed accounts** Returns a list of managed accounts. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/managedaccounts/get-all-managed-accounts](https://docs.vantage.sh/api/managedaccounts/get-all-managed-accounts) *** ### POST /managed\_accounts **Create managed account** Create a Managed Account. #### Request Body ```json theme={null} { "name": string // required // The name of the Managed Account, "contact_email": string // required // The contact email address for the Managed Account, "access_credential_tokens": [string] // Access Credential (aka Integrations) tokens to assign to the Managed Account, "billing_rule_tokens": [string] // Billing Rule tokens to assign to the Managed Account, in their desired execution order. Tokens must be ordered by execution group: AWS transforms, then COST inserts, then COST transforms, then monthly post-transform inserts. Within a group any order is accepted and persisted as-is. Submitting a list whose cross-group ordering does not match the pipeline returns a 400.Existing rules with apply_to_all enabled will be added implicity to the end of their execution group, "email_domain": string // Email domain to associate with this Managed Account for SSO } ``` #### Responses **201**: Created **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/managedaccounts/create-managed-account](https://docs.vantage.sh/api/managedaccounts/create-managed-account) *** ### DELETE /managed\_accounts/ **Delete managed account** Delete a Managed Account. #### Path Parameters * **managed\_account\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/managedaccounts/delete-managed-account](https://docs.vantage.sh/api/managedaccounts/delete-managed-account) *** ### GET /managed\_accounts/ **Get managed account by token** Return a Managed Account. #### Path Parameters * **managed\_account\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/managedaccounts/get-managed-account-by-token](https://docs.vantage.sh/api/managedaccounts/get-managed-account-by-token) *** ### PUT /managed\_accounts/ **Update managed account** Update a Managed Account. #### Path Parameters * **managed\_account\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "name": string // The name of the Managed Account, "contact_email": string // The contact email address for the Managed Account, "access_credential_tokens": [string] // Access Credential (aka Integrations) tokens to assign to the Managed Account, "billing_rule_tokens": [string] // Billing Rule tokens to assign to the Managed Account, in their desired execution order. Tokens must be ordered by execution group: AWS transforms, then COST inserts, then COST transforms, then monthly post-transform inserts. Within a group any order is accepted and persisted as-is. Submitting a list whose cross-group ordering does not match the pipeline returns a 400, "email_domain": string // Email domain to associate with this Managed Account for SSO, "msp_billing_profile_token": string // Token of the MSP billing profile to use for this managed account (MSP invoicing accounts only), "payment_terms_days": integer // Number of days until payment is due after invoice date (MSP invoicing accounts only). Defaults to 10, "include_managed_account_integrations": boolean // Whether to include managed account's own integrations in invoice cost calculations (MSP invoicing accounts only). Defaults to false, "billing_information_attributes": { // Billing address and contact information (MSP invoicing accounts only) "id": integer, "token": string, "company_name": string // Company name for billing, "country_code": string // ISO country code, "address_line_1": string // First line of billing address, "address_line_2": string // Second line of billing address, "city": string // City for billing address, "state": string // State or province for billing address, "postal_code": string // Postal or ZIP code, "billing_email": [string] // Array of billing email addresses }, "business_information_attributes": { // Business information and custom fields (MSP invoicing accounts only) "id": integer, "token": string, "metadata": { // Business metadata including custom fields "custom_fields": [ // Array of custom field objects { "name": string // Custom field name, "value": string // Custom field value } ] } } } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/managedaccounts/update-managed-account](https://docs.vantage.sh/api/managedaccounts/update-managed-account) *** ### GET /managed\_accounts//integrations/ **Get managed account integration** Returns the Integration delegated to this Managed Account from the Access Credential named in the path, along with the provider account identifiers it imports. Delegate an Access Credential to a Managed Account with access\_credential\_tokens before calling this. #### Path Parameters * **managed\_account\_token** (path) (string) - **Required** * **access\_credential\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/managedaccounts/get-managed-account-integration](https://docs.vantage.sh/api/managedaccounts/get-managed-account-integration) *** ### PUT /managed\_accounts//integrations/ **Update managed account integration** Replaces the provider account identifiers a delegated Integration imports. An empty array applies no filter, so every provider account the Access Credential can see is imported. Identifiers are only accepted for providers that support scoping a delegation. Azure CSP uses subscription ids and GCP uses project ids. Stop delegating an Integration by removing its token from access\_credential\_tokens on the Managed Account. #### Path Parameters * **managed\_account\_token** (path) (string) - **Required** * **access\_credential\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "provider_account_identifiers": [string] // required // The provider account identifiers this delegated Integration should import, replacing the current list. For Azure CSP these are subscription ids and for GCP these are project ids. An empty array applies no filter } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/managedaccounts/update-managed-account-integration](https://docs.vantage.sh/api/managedaccounts/update-managed-account-integration) *** ### DELETE /managed\_accounts//sso\_connection **Delete SSO connection for managed account** Delete SSO connection for a Managed Account. #### Path Parameters * **managed\_account\_token** (path) (string) - **Required** #### Responses **204**: No Content **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/managedaccounts/delete-sso-connection-for-managed-account](https://docs.vantage.sh/api/managedaccounts/delete-sso-connection-for-managed-account) *** ### POST /managed\_accounts//sso\_connection **Configure SSO for managed account** Configure SSO for a Managed Account. #### Path Parameters * **managed\_account\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "type": string // required // The type of SSO connection. Currently supported: saml. Allowed values: `saml`, "saml_metadata_url": string // The SAML metadata URL for the identity provider. Required when type is saml, "additional_domains": [string] // Additional email domains to associate with this SSO configuration. The account's SSO domain is always included } ``` #### Responses **201**: Created **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/managedaccounts/configure-sso-for-managed-account](https://docs.vantage.sh/api/managedaccounts/configure-sso-for-managed-account) *** ### PUT /managed\_accounts//sso\_connection **Update SSO configuration for managed account** Update SSO configuration for a Managed Account. #### Path Parameters * **managed\_account\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "saml_metadata_url": string // The SAML metadata URL for the identity provider, "additional_domains": [string] // Additional email domains to associate with this SSO configuration. Replaces existing additional domains. The account's SSO domain is always preserved } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/managedaccounts/update-sso-configuration-for-managed-account](https://docs.vantage.sh/api/managedaccounts/update-sso-configuration-for-managed-account) *** ## Me ### GET /me **Get authenticated user info** Get information about the authenticated BearerToken. #### Responses **200**: General information about the user. For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/me/get-authenticated-user-info](https://docs.vantage.sh/api/me/get-authenticated-user-info) *** ### PUT /me **Update authenticated user** Update the authenticated User. #### Request Body ```json theme={null} { "default_dashboard_token": string // The token of a Dashboard to set as the User default. Send null to clear } ``` #### Responses **200**: OK **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/me/update-authenticated-user](https://docs.vantage.sh/api/me/update-authenticated-user) *** ## NetworkFlowLogs ### GET /network\_flow\_logs **Get network flow logs** Return aggregated Network Flow Logs for a saved report or ad hoc VQL query. #### Query Parameters * **network\_flow\_report\_token** (string) - Optional * **workspace\_token** (string) - Optional * **filter** (string) - Optional * **date\_interval** (string) - Optional * Allowed values: `last_3_days`, `last_7_days`, `last_14_days`, `last_30_days` * **start\_date** (string (date)) - Optional * **end\_date** (string (date)) - Optional * **groupings** (array) - Optional * **flow\_direction** (string) - Optional * Allowed values: `all`, `ingress`, `egress` * **flow\_weight** (string) - Optional * Allowed values: `costs`, `bytes` * **page** (integer (int32)) - Optional * Default: `1` * **limit** (integer (int32)) - Optional * Default: `100` #### Responses **200**: OK **400**: BadRequest **402**: PaymentRequired **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/networkflowlogs/get-network-flow-logs](https://docs.vantage.sh/api/networkflowlogs/get-network-flow-logs) *** ## NetworkFlowReports ### GET /network\_flow\_reports **Get all network flow reports** Return all NetworkFlowReports. #### Query Parameters * **q** (string) - Optional: A search query to filter NetworkFlowReports by title. * **workspace\_token** (string) - Optional: Filter by workspace token. * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/networkflowreports/get-all-network-flow-reports](https://docs.vantage.sh/api/networkflowreports/get-all-network-flow-reports) *** ### POST /network\_flow\_reports **Create network flow report** Create a NetworkFlowReport. #### Request Body ```json theme={null} { "workspace_token": string // required // The Workspace in which the NetworkFlowReport will be created, "title": string // required // The title of the NetworkFlowReport, "filter": string // The filter query language to apply to the NetworkFlowReport. Additional documentation available at https://docs.vantage.sh/vql, "start_date": string // The start date of a custom NetworkFlowReport. YYYY-MM-DD formatted, "end_date": string // The end date of a custom NetworkFlowReport. YYYY-MM-DD formatted, "date_interval": string // The date interval of the NetworkFlowReport. Dates are used only for the 'custom' interval. Defaults to 'last_7_days'. Allowed values: `last_3_days`, `last_7_days`, `last_14_days`, `last_30_days`, `custom`, "groupings": [string] // Grouping values for aggregating data on the NetworkFlowReport. Valid groupings: account_id, az_id, dstaddr, dsthostname, flow_direction, interface_id, instance_id, peer_resource_uuid, peer_account_id, peer_vpc_id, peer_region, peer_az_id, peer_subnet_id, peer_interface_id, peer_instance_id, region, resource_uuid, srcaddr, srchostname, subnet_id, traffic_category, traffic_path, vpc_id, "flow_direction": string // The flow direction of the NetworkFlowReport. Allowed values: `all`, `ingress`, `egress`, "flow_weight": string // The dimension by which the logs in the report are sorted. Defaults to costs. Allowed values: `costs`, `bytes` } ``` #### Responses **201**: Created **400**: BadRequest **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/networkflowreports/create-network-flow-report](https://docs.vantage.sh/api/networkflowreports/create-network-flow-report) *** ### DELETE /network\_flow\_reports/ **Delete network flow report** Delete a NetworkFlowReport. #### Path Parameters * **network\_flow\_report\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/networkflowreports/delete-network-flow-report](https://docs.vantage.sh/api/networkflowreports/delete-network-flow-report) *** ### GET /network\_flow\_reports/ **Get network flow report by token** Return a NetworkFlowReport. #### Path Parameters * **network\_flow\_report\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/networkflowreports/get-network-flow-report-by-token](https://docs.vantage.sh/api/networkflowreports/get-network-flow-report-by-token) *** ### PUT /network\_flow\_reports/ **Update network flow report** Update a NetworkFlowReport. #### Path Parameters * **network\_flow\_report\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string // The title of the NetworkFlowReport, "filter": string // The filter query language to apply to the NetworkFlowReport. Additional documentation available at https://docs.vantage.sh/vql, "start_date": string // The start date of a custom NetworkFlowReport. YYYY-MM-DD formatted, "end_date": string // The end date of a custom NetworkFlowReport. YYYY-MM-DD formatted, "date_interval": string // The date interval of the NetworkFlowReport. Dates are used only for the 'custom' interval. Defaults to 'last_7_days'. Allowed values: `last_3_days`, `last_7_days`, `last_14_days`, `last_30_days`, `custom`, "groupings": [string] // Grouping values for aggregating data on the NetworkFlowReport. Valid groupings: account_id, az_id, dstaddr, dsthostname, flow_direction, interface_id, instance_id, peer_resource_uuid, peer_account_id, peer_vpc_id, peer_region, peer_az_id, peer_subnet_id, peer_interface_id, peer_instance_id, region, resource_uuid, srcaddr, srchostname, subnet_id, traffic_category, traffic_path, vpc_id, "flow_direction": string // The flow direction of the NetworkFlowReport. Allowed values: `all`, `ingress`, `egress`, "flow_weight": string // The dimension by which the logs in the report are sorted. Defaults to costs. Allowed values: `costs`, `bytes` } ``` #### Responses **200**: OK **400**: BadRequest **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/networkflowreports/update-network-flow-report](https://docs.vantage.sh/api/networkflowreports/update-network-flow-report) *** ## Ping ### GET /ping This is a health check endpoint that can be used to determine Vantage API healthiness. It will return 200 if everything is running smoothly. #### Responses **200**: This is a health check endpoint that can be used to determine Vantage API healthiness. It will return 200 if everything is running smoothly. For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/ping/](https://docs.vantage.sh/api/ping/) *** ## Prices ### GET /products **Get all products** Return available Products for a Service. For example, with a Provider of AWS and a Service of EC2, Products will be a list of all EC2 Instances. By default, this endpoint returns all Products across all Services and Providers but has optional query parameters for filtering listed below. #### Query Parameters * **provider\_id** (string) - Optional: Query by Provider to list all Products across all Services for a Provider. e.g. aws * **service\_id** (string) - Optional: Query by Service to list all Products for a specific provider service. e.g. aws-ec2 * **name** (string) - Optional: Query by name of the Product to see a list of products which match that name. e.g. m5a.16xlarge * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000 #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/prices/get-all-products](https://docs.vantage.sh/api/prices/get-all-products) *** ### GET /products/ **Get product by ID** Return a product #### Path Parameters * **id** (path) (string) - **Required** #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/prices/get-product-by-id](https://docs.vantage.sh/api/prices/get-product-by-id) *** ### GET /products//prices **Get prices for a product** Return available Prices across all Regions for a Product. #### Path Parameters * **product\_id** (path) (string) - **Required** #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000 #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/prices/get-prices-for-a-product](https://docs.vantage.sh/api/prices/get-prices-for-a-product) *** ### GET /products//prices/ **Get price by ID** Returns a price #### Path Parameters * **product\_id** (path) (string) - **Required** * **id** (path) (string) - **Required** #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/prices/get-price-by-id](https://docs.vantage.sh/api/prices/get-price-by-id) *** ## RecommendationViews ### GET /recommendation\_views **Get all recommendation views** Return all RecommendationViews. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **workspace\_token** (string) - Optional: Filter by workspace token. * **q** (string) - Optional: Search recommendation views by title. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/recommendationviews/get-all-recommendation-views](https://docs.vantage.sh/api/recommendationviews/get-all-recommendation-views) *** ### POST /recommendation\_views **Create recommendation view** Create a RecommendationView. #### Request Body ```json theme={null} { "title": string // required // The title of the RecommendationView, "workspace_token": string // required // The Workspace to associate the RecommendationView with, "provider_ids": [string] // Filter by one or more providers (e.g. aws, gcp, azure, kubernetes, datadog), "billing_account_ids": [string] // Filter by billing account identifiers, "account_ids": [string] // Filter by cloud account identifiers, "regions": [string] // Filter by region slugs (e.g. us-east-1, eastus, asia-east1), "types": [string] // Filter by one or more recommendation type slugs, "tag_key": string // Filter by tag key (must be used with tag_value), "tag_value": string // Filter by tag value (requires tag_key), "start_date": string // Filter recommendations created on/after this YYYY-MM-DD date, "end_date": string // Filter recommendations created on/before this YYYY-MM-DD date, "min_savings": number // Filter recommendations with at least this amount of potential savings } ``` #### Responses **201**: Created **400**: BadRequest **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/recommendationviews/create-recommendation-view](https://docs.vantage.sh/api/recommendationviews/create-recommendation-view) *** ### DELETE /recommendation\_views/ **Delete recommendation view** Delete a RecommendationView. #### Path Parameters * **recommendation\_view\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/recommendationviews/delete-recommendation-view](https://docs.vantage.sh/api/recommendationviews/delete-recommendation-view) *** ### GET /recommendation\_views/ **Get recommendation view by token** Return a specific RecommendationView. #### Path Parameters * **recommendation\_view\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/recommendationviews/get-recommendation-view-by-token](https://docs.vantage.sh/api/recommendationviews/get-recommendation-view-by-token) *** ### PUT /recommendation\_views/ **Update recommendation view** Update a RecommendationView. #### Path Parameters * **recommendation\_view\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string // The title of the RecommendationView, "provider_ids": [string] // Filter by one or more providers (e.g. aws, gcp, azure, kubernetes, datadog), "billing_account_ids": [string] // Filter by billing account identifiers, "account_ids": [string] // Filter by cloud account identifiers, "regions": [string] // Filter by region slugs (e.g. us-east-1, eastus, asia-east1), "types": [string] // Filter by one or more recommendation type slugs, "tag_key": string // Filter by tag key (must be used with tag_value), "tag_value": string // Filter by tag value (requires tag_key), "start_date": string // Filter recommendations created on/after this YYYY-MM-DD date, "end_date": string // Filter recommendations created on/before this YYYY-MM-DD date, "min_savings": number // Filter recommendations with at least this amount of potential savings } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/recommendationviews/update-recommendation-view](https://docs.vantage.sh/api/recommendationviews/update-recommendation-view) *** ## Recommendations ### GET /recommendations **Get all recommendations** 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). #### Query Parameters * **provider\_ids** (array) - Optional: Filter by one or more providers. Requires workspace\_token. * **billing\_account\_ids** (array) - Optional: Filter by billing account identifiers. Requires workspace\_token. * **account\_ids** (array) - Optional: Filter by account identifiers. Requires workspace\_token. * **regions** (array) - Optional: Filter by region slugs (e.g. us-east-1, eastus, asia-east1). Requires workspace\_token. * **tag\_key** (string) - Optional: Filter by tag key (must be used with tag\_value). Requires workspace\_token. * **tag\_value** (string) - Optional: Filter by tag value (requires tag\_key). Requires workspace\_token. * **start\_date** (string) - Optional: Filter recommendations created on/after this YYYY-MM-DD date. Requires workspace\_token. * **end\_date** (string) - Optional: Filter recommendations created on/before this YYYY-MM-DD date. Requires workspace\_token. * **status** (string) - Optional: Filter by status. * Allowed values: `active`, `archived` * **min\_savings** (number (float)) - Optional: Filter by recommendations whose potential savings are greater than or equal to this amount, in the workspace's currency. Requires workspace\_token. * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The number of results to return. The maximum is 1000. * **workspace\_token** (string) - Optional: Filter by workspace. * **provider\_account\_id** (string) - Optional: Filter by provider account id (AWS account, Azure subscription id, etc). * **category** (string) - Optional: Filter by exact recommendation category. Ignored when type is provided. * **type** (string) - Optional: Fuzzy filter by recommendation type using a case-insensitive literal substring. Examples: aws, aws:ec2, aws:ec2:rightsizing. * **provider** (string) - Optional: Filter by provider. * Allowed values: `aws`, `gcp`, `azure`, `kubernetes`, `datadog` #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/recommendations/get-all-recommendations](https://docs.vantage.sh/api/recommendations/get-all-recommendations) *** ### GET /recommendations/by\_type//resources **Get all resources for a recommendation type** Return all Active Resources associated with recommendations of the specified type. #### Path Parameters * **type** (path) (string) - **Required** #### Query Parameters * **provider\_ids** (array) - Optional: Filter by one or more providers. Requires workspace\_token. * **billing\_account\_ids** (array) - Optional: Filter by billing account identifiers. Requires workspace\_token. * **account\_ids** (array) - Optional: Filter by account identifiers. Requires workspace\_token. * **regions** (array) - Optional: Filter by region slugs (e.g. us-east-1, eastus, asia-east1). Requires workspace\_token. * **tag\_key** (string) - Optional: Filter by tag key (must be used with tag\_value). Requires workspace\_token. * **tag\_value** (string) - Optional: Filter by tag value (requires tag\_key). Requires workspace\_token. * **start\_date** (string) - Optional: Filter recommendations created on/after this YYYY-MM-DD date. Requires workspace\_token. * **end\_date** (string) - Optional: Filter recommendations created on/before this YYYY-MM-DD date. Requires workspace\_token. * **status** (string) - Optional: Filter by status. * Allowed values: `active`, `archived` * **min\_savings** (number (float)) - Optional: Filter by recommendations whose potential savings are greater than or equal to this amount, in the workspace's currency. Requires workspace\_token. * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The number of results to return. The maximum is 1000. * **workspace\_token** (string) - **Required**: The workspace token to filter recommendations by. Required. #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/recommendations/get-all-resources-for-a-recommendation-type](https://docs.vantage.sh/api/recommendations/get-all-resources-for-a-recommendation-type) *** ### GET /recommendations/ **Get recommendation by token** Return a Recommendation. #### Path Parameters * **recommendation\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/recommendations/get-recommendation-by-token](https://docs.vantage.sh/api/recommendations/get-recommendation-by-token) *** ### GET /recommendations//resources **Get all resources for a recommendation** Return all Active Resources, including Recommendation Actions, referenced in this Recommendation. #### Path Parameters * **recommendation\_token** (path) (string) - **Required** #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The number of results to return. Defaults to 25. The maximum is 500. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/recommendations/get-all-resources-for-a-recommendation](https://docs.vantage.sh/api/recommendations/get-all-resources-for-a-recommendation) *** ### GET /recommendations//resources/ **Get specific resource for a recommendation** Return an Active Resource, including Recommendation Actions, referenced in this Recommendation. #### Path Parameters * **recommendation\_token** (path) (string) - **Required** * **resource\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/recommendations/get-specific-resource-for-a-recommendation](https://docs.vantage.sh/api/recommendations/get-specific-resource-for-a-recommendation) *** ## ReportForecasts ### GET /report\_forecasts **Get all report forecasts** Return all scenario-model ReportForecasts for a CostReport. #### Query Parameters * **cost\_report\_token** (string) - **Required** * **page** (integer (int32)) - Optional * **limit** (integer (int32)) - Optional #### Responses **200**: Return all scenario-model ReportForecasts for a CostReport. **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/reportforecasts/get-all-report-forecasts](https://docs.vantage.sh/api/reportforecasts/get-all-report-forecasts) *** ### POST /report\_forecasts **Create report forecast** Create a scenario-model ReportForecast. #### Request Body ```json theme={null} { "cost_report_token": string // required, "title": string // required, "scenario_model_tokens": [string], "business_metric_token": string, "set_as_default": boolean } ``` #### Responses **201**: Create a scenario-model ReportForecast. **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/reportforecasts/create-report-forecast](https://docs.vantage.sh/api/reportforecasts/create-report-forecast) *** ### DELETE /report\_forecasts/ **Delete report forecast** Delete a scenario-model ReportForecast. #### Path Parameters * **report\_forecast\_token** (path) (string) - **Required** #### Responses **204**: Delete a scenario-model ReportForecast. **403**: Forbidden **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/reportforecasts/delete-report-forecast](https://docs.vantage.sh/api/reportforecasts/delete-report-forecast) *** ### GET /report\_forecasts/ **Get report forecast by token** Return a scenario-model ReportForecast. #### Path Parameters * **report\_forecast\_token** (path) (string) - **Required** #### Responses **200**: Return a scenario-model ReportForecast. **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/reportforecasts/get-report-forecast-by-token](https://docs.vantage.sh/api/reportforecasts/get-report-forecast-by-token) *** ### PUT /report\_forecasts/ **Update report forecast** Update a scenario-model ReportForecast. #### Path Parameters * **report\_forecast\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string, "scenario_model_tokens": [string], "business_metric_token": string, "set_as_default": boolean } ``` #### Responses **200**: Update a scenario-model ReportForecast. **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/reportforecasts/update-report-forecast](https://docs.vantage.sh/api/reportforecasts/update-report-forecast) *** ## ReportNotifications ### GET /report\_notifications **Get all report notifications** Return all ReportNotifications. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **workspace\_token** (string) - Optional: Filter by workspace token. * **q** (string) - Optional: Search report notifications by title. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/reportnotifications/get-all-report-notifications](https://docs.vantage.sh/api/reportnotifications/get-all-report-notifications) *** ### POST /report\_notifications **Create report notification** Create a ReportNotification. #### Request Body ```json theme={null} { "title": string // required // The title of the ReportNotification, "cost_report_token": string // required // The CostReport token, "workspace_token": string // The token of the Workspace to add the ReportNotification to. Required if the API token is associated with multiple Workspaces, "user_tokens": [string] // The Users that receive the notification, "recipient_emails": [string] // Email addresses that receive the notification. Must be organization users, on the account's SSO domain, or an approved third-party service address, "recipient_channels": [string] // The Slack or Microsoft Teams channels that receive the notification, "frequency": string // required // The frequency the ReportNotification is sent. Possible values: daily, weekly, monthly, "change": string // required // The type of change the ReportNotification is tracking. Possible values: percentage, dollars } ``` #### Responses **201**: Created **400**: BadRequest **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/reportnotifications/create-report-notification](https://docs.vantage.sh/api/reportnotifications/create-report-notification) *** ### DELETE /report\_notifications/ **Delete report notification** Delete a ReportNotification. #### Path Parameters * **report\_notification\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/reportnotifications/delete-report-notification](https://docs.vantage.sh/api/reportnotifications/delete-report-notification) *** ### GET /report\_notifications/ **Get report notification by token** Return a ReportNotification. #### Path Parameters * **report\_notification\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/reportnotifications/get-report-notification-by-token](https://docs.vantage.sh/api/reportnotifications/get-report-notification-by-token) *** ### PUT /report\_notifications/ **Update report notification** Update a ReportNotification. #### Path Parameters * **report\_notification\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string // The title of the ReportNotification, "cost_report_token": string // The CostReport token, "user_tokens": [string] // The Users that receive the notification, "recipient_emails": [string] // Email addresses that receive the notification. Must be organization users, on the account's SSO domain, or an approved third-party service address, "recipient_channels": [string] // The Slack or Microsoft Teams channels that receive the notification, "frequency": string // The frequency the ReportNotification is sent. Possible values: daily, weekly, monthly, "change": string // The type of change the ReportNotification is tracking. Possible values: percentage, dollars } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/reportnotifications/update-report-notification](https://docs.vantage.sh/api/reportnotifications/update-report-notification) *** ## ResourceReports ### GET /resource\_reports **Get all resource reports** Return all ResourceReports. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The number of results to return. The maximum is 1000. * **workspace\_token** (string) - Optional: Filter by workspace token. * **q** (string) - Optional: A search query to filter ResourceReports by title. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/resourcereports/get-all-resource-reports](https://docs.vantage.sh/api/resourcereports/get-all-resource-reports) *** ### POST /resource\_reports **Create resource report** Create a ResourceReport. #### Request Body ```json theme={null} { "workspace_token": string // required // The token of the Workspace to add the ResourceReport to, "title": string // The title of the ResourceReport, "filter": string // The filter query language to apply to the ResourceReport. Additional documentation available at https://docs.vantage.sh/vql, "columns": [string] // Array of column names to display in the table. Column names should match those returned by the /resource_reports/columns endpoint. The order determines the display order. Only available for reports with a single resource type filter, "folder_token": string // The token of the Folder to add the ResourceReport to } ``` #### Responses **201**: Created **400**: BadRequest **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/resourcereports/create-resource-report](https://docs.vantage.sh/api/resourcereports/create-resource-report) *** ### GET /resource\_reports/columns **Get resource report columns** List available columns for a resource type. #### Query Parameters * **resource\_type** (string) - **Required**: VQL resource type name ([https://docs.vantage.sh/vql\_resource\_report#costs-by-resource-type](https://docs.vantage.sh/vql_resource_report#costs-by-resource-type)) #### Responses **200**: Returns array of available column names for the specified resource type **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/resourcereports/get-resource-report-columns](https://docs.vantage.sh/api/resourcereports/get-resource-report-columns) *** ### DELETE /resource\_reports/ **Delete resource report** Delete a ResourceReport. #### Path Parameters * **resource\_report\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/resourcereports/delete-resource-report](https://docs.vantage.sh/api/resourcereports/delete-resource-report) *** ### GET /resource\_reports/ **Get resource report by token** Return a ResourceReport. #### Path Parameters * **resource\_report\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/resourcereports/get-resource-report-by-token](https://docs.vantage.sh/api/resourcereports/get-resource-report-by-token) *** ### PUT /resource\_reports/ **Update resource report** Update a ResourceReport. #### Path Parameters * **resource\_report\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string // The title of the ResourceReport, "filter": string // The filter query language to apply to the ResourceReport. Additional documentation available at https://docs.vantage.sh/vql, "columns": [string] // Array of column names to display in the table. Column names should match those returned by the /resource_reports/columns endpoint. The order determines the display order. Only available for reports with a single resource type filter, "folder_token": string // The token of the Folder to move the ResourceReport to } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/resourcereports/update-resource-report](https://docs.vantage.sh/api/resourcereports/update-resource-report) *** ## Resources ### GET /resources **Get resources** Return Resources contained in a ResourceReport #### Query Parameters * **resource\_report\_token** (string) - Optional: The ResourceReport token. * **filter** (string) - Optional: The filter query language to apply to the Resources. Additional documentation available at [https://docs.vantage.sh/vql](https://docs.vantage.sh/vql). * **workspace\_token** (string) - Optional: The Workspace in which the Resources are located. * **include\_cost** (boolean) - Optional: Include cost information in the response. * **page** (integer (int32)) - Optional: The page number for pagination. * **limit** (integer (int32)) - Optional: The number of resources to return per page. #### Responses **200**: OK **400**: BadRequest **402**: PaymentRequired **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/resources/get-resources](https://docs.vantage.sh/api/resources/get-resources) *** ### GET /resources/ **Get resource by token** Return a single Resource #### Path Parameters * **resource\_token** (path) (string) - **Required** #### Query Parameters * **include\_cost** (boolean) - Optional: Include cost information in the response. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/resources/get-resource-by-token](https://docs.vantage.sh/api/resources/get-resource-by-token) *** ## SavedFilters ### GET /saved\_filters **Get all saved filters** Return all SavedFilters that can be applied to a CostReport. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **q** (string) - Optional: Search saved filters by title. * **workspace\_token** (string) - Optional: The workspace token of the saved filters to return. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/savedfilters/get-all-saved-filters](https://docs.vantage.sh/api/savedfilters/get-all-saved-filters) *** ### POST /saved\_filters **Create saved filter** Create a SavedFilter for CostReports. #### Request Body ```json theme={null} { "title": string // required // The title of the SavedFilter, "workspace_token": string // The Workspace to associate the SavedFilter with. Required if the API token is associated with multiple Workspaces, "filter": string // The filter query language to apply to the SavedFilter, which subsequently gets applied to a CostReport. Additional documentation available at https://docs.vantage.sh/vql } ``` #### Responses **201**: Created **400**: BadRequest **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/savedfilters/create-saved-filter](https://docs.vantage.sh/api/savedfilters/create-saved-filter) *** ### DELETE /saved\_filters/ **Delete saved filter** Delete a SavedFilter for CostReports. #### Path Parameters * **saved\_filter\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/savedfilters/delete-saved-filter](https://docs.vantage.sh/api/savedfilters/delete-saved-filter) *** ### GET /saved\_filters/ **Get saved filter by token** Return a specific SavedFilter. #### Path Parameters * **saved\_filter\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/savedfilters/get-saved-filter-by-token](https://docs.vantage.sh/api/savedfilters/get-saved-filter-by-token) *** ### PUT /saved\_filters/ **Update saved filter** Update a SavedFilter for CostReports. #### Path Parameters * **saved\_filter\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string // The title of the SavedFilter, "filter": string // The filter query language to apply to the SavedFilter, which subsequently gets applied to a CostReport. Additional documentation available at https://docs.vantage.sh/vql } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/savedfilters/update-saved-filter](https://docs.vantage.sh/api/savedfilters/update-saved-filter) *** ## ScenarioModels ### GET /scenario\_models **Get all scenario models** Return all ScenarioModels. #### Query Parameters * **page** (integer (int32)) - Optional * **limit** (integer (int32)) - Optional #### Responses **200**: Return all ScenarioModels. For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/scenariomodels/get-all-scenario-models](https://docs.vantage.sh/api/scenariomodels/get-all-scenario-models) *** ### POST /scenario\_models **Create scenario model** Create a ScenarioModel. #### Request Body ```json theme={null} { "title": string // required, "priority": integer, "provider": string, "service": string, "workspace_token": string, "periods": [ // The periods for the ScenarioModel { "start_at": string // required, "end_at": string, "amount": number // required, "amount_type": string // required // Allowed values: `dollar`, `percent` } ] } ``` #### Responses **201**: Create a ScenarioModel. **403**: Forbidden **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/scenariomodels/create-scenario-model](https://docs.vantage.sh/api/scenariomodels/create-scenario-model) *** ### DELETE /scenario\_models/ **Delete scenario model** Delete a ScenarioModel. #### Path Parameters * **scenario\_model\_token** (path) (string) - **Required** #### Responses **204**: Delete a ScenarioModel. **403**: Forbidden **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/scenariomodels/delete-scenario-model](https://docs.vantage.sh/api/scenariomodels/delete-scenario-model) *** ### GET /scenario\_models/ **Get scenario model by token** Return a ScenarioModel. #### Path Parameters * **scenario\_model\_token** (path) (string) - **Required** #### Responses **200**: Return a ScenarioModel. **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/scenariomodels/get-scenario-model-by-token](https://docs.vantage.sh/api/scenariomodels/get-scenario-model-by-token) *** ### PUT /scenario\_models/ **Update scenario model** Update a ScenarioModel. #### Path Parameters * **scenario\_model\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string, "priority": integer, "provider": string, "service": string, "workspace_token": string, "periods": [ // The periods for the ScenarioModel { "start_at": string // required, "end_at": string, "amount": number // required, "amount_type": string // required // Allowed values: `dollar`, `percent` } ] } ``` #### Responses **200**: Update a ScenarioModel. **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/scenariomodels/update-scenario-model](https://docs.vantage.sh/api/scenariomodels/update-scenario-model) *** ## Segments ### GET /segments **Get all segments** Return all Segments. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **q** (string) - Optional: Search segments by title. * **workspace\_token** (string) - Optional: The workspace token of the segments to return. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/segments/get-all-segments](https://docs.vantage.sh/api/segments/get-all-segments) *** ### POST /segments **Create segment** Create a Segment. #### Request Body ```json theme={null} { "title": string // required // The title of the Segment, "description": string // The description of the Segment, "priority": integer // The priority of the Segment, "track_unallocated": boolean // Track Unallocated Costs which are not assigned to any of the created Segments, "report_settings": { // Report settings configurable on top-level Segments "include_credits": boolean // Reports created under this Segment will include credits, "include_refunds": boolean // Reports created under this Segment will include refunds, "include_discounts": boolean // Reports created under this Segment will include discounts, "include_tax": boolean // Reports created under this Segment will include tax, "amortize": boolean // Reports created under this Segment will amortize }, "workspace_token": string // The token of the Workspace to add the Segment to. Ignored if 'segment_token' is set. Required if the API token is associated with multiple Workspaces, "filter": string // The filter query language to apply to the Segment. Additional documentation available at https://docs.vantage.sh/vql, "parent_segment_token": string // The token of the parent Segment this new Segment belongs to. Determines the Workspace the segment is assigned to } ``` #### Responses **201**: Created **400**: BadRequest **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/segments/create-segment](https://docs.vantage.sh/api/segments/create-segment) *** ### DELETE /segments/ **Delete segment** Delete a Segment. #### Path Parameters * **segment\_token** (path) (string) - **Required** #### Responses **204**: No Content **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/segments/delete-segment](https://docs.vantage.sh/api/segments/delete-segment) *** ### GET /segments/ **Get segment by token** Return a Segment. #### Path Parameters * **segment\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/segments/get-segment-by-token](https://docs.vantage.sh/api/segments/get-segment-by-token) *** ### PUT /segments/ **Update segment** Update a Segment. #### Path Parameters * **segment\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "title": string // The title of the Segment, "description": string // The description of the Segment, "priority": integer // The priority of the Segment, "track_unallocated": boolean // Track Unallocated Costs which are not assigned to any of the created Segments, "report_settings": { // Report settings configurable on top-level Segments "include_credits": boolean // Reports created under this Segment will include credits, "include_refunds": boolean // Reports created under this Segment will include refunds, "include_discounts": boolean // Reports created under this Segment will include discounts, "include_tax": boolean // Reports created under this Segment will include tax, "amortize": boolean // Reports created under this Segment will amortize }, "filter": string // The filter query language to apply to the Segment. Additional documentation available at https://docs.vantage.sh/vql, "parent_segment_token": string // The token of the parent Segment this new Segment belongs to. Determines the Workspace the segment is assigned to } ``` #### Responses **200**: OK **400**: BadRequest **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/segments/update-segment](https://docs.vantage.sh/api/segments/update-segment) *** ## Tags ### GET /tags **Get all tags** Return all Tags that the current API token has access to. #### Query Parameters * **providers** (array) - Optional: An array of providers to scope Tags by. * **search\_query** (string) - Optional: A search query to filter Tags by tag key. * **sort\_direction** (string) - Optional: The direction in which you would like to sort the data by. Defaults to 'asc'. * Allowed values: `asc`, `desc` * **page** (integer (int32)) - Optional: The page of results to return. * Default: `1` * **limit** (integer (int32)) - Optional: The number of results to return per page. Defaults to 100. The maximum is 1000. * Default: `100` #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/tags/get-all-tags](https://docs.vantage.sh/api/tags/get-all-tags) *** ### PUT /tags **Update tag** Updates an existing Tag. #### Request Body ```json theme={null} { "tag_key": string, "tag_keys": [string], "hidden": boolean // Whether the Tag is hidden from the Vantage UI, "preferred": boolean // Whether the Tag is marked as preferred in the Vantage UI } ``` #### Responses **200**: OK **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/tags/update-tag](https://docs.vantage.sh/api/tags/update-tag) *** ### GET /tags//values **Get tag values** Returns corresponding TagValues for a given Tag. #### Path Parameters * **key** (path) (string) - **Required**: The key of the Tag for which you would like to retrieve TagValues. #### Query Parameters * **providers** (array) - Optional: An array of providers to scope TagValues by. * **sort\_direction** (string) - Optional: The direction in which to sort the TagValues. Defaults to 'asc'. * Allowed values: `asc`, `desc` * Default: `asc` * **search\_query** (string) - Optional: A search query to filter TagValues by the value name. * **page** (integer (int32)) - Optional: The page of results to return. * Default: `1` * **limit** (integer (int32)) - Optional: The number of results to return per page. Defaults to 100. The maximum is 1000. * Default: `100` #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/tags/get-tag-values](https://docs.vantage.sh/api/tags/get-tag-values) *** ## Teams ### GET /teams **Get all teams** Return all Teams that the current API token has access to. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **q** (string) - Optional: Search teams by name. * **workspace\_token** (string) - Optional: Filter by workspace token. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/teams/get-all-teams](https://docs.vantage.sh/api/teams/get-all-teams) *** ### POST /teams **Create team** Create a new Team. #### Request Body ```json theme={null} { "name": string // required // The name of the Team, "description": string // The description of the Team, "workspace_tokens": [string] // The Workspace tokens to associate to the Team, "user_tokens": [string] // The User tokens to associate to the Team, "user_emails": [string] // The User emails to associate to the Team, "role": string // The role to assign to the provided Users. Defaults to 'editor' which has editor permissions. Allowed values: `owner`, `editor`, `viewer`, "default_dashboard_token": string // The token of a Dashboard to set as the Team default. Send null to clear } ``` #### Responses **201**: Created **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/teams/create-team](https://docs.vantage.sh/api/teams/create-team) *** ### DELETE /teams/ **Delete team** Delete a Team. #### Path Parameters * **team\_token** (path) (string) - **Required** #### Responses **204**: No Content **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/teams/delete-team](https://docs.vantage.sh/api/teams/delete-team) *** ### GET /teams/ **Get team by token** Return a specific Team. #### Path Parameters * **team\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/teams/get-team-by-token](https://docs.vantage.sh/api/teams/get-team-by-token) *** ### PUT /teams/ **Update team** Update a Team. #### Path Parameters * **team\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "name": string // The name of the Team, "description": string // The description of the Team, "workspace_tokens": [string] // The Workspace tokens to associate to the Team, "user_tokens": [string] // The User tokens to associate to the Team, "user_emails": [string] // The User emails to associate to the Team, "role": string // The role to assign to the provided Users. Defaults to 'editor' which has editor permissions. Allowed values: `owner`, `editor`, `viewer`, "default_dashboard_token": string // The token of a Dashboard to set as the Team default. Send null to clear } ``` #### Responses **200**: OK **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/teams/update-team](https://docs.vantage.sh/api/teams/update-team) *** ### GET /teams//members **Get team members** Return all members of a Team. #### Path Parameters * **team\_token** (path) (string) - **Required** #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/teams/get-team-members](https://docs.vantage.sh/api/teams/get-team-members) *** ### POST /teams//members **Add team member** Add a member to a Team. #### Path Parameters * **team\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "user_email": string // required // The email address of the user to add to the Team, "role": string // required // The role to assign to the user. Defaults to 'editor'. Allowed values: `owner`, `editor`, `viewer`, `integration_owner` } ``` #### Responses **201**: Created **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/teams/add-team-member](https://docs.vantage.sh/api/teams/add-team-member) *** ### DELETE /teams//members/ **Remove team member** Remove a member from a Team. #### Path Parameters * **team\_token** (path) (string) - **Required** * **user\_token** (path) (string) - **Required** #### Responses **204**: No Content **400**: BadRequest **403**: Forbidden **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/teams/remove-team-member](https://docs.vantage.sh/api/teams/remove-team-member) *** ## UnitCosts ### GET /unit\_costs **Get all unit costs for a cost report** Return all UnitCosts for a CostReport. #### Query Parameters * **cost\_report\_token** (string) - **Required**: The CostReport token. * **start\_date** (string) - Optional: First date you would like to filter unit costs from. Defaults to the report's default. ISO 8601 formatted. * **end\_date** (string) - Optional: Last date you would like to filter unit costs to. Defaults to the report's default. ISO 8601 formatted. * **date\_bin** (string) - Optional: The date bin of the unit costs. Defaults to the report's default or day. * Allowed values: `day`, `week`, `month`, `quarter`, `hour` * **order** (string) - Optional: Whether to order unit costs by date in an ascending or descending manner. * Allowed values: `asc`, `desc` * Default: `desc` * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **page** (integer (int32)) - Optional: The page of results to return. #### Responses **200**: OK **400**: BadRequest **402**: PaymentRequired **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/unitcosts/get-all-unit-costs-for-a-cost-report](https://docs.vantage.sh/api/unitcosts/get-all-unit-costs-for-a-cost-report) *** ### POST /unit\_costs/data\_exports **Generate data export of unit costs** Generate a DataExport of unit costs. #### Request Body ```json theme={null} { "cost_report_token": string // required // The CostReport token, "workspace_token": string // The token of the Workspace to query costs from. Required if the API token is associated with multiple Workspaces, "start_date": string // First date you would like to filter unit costs from. Defaults to the report's default. ISO 8601 formatted, "end_date": string // Last date you would like to filter unit costs to. Defaults to the report's default. ISO 8601 formatted, "date_bin": string // The date bin of the unit costs. Defaults to the report's default or day. Allowed values: `day`, `week`, `month`, `quarter`, `hour` } ``` #### Responses **202**: The data export has been queued and will be available at the location specified in the Location header. **400**: BadRequest **402**: PaymentRequired **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/unitcosts/generate-data-export-of-unit-costs](https://docs.vantage.sh/api/unitcosts/generate-data-export-of-unit-costs) *** ## UserFeedback ### POST /user\_feedback **Submit user feedback** Provide UserFeedback for our product and features. #### Request Body ```json theme={null} { "message": string // required // UserFeedback message } ``` #### Responses **201**: Provide UserFeedback for our product and features. **400**: BadRequest **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/userfeedback/submit-user-feedback](https://docs.vantage.sh/api/userfeedback/submit-user-feedback) *** ## Users ### GET /users **Get all users** Return all Users that the current API token has access to. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. #### Responses **200**: OK **403**: Forbidden For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/users/get-all-users](https://docs.vantage.sh/api/users/get-all-users) *** ### GET /users/ **Get user by token** Return a specific User. #### Path Parameters * **user\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/users/get-user-by-token](https://docs.vantage.sh/api/users/get-user-by-token) *** ### PUT /users/ **Update a user** Update a specific User. #### Path Parameters * **user\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "default_dashboard_token": string // The token of a Dashboard to set as the User default. Send null to clear } ``` #### Responses **200**: OK **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/users/update-a-user](https://docs.vantage.sh/api/users/update-a-user) *** ## VirtualTags ### GET /virtual\_tag\_configs **Get all virtual tag configs** Return all VirtualTagConfigs that the current API token has access to. #### Query Parameters * **q** (string) - Optional: A search query to filter VirtualTagConfigs by key. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/virtualtags/get-all-virtual-tag-configs](https://docs.vantage.sh/api/virtualtags/get-all-virtual-tag-configs) *** ### POST /virtual\_tag\_configs **Create virtual tag config** Create a new VirtualTagConfig. #### Request Body ```json theme={null} { "key": string // required // The key of the VirtualTagConfig, "overridable": boolean // required // Whether the VirtualTagConfig can override a provider-supplied tag on a matching Cost, "backfill_until": string // The earliest month the VirtualTagConfig should be backfilled to, "collapsed_tag_keys": [ // Tag keys to collapse values for { "key": string // required // The tag key to collapse values for, "providers": [string] // Provider-only scope for this collapsed tag key. Invalid when filter is set; include provider restrictions in filter instead. Defaults to all providers, "filter": string // The VQL filter this collapsed tag key applies to. When set, do not also set providers; include any provider restrictions directly in filter } ], "values": [ // Values for the VirtualTagConfig, with match precedence determined by order in the list { "filter": string // required // The filter query language to apply to the value. Additional documentation available at https://docs.vantage.sh/vql, "name": string // The name of the value, "business_metric_token": string // The token of an associated business metric, "label_key": string // The business metric label key used for this virtual tag value, "label_values": [string] // Optional business metric label values. An empty array includes every value for the label key, "label_filters": object // ClickHouse BusinessMetric row filters. Each key must match, and values within a key are alternatives. Cannot include the fan-out label_key. Send null or an empty object to clear, "display_name": string // The display name for an allocation value (cost_metric or percentages). Invalid when name is set, "label_transforms": [ { "type": string // required, "delimiter": string, "index": integer, "template": string } ], "cost_metric": { "filter": string // required, "aggregation": { // required "tag": string // required } }, "percentages": [ { "value": string // required, "pct": number // required } ], "date_ranges": [ // Date ranges restricting when this value applies. Each range has optional start_date and end_date (inclusive, YYYY-MM-DD) { "start_date": string // Inclusive start date (YYYY-MM-DD), or null for unbounded, "end_date": string // Inclusive end date (YYYY-MM-DD), or null for unbounded } ] } ] } ``` #### Responses **201**: Created **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/virtualtags/create-virtual-tag-config](https://docs.vantage.sh/api/virtualtags/create-virtual-tag-config) *** ### GET /virtual\_tag\_configs/async/ **Get async virtual tag config update status** Check the status of an async VirtualTagConfig update. #### Path Parameters * **request\_id** (path) (string) - **Required** #### Responses **200**: Request completed successfully **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/virtualtags/get-async-virtual-tag-config-update-status](https://docs.vantage.sh/api/virtualtags/get-async-virtual-tag-config-update-status) *** ### DELETE /virtual\_tag\_configs/ **Delete virtual tag config** Deletes an existing VirtualTagConfig. #### Path Parameters * **token** (path) (string) - **Required** #### Responses **204**: No Content **403**: Forbidden **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/virtualtags/delete-virtual-tag-config](https://docs.vantage.sh/api/virtualtags/delete-virtual-tag-config) *** ### GET /virtual\_tag\_configs/ **Get virtual tag config by token** Return a specific VirtualTagConfig. #### Path Parameters * **token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/virtualtags/get-virtual-tag-config-by-token](https://docs.vantage.sh/api/virtualtags/get-virtual-tag-config-by-token) *** ### PUT /virtual\_tag\_configs/ **Update virtual tag config** Updates an existing VirtualTagConfig. #### Path Parameters * **token** (path) (string) - **Required** #### Request Body ```json theme={null} { "key": string // The key of the VirtualTagConfig, "overridable": boolean // Whether the VirtualTagConfig can override a provider-supplied tag on a matching Cost, "backfill_until": string // The earliest month the VirtualTagConfig should be backfilled to, "collapsed_tag_keys": [ // Tag keys to collapse values for { "key": string // required // The tag key to collapse values for, "providers": [string] // Provider-only scope for this collapsed tag key. Invalid when filter is set; include provider restrictions in filter instead. Defaults to all providers, "filter": string // The VQL filter this collapsed tag key applies to. When set, do not also set providers; include any provider restrictions directly in filter } ], "values": [ // Values for the VirtualTagConfig, with match precedence determined by order in the list { "filter": string // required // The filter query language to apply to the value. Additional documentation available at https://docs.vantage.sh/vql, "name": string // The name of the value, "business_metric_token": string // The token of an associated business metric, "label_key": string // The business metric label key used for this virtual tag value, "label_values": [string] // Optional business metric label values. An empty array includes every value for the label key, "label_filters": object // ClickHouse BusinessMetric row filters. Each key must match, and values within a key are alternatives. Cannot include the fan-out label_key. Send null or an empty object to clear, "display_name": string // The display name for an allocation value (cost_metric or percentages). Invalid when name is set, "label_transforms": [ { "type": string // required, "delimiter": string, "index": integer, "template": string } ], "cost_metric": { "filter": string // required, "aggregation": { // required "tag": string // required } }, "percentages": [ { "value": string // required, "pct": number // required } ], "date_ranges": [ // Date ranges restricting when this value applies. Each range has optional start_date and end_date (inclusive, YYYY-MM-DD) { "start_date": string // Inclusive start date (YYYY-MM-DD), or null for unbounded, "end_date": string // Inclusive end date (YYYY-MM-DD), or null for unbounded } ] } ] } ``` #### Responses **200**: OK **202**: Request accepted for processing **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/virtualtags/update-virtual-tag-config](https://docs.vantage.sh/api/virtualtags/update-virtual-tag-config) *** ### PUT /virtual\_tag\_configs//async **Update virtual tag config asynchronously** Asynchronously updates an existing VirtualTagConfig. #### Path Parameters * **token** (path) (string) - **Required** #### Request Body ```json theme={null} { "key": string // The key of the VirtualTagConfig, "overridable": boolean // Whether the VirtualTagConfig can override a provider-supplied tag on a matching Cost, "backfill_until": string // The earliest month the VirtualTagConfig should be backfilled to, "collapsed_tag_keys": [ // Tag keys to collapse values for { "key": string // required // The tag key to collapse values for, "providers": [string] // Provider-only scope for this collapsed tag key. Invalid when filter is set; include provider restrictions in filter instead. Defaults to all providers, "filter": string // The VQL filter this collapsed tag key applies to. When set, do not also set providers; include any provider restrictions directly in filter } ], "values": [ // Values for the VirtualTagConfig, with match precedence determined by order in the list { "filter": string // required // The filter query language to apply to the value. Additional documentation available at https://docs.vantage.sh/vql, "name": string // The name of the value, "business_metric_token": string // The token of an associated business metric, "label_key": string // The business metric label key used for this virtual tag value, "label_values": [string] // Optional business metric label values. An empty array includes every value for the label key, "label_filters": object // ClickHouse BusinessMetric row filters. Each key must match, and values within a key are alternatives. Cannot include the fan-out label_key. Send null or an empty object to clear, "display_name": string // The display name for an allocation value (cost_metric or percentages). Invalid when name is set, "label_transforms": [ { "type": string // required, "delimiter": string, "index": integer, "template": string } ], "cost_metric": { "filter": string // required, "aggregation": { // required "tag": string // required } }, "percentages": [ { "value": string // required, "pct": number // required } ], "date_ranges": [ // Date ranges restricting when this value applies. Each range has optional start_date and end_date (inclusive, YYYY-MM-DD) { "start_date": string // Inclusive start date (YYYY-MM-DD), or null for unbounded, "end_date": string // Inclusive end date (YYYY-MM-DD), or null for unbounded } ] } ] } ``` #### Responses **202**: Request accepted for processing **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/virtualtags/update-virtual-tag-config-asynchronously](https://docs.vantage.sh/api/virtualtags/update-virtual-tag-config-asynchronously) *** ### GET /virtual\_tag\_configs//status **Get virtual tag config processing status** Return the processing status of a specific VirtualTagConfig. #### Path Parameters * **token** (path) (string) - **Required** #### Responses **200**: Processing is complete **202**: Processing is still in progress **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/virtualtags/get-virtual-tag-config-processing-status](https://docs.vantage.sh/api/virtualtags/get-virtual-tag-config-processing-status) *** ### POST /virtual\_tag\_configs//values **Create virtual tag config value** Create a VirtualTagConfigValue. #### Path Parameters * **virtual\_tag\_config\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "filter": string // required // The filter query language to apply to the value. Additional documentation available at https://docs.vantage.sh/vql, "name": string // The name of the value, "business_metric_token": string // The token of an associated business metric, "label_key": string // The business metric label key used for this virtual tag value, "label_values": [string] // Business metric label values. An empty array includes every value for the label key, "label_filters": { // ClickHouse BusinessMetric row filters. Each key must match, and values within a key are alternatives. Cannot include the fan-out label_key. Null and an empty object leave stored filters unchanged }, "display_name": string // The display name for a cost metric or percentage allocation value, "label_transforms": [ { "type": string // required // Allowed values: `split`, `format`, "delimiter": string, "index": integer, "template": string } ], "cost_metric": { "filter": string // required, "aggregation": { // required "tag": string // required } }, "percentages": [ { "value": string // required, "pct": number // required } ], "date_ranges": [ // Date ranges restricting when this value applies { "start_date": string, "end_date": string } ] } ``` #### Responses **201**: Created **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/virtualtags/create-virtual-tag-config-value](https://docs.vantage.sh/api/virtualtags/create-virtual-tag-config-value) *** ### DELETE /virtual\_tag\_configs//values/ **Delete virtual tag config value** Delete a VirtualTagConfigValue. #### Path Parameters * **virtual\_tag\_config\_token** (path) (string) - **Required** * **virtual\_tag\_config\_value\_token** (path) (string) - **Required** #### Responses **204**: No Content **403**: Forbidden **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/virtualtags/delete-virtual-tag-config-value](https://docs.vantage.sh/api/virtualtags/delete-virtual-tag-config-value) *** ### GET /virtual\_tag\_configs//values/ **Get virtual tag config value by token** Return a VirtualTagConfigValue. #### Path Parameters * **virtual\_tag\_config\_token** (path) (string) - **Required** * **virtual\_tag\_config\_value\_token** (path) (string) - **Required** #### Responses **200**: OK **403**: Forbidden **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/virtualtags/get-virtual-tag-config-value-by-token](https://docs.vantage.sh/api/virtualtags/get-virtual-tag-config-value-by-token) *** ### PATCH /virtual\_tag\_configs//values/ **Update virtual tag config value** Update a VirtualTagConfigValue. #### Path Parameters * **virtual\_tag\_config\_token** (path) (string) - **Required** * **virtual\_tag\_config\_value\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "filter": string // The filter query language to apply to the value. Additional documentation available at https://docs.vantage.sh/vql, "name": string // The name of the value, "business_metric_token": string // The token of an associated business metric, "label_key": string // The business metric label key used for this virtual tag value, "label_values": [string] // Business metric label values. An empty array includes every value for the label key, "label_filters": { // ClickHouse BusinessMetric row filters. Each key must match, and values within a key are alternatives. Cannot include the fan-out label_key. Null and an empty object leave stored filters unchanged }, "display_name": string // The display name for a cost metric or percentage allocation value, "label_transforms": [ { "type": string // required // Allowed values: `split`, `format`, "delimiter": string, "index": integer, "template": string } ], "cost_metric": { "filter": string // required, "aggregation": { // required "tag": string // required } }, "percentages": [ { "value": string // required, "pct": number // required } ], "date_ranges": [ // Date ranges restricting when this value applies { "start_date": string, "end_date": string } ] } ``` #### Responses **200**: OK **400**: BadRequest **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/virtualtags/update-virtual-tag-config-value](https://docs.vantage.sh/api/virtualtags/update-virtual-tag-config-value) *** ## Workspaces ### GET /workspaces **Get all workspaces** Return all Workspaces that the current API token has access to. #### Query Parameters * **page** (integer (int32)) - Optional: The page of results to return. * **limit** (integer (int32)) - Optional: The amount of results to return. The maximum is 1000. * **q** (string) - Optional: Search workspaces by name. #### Responses **200**: OK For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/workspaces/get-all-workspaces](https://docs.vantage.sh/api/workspaces/get-all-workspaces) *** ### POST /workspaces **Create workspace** Create a workspace #### Request Body ```json theme={null} { "name": string // required // Name of the workspace, "enable_currency_conversion": boolean // Enable currency conversion for the workspace, "currency": string // Currency code for the workspace, "exchange_rate_date": string // The date to use for currency conversion. Allowed values: `daily_rate`, `end_of_billing_period_rate` } ``` #### Responses **201**: Created **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/workspaces/create-workspace](https://docs.vantage.sh/api/workspaces/create-workspace) *** ### DELETE /workspaces/ **Delete workspace** Delete a workspace #### Path Parameters * **workspace\_token** (path) (string) - **Required** #### Responses **204**: No Content **403**: Forbidden **404**: NotFound **422**: UnprocessableEntity For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/workspaces/delete-workspace](https://docs.vantage.sh/api/workspaces/delete-workspace) *** ### GET /workspaces/ **Get workspace by token** Return a specific Workspace. #### Path Parameters * **workspace\_token** (path) (string) - **Required** #### Responses **200**: OK **404**: NotFound For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/workspaces/get-workspace-by-token](https://docs.vantage.sh/api/workspaces/get-workspace-by-token) *** ### PUT /workspaces/ **Update workspace** Update a workspace #### Path Parameters * **workspace\_token** (path) (string) - **Required** #### Request Body ```json theme={null} { "name": string // Name of the workspace, "enable_currency_conversion": boolean // Enable currency conversion for the workspace, "currency": string // Currency code for the workspace. Allowed values: `AED`, `AFN`, `ALL`, `AMD`, `ANG`, `AOA`, `ARS`, `AUD`, `AWG`, `AZN`, `BAM`, `BBD`, `BDT`, `BGN`, `BHD`, `BIF`, `BMD`, `BND`, `BOB`, `BRL`, `BSD`, `BTC`, `BTN`, `BWP`, `BYN`, `BYR`, `BZD`, `CAD`, `CDF`, `CHF`, `CLF`, `CLP`, `CNY`, `COP`, `CRC`, `CUC`, `CUP`, `CVE`, `CZK`, `DJF`, `DKK`, `DOP`, `DZD`, `EGP`, `ERN`, `ETB`, `EUR`, `FJD`, `FKP`, `GBP`, `GEL`, `GGP`, `GHS`, `GIP`, `GMD`, `GNF`, `GTQ`, `GYD`, `HKD`, `HNL`, `HRK`, `HTG`, `HUF`, `IDR`, `ILS`, `IMP`, `INR`, `IQD`, `IRR`, `ISK`, `JEP`, `JMD`, `JOD`, `JPY`, `KES`, `KGS`, `KHR`, `KMF`, `KPW`, `KRW`, `KWD`, `KYD`, `KZT`, `LAK`, `LBP`, `LKR`, `LRD`, `LSL`, `LTL`, `LVL`, `LYD`, `MAD`, `MDL`, `MGA`, `MKD`, `MMK`, `MNT`, `MOP`, `MRO`, `MUR`, `MVR`, `MWK`, `MXN`, `MYR`, `MZN`, `NAD`, `NGN`, `NIO`, `NOK`, `NPR`, `NZD`, `OMR`, `PAB`, `PEN`, `PGK`, `PHP`, `PKR`, `PLN`, `PYG`, `QAR`, `RON`, `RSD`, `RUB`, `RWF`, `SAR`, `SBD`, `SCR`, `SDG`, `SEK`, `SGD`, `SHP`, `SLL`, `SOS`, `SRD`, `SSP`, `STD`, `STN`, `SVC`, `SYP`, `SZL`, `THB`, `TJS`, `TMT`, `TND`, `TOP`, `TRY`, `TTD`, `TWD`, `TZS`, `UAH`, `UGX`, `USD`, `UYU`, `UZS`, `VEF`, `VND`, `VUV`, `WST`, `XAF`, `XCD`, `XDR`, `XOF`, `XPF`, `YER`, `ZAR`, `ZMW`, `ZWL`, "exchange_rate_date": string // The date to use for currency conversion. Allowed values: `daily_rate`, `end_of_billing_period_rate` } ``` #### Responses **200**: OK **400**: BadRequest For interactive testing, request/response examples, and detailed schemas, visit: [https://docs.vantage.sh/api/workspaces/update-workspace](https://docs.vantage.sh/api/workspaces/update-workspace) *** ## Summary This reference includes **233** endpoints across **52** categories. For the most up-to-date information, always refer to the [OpenAPI specification](https://api.vantage.sh/v2/oas_v3.json) or the individual endpoint pages. # Create virtual tag config Source: https://docs.vantage.sh/api/virtualtags/create-virtual-tag-config https://api.vantage.sh/v2/oas_v3.json post /virtual_tag_configs Create a new VirtualTagConfig. # Create virtual tag config value Source: https://docs.vantage.sh/api/virtualtags/create-virtual-tag-config-value https://api.vantage.sh/v2/oas_v3.json post /virtual_tag_configs/{virtual_tag_config_token}/values Create a VirtualTagConfigValue. # Delete virtual tag config Source: https://docs.vantage.sh/api/virtualtags/delete-virtual-tag-config https://api.vantage.sh/v2/oas_v3.json delete /virtual_tag_configs/{token} Deletes an existing VirtualTagConfig. # Delete virtual tag config value Source: https://docs.vantage.sh/api/virtualtags/delete-virtual-tag-config-value https://api.vantage.sh/v2/oas_v3.json delete /virtual_tag_configs/{virtual_tag_config_token}/values/{virtual_tag_config_value_token} Delete a VirtualTagConfigValue. # Get all virtual tag configs Source: https://docs.vantage.sh/api/virtualtags/get-all-virtual-tag-configs https://api.vantage.sh/v2/oas_v3.json get /virtual_tag_configs Return all VirtualTagConfigs that the current API token has access to. # Get async virtual tag config update status Source: https://docs.vantage.sh/api/virtualtags/get-async-virtual-tag-config-update-status https://api.vantage.sh/v2/oas_v3.json get /virtual_tag_configs/async/{request_id} Check the status of an async VirtualTagConfig update. # Get virtual tag config by token Source: https://docs.vantage.sh/api/virtualtags/get-virtual-tag-config-by-token https://api.vantage.sh/v2/oas_v3.json get /virtual_tag_configs/{token} Return a specific VirtualTagConfig. # Get virtual tag config processing status Source: https://docs.vantage.sh/api/virtualtags/get-virtual-tag-config-processing-status https://api.vantage.sh/v2/oas_v3.json get /virtual_tag_configs/{token}/status Return the processing status of a specific VirtualTagConfig. # Get virtual tag config value by token Source: https://docs.vantage.sh/api/virtualtags/get-virtual-tag-config-value-by-token https://api.vantage.sh/v2/oas_v3.json get /virtual_tag_configs/{virtual_tag_config_token}/values/{virtual_tag_config_value_token} Return a VirtualTagConfigValue. # Update virtual tag config Source: https://docs.vantage.sh/api/virtualtags/update-virtual-tag-config https://api.vantage.sh/v2/oas_v3.json put /virtual_tag_configs/{token} Updates an existing VirtualTagConfig. # Update virtual tag config asynchronously Source: https://docs.vantage.sh/api/virtualtags/update-virtual-tag-config-asynchronously https://api.vantage.sh/v2/oas_v3.json put /virtual_tag_configs/{token}/async Asynchronously updates an existing VirtualTagConfig. # Update virtual tag config value Source: https://docs.vantage.sh/api/virtualtags/update-virtual-tag-config-value https://api.vantage.sh/v2/oas_v3.json patch /virtual_tag_configs/{virtual_tag_config_token}/values/{virtual_tag_config_value_token} Update a VirtualTagConfigValue. # Create workspace Source: https://docs.vantage.sh/api/workspaces/create-workspace https://api.vantage.sh/v2/oas_v3.json post /workspaces Create a workspace # Delete workspace Source: https://docs.vantage.sh/api/workspaces/delete-workspace https://api.vantage.sh/v2/oas_v3.json delete /workspaces/{workspace_token} Delete a workspace # Get all workspaces Source: https://docs.vantage.sh/api/workspaces/get-all-workspaces https://api.vantage.sh/v2/oas_v3.json get /workspaces Return all Workspaces that the current API token has access to. # Get workspace by token Source: https://docs.vantage.sh/api/workspaces/get-workspace-by-token https://api.vantage.sh/v2/oas_v3.json get /workspaces/{workspace_token} Return a specific Workspace. # Update workspace Source: https://docs.vantage.sh/api/workspaces/update-workspace https://api.vantage.sh/v2/oas_v3.json put /workspaces/{workspace_token} Update a workspace # Audit Logs Source: https://docs.vantage.sh/audit_logs Track changes and maintain compliance with Vantage Audit Logs. Audit logs in Vantage provide a detailed record of changes to certain resources in your workspace. You can use them to trace when a change occurred, who made it, and what was modified. Currently, audit logs are available for Virtual Tags, Cost Reports, [Dashboards](/dashboards), [Canvas](/canvas), [Budgets](/budgets), Business Metrics (when assigned to Cost Reports), [billing rules](/partners#billing-rules) (including [custom SQL billing rules](/sql_billing_rules)), Integration Delegations (for [MSP Partner Integrations](/partners#manage-partner-integrations)), MSP Invoices, FinOps Agent actions, [MCP Connections](/vantage_finops_agent#mcp-connectors), and preferred and hidden [tag settings](/tagging). Each log entry contains the action performed, the actor, the source of the change, and any relevant object details. Audit logs are available to users with the **Organization Owner** role. Events are logged for all changes to supported resources, regardless of who made the change. Logs are retained for 24 months. When you edit a [saved filter](/saved_filters), an audit log event is created for all Cost Reports that the saved filter is applied to. This provides visibility into when saved filter changes affect multiple reports across your workspace. Additionally, when a Cost Report is deleted, any saved filters associated with that report are included in the audit log entry to provide complete visibility into the deletion event. For longer log retention, contact [support@vantage.sh](mailto:support@vantage.sh). ## Access and Filter Audit Logs You can access audit logs from the **Settings** UI or directly from a Cost Report or Virtual Tag. From the top navigation, select **Settings**. In the left navigation, under **General Settings**, select **Audit Logs**. At the top of a Cost Report, click the ellipses (…) and select **View Audit Logs**. ![Accessing audit logs from a Cost Report](https://assets.vantage.sh/docs/audit-log-cost-report.png) A list of audit log events is displayed for that particular report. Audit Logs are made available for events starting on July 22, 2025. From the top right of any Virtual Tag, click the **View Audit Logs** icon. ![Accessing audit logs from a Virtual Tag](https://assets.vantage.sh/docs/audit-log-virtual-tag.png) ### Filter Audit Logs On the **Audit Logs** screen, a table is displayed that contains a row for each audit log event. You can complete the following actions on this screen: * Filter audit logs by **Event** (create, update, destroy), **Object Type** (Cost Report, Dashboard, Canvas, Budget, Virtual Tag, Billing Rule, Integration Delegations, MSP Invoice, MCP Connection, Preferred Tags, Hidden Tags, or FinOps Agent Cost Recommendation action), **Object** (the object's name), **Workspace**, **User** (or Team when using service tokens), and **Source** (the console or API). * Filter audit logs based on a date range, up to 24 months. * View more details for an audit log. **Business Metrics**: When you assign or remove a Business Metric from a Cost Report, or change Business Metric settings (such as label filters or unit scale), these changes are tracked in audit logs under the associated Cost Report. Changes to the default forecast selection (choosing which Business Metric forecast to display) are also tracked as updates to the Cost Report. Select any row in the table to view more details. On the details screen, changes are displayed in a GitHub-style diff format with color-coded additions and removals, making it easy to see exactly what was modified. ## FinOps Agent Audit Logs When the FinOps Agent takes action on savings recommendations, detailed audit log entries are created. FinOps Agent actions are visually distinguished in the audit log table with a different object icon, making it easy to identify agent actions at a glance. Within the Vantage Audit Logs, you can see the following information for each FinOps Agent action: * **Time the recommendation was provided**: When the Agent first identified and presented the savings opportunity * **Time the recommendation was approved**: When a user approved the remediation action (if Owner Approval mode is enabled) * **Vantage User that approved the remediation**: The user who approved the action (only applicable in Owner Approval mode) * **What Resources were altered**: The specific resources that were modified as part of the recommendation remediation * **Time the action was taken in the cloud provider**: When the action was executed in your cloud environment For more information about the FinOps Agent, see the [Vantage FinOps Agent](/vantage_finops_agent) documentation. ## MCP Connection Audit Logs When a user connects, reconnects, or disconnects a [FinOps Agent MCP connector](/vantage_finops_agent#mcp-connectors), Vantage creates an audit log entry with the **MCP Connection** object type. The entry identifies the provider and user who changed the connection. Credentials and authentication tokens are excluded from audit log details. ## Canvas Audit Logs Canvas create, update, and delete actions are tracked in Audit Logs. Updates include changes to the Canvas title and prompt. Generated table output is not tracked as a user-editable configuration change. ## Integration Delegation Audit Logs All additions and removals of integration assignments to Managed Accounts from the [Partner Integrations](/partners#manage-partner-integrations) page are logged in the Audit Log of the Management Account. An audit log entry is created for each integration that was modified. The log entry includes the following details: * **Integration name**: The name of the integration that was modified * **Managed Accounts added**: Which Managed Accounts were newly assigned to the integration * **Managed Accounts removed**: Which Managed Accounts were unassigned from the integration * **Current Managed Accounts**: The complete list of Managed Accounts connected to the integration after the change You can filter audit logs by the **Integration Delegations** object type to view only these events. ## Audit Log Metadata and Details All audit logs contain the following object metadata at the top of the log. | **Field** | **Description** | **Log Type** | Example Value(s) | | - | - | - | - | | Object Type | What type of object was updated. | All | Cost Report; Canvas; Virtual Tag; MSP Invoice | | Workspace | Workspace where the object belongs, or in the case of Virtual Tags, what workspace the user took the action from. | All | Management | | User/Team | The name of the user or team that performed the action. When using a service token (Team token), this field displays as **Team** and shows the team name. Any actions taken by Vantage Support will be denoted as Vantage Support. | All | Firstname Lastname; Team Name | | User Role/Team Role | The role of the user or team. When using a service token, this field displays as **Team Role** and shows the team name. For users, this shows their role (Admin, Member, etc.). | All | Admin; Member; Team Name | | Source | Where the action originated. **Console** indicates actions taken through the Vantage web interface. **API** indicates actions taken via the Vantage API or Terraform provider, including actions performed using service tokens. | All | Console; API | When actions are performed using a service token (Team token), the audit log displays **Team** and **Team Role** fields instead of **User** and **User Role**. The **Source** field will show **API** to indicate the action was performed via the API using a service token. The team name is displayed in both the **Team** and **Team Role** fields. ### Object Details Two sections are displayed to indicate what has been changed or not changed on the object. These tables list the values updated by the user. When a value or setting changes, both the previous and new values appear in the object details. In the example below, the date binning, date interval, and report groupings have all been updated. ![Multi-dimensional Grouping](https://assets.vantage.sh/docs/audit-report-changed-values.png) | Field Name | Description | Report | Example | | - | - | - | - | | Account | The account associated with the Virtual Tag. | Virtual Tag | Vantage | | Backfill Until | The date until which historical data is populated in a Virtual Tag. | Virtual Tag | Jul 31, 2025, 20:00:00 | | Change Unit | How period-over-period changes are displayed: as a percentage or as a currency amount. In audit logs, this may appear as `0` (percentage) or `1` (currency). | Cost Report | 0 (percentage), 1 (currency) | | Chart Settings | Configuration settings for the chart visualization. | Cost Report | `{"x_axis_dimension": ["date"], "y_axis_dimension": "cost"}` | | Chart Type | The type of chart visualization used for the report. | Cost Report | area, line, pie, bar, multi\_bar | | Created At | When the object was originally created. | Cost Report and Virtual Tag | Feb 24, 2025, 15:36:57 | | Created By | The user who created the object. | Cost Report and Virtual Tag | First Last | | Created By Type | Type of user who created the object: User or Team (Service Token). | Cost Report and Virtual Tag | User | | Date Bucket | The date binning used for the chart (how dates are grouped). | Cost Report | cumulative, day, week, month, quarter | | Date Interval | The date interval of the report. | Cost Report | last\_month | | Default Forecast | The forecast selected as the default for the Cost Report. This can be the Baseline Forecast, a Dynamic (business metric) forecast, or a Scenario Model forecast. | Cost Report | User Sessions | | Filter | The conditions used to filter the report's data. | Cost Report | `(costs.provider = 'azure' AND costs.allocation = 0.0 AND costs.region IN ('germany', 'eastus'))` | | Grouping Filter | Additional filter applied to the grouping dimension. | Cost Report | `service = 'EC2'` | | Groupings | What the report is grouped by. | Cost Report | `["provider","tag:container"]` | | Key | The name of the Virtual Tag key. | Virtual Tag | Test Tag | | Labels | The label filters applied to a Business Metric on a Cost Report. | Cost Report | `["app1", "app2"]` | | Previous Period Start Date/ Previous Period End Date | Separate fields for start and end date set for previous period on report. | Cost Report | 2025-01-26 | | Refreshed At | When the object was last refreshed. | Cost Report and Virtual Tag | Aug 13, 2025, 12:59:17 | | Referenced Tag Keys By Provider | Mapping of tag keys referenced per provider. | Virtual Tag | `{"aws": []}` | | Settings | Define how the report is displayed or calculated. | Cost Report | `{"include_credits": false, "include_refunds": false, "include_discounts": true, "include_tax": true, "unallocated": false, "amortize": true, "show_previous_period": true, "aggregate_by": "cost"}` | | Start Date/ End Date | Separate fields for start and end date set for report. | Cost Report | 2025-01-26 | | Table Layout | How the cost table is displayed: cumulative view or by date view. In audit logs, this may appear as `0` (cumulative\_view) or `1` (by\_date\_view). | Cost Report | 0 (cumulative\_view), 1 (by\_date\_view) | | Title | The title of the report or canvas. | Cost Report and Canvas | My Cost Report | | Token | Unique identifier for the object. | Cost Report, Canvas, and Virtual Tag | `rprt_12345abcde67890f`, `cnvs_12345abcde67890f`, `vtag_82741abfce690354` | | Unit Scale | The unit scale applied to a Business Metric on a Cost Report (per unit, per hundred, per thousand, etc.). | Cost Report | per\_thousand | | User VQL | Custom Vantage Query Language (VQL) query used to filter the report's data. | Cost Report | `(costs.provider = 'aws' AND costs.service = 'EC2')` | ## Share Audit Logs You can share an audit log with other Vantage users. The log detail page has a unique URL that allows you to share log events with any authenticated Vantage user who has access to audit logs (i.e., Owners). A URL looks similar to: `https://console.vantage.sh/settings/audit_logs/adt_lg_123a4f5a6c7dab94`. # Autopilot for AWS Savings Plans Source: https://docs.vantage.sh/autopilot Automate AWS Savings Plans purchases with Autopilot. Autopilot for AWS Savings Plans allows Vantage to purchase Compute Savings Plans and Database Savings Plans commitments on your behalf, with manual and automated options. Autopilot continuously evaluates your compute workloads, and when enabled, can automatically purchase the most suitable Compute Savings Plans to maximize your savings. Compute Savings Plans provide broad coverage, applying to all instance types across any AWS Region. Autopilot also provides savings recommendations for Database Savings Plans (covering Amazon RDS, Aurora, DynamoDB, ElastiCache (Valkey), DocumentDB, Neptune, Keyspaces, Timestream, and AWS Database Migration Service) and Reserved Instances for RDS, ElastiCache, Redshift, and OpenSearch. At this time, Autopilot supports only AWS; however, there are plans to expand this functionality to GCP and Azure. ## How Autopilot Works Autopilot works along with the AWS APIs by ingesting and analyzing Cost and Usage Report data. Autopilot will group your compute workloads on the dashboard by instance hour for each respective compute class. A compute class is defined as compute instance usage structured by instance type (e.g., t3.xlarge, r5.large), Region (e.g., us-east-1, us-west-2), and platform (e.g., Linux, Windows), tracked hourly. ### Coverage Determination Autopilot looks at historical compute usage (up to 3 months) to understand your average compute usage. This method is intended to help find a relatively steady-state compute footprint to base the coverage percentage, avoiding accidentally purchasing too much coverage because of a temporary spike in compute usage. Compute Savings Plans provide flexibility and apply to EC2, Fargate, and Lambda. ### Configurable Lookback Period and Savings Plan Type Autopilot allows customers to set a lookback period of either 7, 30, or 60 days, which will generate different effective discounts based on actual usage during that period. You can configure the lookback period that most accurately captures your compute usage to ensure the correct coverage level is purchased. Consider the following general suggestions for lookback periods: * 7 days is a good selection for linearly increasing, steady-state workloads. * 60 days is a good selection for workloads with higher peak-to-average variation. You can configure your Savings Plans settings for Autopilot to use 1- or 3-year term lengths and All Upfront, Partial Upfront, or No Upfront payment plans. ### Existing Savings Plans Autopilot will account for your existing AWS Savings Plans (including Compute Savings Plans and Database Savings Plans) and Reserved Instances. You will not be charged for existing AWS Savings Plans. Even if you feel that you have good coverage with existing AWS Savings Plans, you can consider enabling Autopilot as an insurance policy if they expire or your usage footprint changes. ## Legacy Autopilot (EC2 Reserved Instances) Because of changes to the underlying Reserved Instance (RI) market, the way Autopilot initially worked changed from supporting AWS Reserved Instances to instead supporting AWS Savings Plans. See the [*Migrate from Autopilot (EC2 RIs) to Autopilot for AWS Savings Plans*](/autopilot#migrate-from-autopilot-ec2-ris-to-autopilot-for-aws-savings-plans) section below for details on how to get started. Consult the following resources for additional information: * For more details on AWS's changes to RIs, see [this Vantage blog post](https://www.vantage.sh/blog/aws-reserved-instances-updates). * For a primer on AWS Savings Plans, see the [following Vantage blog post](https://www.vantage.sh/blog/what-is-an-aws-savings-plan). ## Autopilot Permissions Review the `VantageAutoPilot` policy on the public AWS CloudFormation template, where you can audit the template's [list of required permissions](https://vantage-public.s3.amazonaws.com/vantage-integration-combined-latest.json). This template is the same one that's used when you configure your Vantage and AWS connection. Autopilot cannot and will never change your underlying infrastructure. ## Enable Autopilot (New Users) To use Autopilot, ensure that you've [connected AWS](/connecting_aws) as a provider. Then, from the top navigation, select **Financial Planning** > **Autopilot**. If this is your first time using Autopilot, you will need to complete the onboarding workflow for Autopilot. From the top right of the Autopilot dashboard, click the **Autopilot Enabled** toggle to access the onboarding workflow. The enable toggle on the Autopilot dashboard Click **Get Started**. Vantage performs a permissions check to ensure you have the right permissions configured for Autopilot. These permissions are used to view billing data, generate Savings Plans recommendations, and purchase them on your behalf. See the [*Autopilot Permissions*](/autopilot#autopilot-permissions) section above for details. If you fail the permissions check, click **Upgrade Integration** to configure the correct permissions. Click **Continue**. Review the provided Autopilot **Master Services Agreement** and click the checkbox to acknowledge that you accept the terms. Click **Accept and Continue.** Click **Go to Autopilot Dashboard** to begin reviewing your savings. Autopilot will automatically start to analyze your compute trends and can apply savings within days. Typically, you can expect to wait about one week before you start to see material savings on the Autopilot dashboard. You can also disable Autopilot at any time. To disable Autopilot, click the **Autopilot Enabled** toggle on the top right of the Autopilot dashboard. ### Migrate from Autopilot (EC2 RIs) to Autopilot for AWS Savings Plans Autopilot no longer supports purchasing and selling Reserved Instances. If you are a customer that uses Autopilot to manage Reserved Instances, you have three options: * **Continue to use your Reserved Instances until they expire**: Vantage will continue to charge you for 5% of savings realized from the original purchase of these RIs. * **Opt in to Autopilot for AWS Savings Plans:** When you opt in, Vantage will list your Reserved Instances for sale on the Reserved Instance marketplace; however, there is no guarantee that these Reserved Instances will sell. If they sell, Autopilot will automatically backfill your Reserved Instances with new Savings Plans coverage. * **Contact your AWS account team to discuss a migration from Reserved Instances to Savings Plans**: It's been noted that some customers could negotiate with AWS to replace Reserved Instances with Savings Plans, depending on the specifics of the request. Vantage does not have any details about what makes this more likely to succeed with AWS, and it does not seem to be a guarantee that AWS will perform a swap. If you have any questions, contact [support@vantage.sh](mailto:support@vantage.sh). If you're a current Autopilot customer, a message is displayed at the top of the console to migrate to Autopilot for AWS Savings Plans. Click **Get Started**, and the onboarding workflow previously described will be displayed. Migration banner on the Autopilot dashboard ## Review Autopilot for AWS Savings Plans Dashboards From the Autopilot dashboard, you can toggle between the Compute, RDS, ElastiCache, Redshift, and OpenSearch tabs. This section describes the actions you can take on the **Compute** tab. ### Configuration Screen After you onboard to Autopilot, the **Compute Configuration** page is displayed. By default, Autopilot is configured to a 60-day lookback with 1-year No Upfront payment types. You can also access this page by selecting **Configuration** from the left menu of the **Compute** tab. On this page, you can configure the following options. On the Autopilot configuration page, you can configure the lookback period and payment options for both Compute Savings Plans and Database Savings Plans (DBSPs). However, the term length setting applies only to Compute Savings Plans, since Database Savings Plans are available only with 1-year terms. Configuration screen on the Autopilot dashboard providing options for lookback, payment type, and term #### Toggle Automatic Purchases Automatic Savings Plans purchases are initially disabled. If you want to have Autopilot make Savings Plans purchases on your behalf, click the toggle and acknowledge the displayed confirmation message. You can leave this toggle disabled if you would rather manually approve or decline recommendations. See the [*Review Coverage Recommendations*](/autopilot#review-coverage-recommendations) section below for details on how to manually approve purchases. #### Lookback Period Autopilot allows customers to set a lookback period of either 7, 30, or 60 days, which will generate different effective discounts based on actual usage during that period. You can configure the lookback period that most accurately captures your usage to ensure the correct coverage level is purchased. #### Savings Plan Purchase Configuration Configure the length of time and payment options for your purchases. For **Term Length**, select either 1- or 3-year term lengths. For **Payment**, select either All Upfront, Partial Upfront, or No Upfront payment plans. For more information about term lengths and payment options, see [this Vantage blog](https://www.vantage.sh/blog/what-is-an-aws-savings-plan) on Savings Plans. The configuration settings in Autopilot (lookback period and payment options) apply to both Compute Savings Plans and Database Savings Plans recommendations. However, Database Savings Plans only support 1-year terms, so the term length setting does not apply to Database Savings Plans. Database Savings Plans recommendations are also available in the [Recommendations](/cost_recommendations) tab, where you can view and manage them alongside other cost optimization recommendations. ### Coverage Overview and Recommended Coverage Based on your configured inputs, Autopilot provides a recommended Compute Savings Plan for purchase to cover the remaining spend. You can view your recommended coverage to get a better idea of how you are currently committed along with Autopilot's recommendations. #### Coverage Overview As Autopilot adjusts the commitment level, this tab includes a graph that displays your On-Demand, Savings Plans, and (if applicable) Reserved and Spot Instance usage. The graph shows daily usage, and you can use the date picker above the graph to change the time period that's shown. Coverage Overview screen on the Autopilot dashboard Above the graph, your savings are displayed, along with the percentage decrease or increase between this and last month. Your **Coverage** is also displayed, which shows your coverage across all commitment types. Finally, your **All Time Savings** found by Autopilot are displayed. This page includes all commitments, regardless of whether they're covered by Autopilot. #### Recommended Coverage On the **Recommended Coverage** screen, a graph with On-Demand vs. Recommended Coverage is displayed. Above the chart, the **Projected On-Demand Cost** is displayed. This is the remaining On-Demand cost that's estimated to not be covered by the recommended Savings Plans, over the lookback period. On the graph, you can filter by the following options: * **Service:** Amazon EC2, ECS, Fargate, or Lambda (for Compute Savings Plans) * **Category:** A compute category that is a representation of your normalized compute workloads (e.g., *USE1-Fargate-GB-Hours*) * **Region:** AWS Region (e.g., us-east-1) The table displays the **On-Demand Cost** for each combination of service and compute category. **Recommended Coverage** is displayed as a trendline you can toggle on and off, as shown in the example below. You can also change the date range displayed above the chart.