AWS Cost and Usage Report Service
amazonaws · Cloud
The AWS Cost and Usage Report API enables you to programmatically create, query, and delete AWS Cost and Usage report definitions. AWS Cost and Usage reports track the monthly AWS costs and usage associated with your AWS account. The report contains line items for each unique combination of AWS product, usage type, and operation that your AWS account uses. You can configure the AWS Cost and Usage report to show only the data that you want, using the AWS Cost and Usage API. Servi
Authentication
Sample Requests
Lists the AWS Cost and Usage reports available to this account.
Hover any highlighted part to learn what it does
| X-Amz-Target | AWSOrigamiServiceGatewayService.DescribeReportDefinitions |
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.DescribeReportDefinitions?NextToken=example&MaxResults=example" \ -H "X-Amz-Target: AWSOrigamiServiceGatewayService.DescribeReportDefinitions"
import requests
params = {
"NextToken": "example",
"MaxResults": "example"
}
headers = {
"X-Amz-Target": "AWSOrigamiServiceGatewayService.DescribeReportDefinitions"
}
response = requests.post(
"https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.DescribeReportDefinitions",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.DescribeReportDefinitions');
url.searchParams.set('NextToken', 'example');
url.searchParams.set('MaxResults', 'example');
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Amz-Target': 'AWSOrigamiServiceGatewayService.DescribeReportDefinitions'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.DescribeReportDefinitions")
q := baseURL.Query()
q.Set("NextToken", "example")
q.Set("MaxResults", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("X-Amz-Target", "AWSOrigamiServiceGatewayService.DescribeReportDefinitions")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.DescribeReportDefinitions")
uri.query = URI.encode_www_form({
"NextToken" => "example",
"MaxResults" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["X-Amz-Target"] = "AWSOrigamiServiceGatewayService.DescribeReportDefinitions"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.DescribeReportDefinitions?" . http_build_query([
"NextToken" => "example",
"MaxResults" => "example"
]);
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"X-Amz-Target: AWSOrigamiServiceGatewayService.DescribeReportDefinitions"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Deletes the specified report.
Hover any highlighted part to learn what it does
| X-Amz-Target | AWSOrigamiServiceGatewayService.DeleteReportDefinition |
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.DeleteReportDefinition" \ -H "X-Amz-Target: AWSOrigamiServiceGatewayService.DeleteReportDefinition"
import requests
headers = {
"X-Amz-Target": "AWSOrigamiServiceGatewayService.DeleteReportDefinition"
}
response = requests.post(
"https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.DeleteReportDefinition",
headers=headers,
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.DeleteReportDefinition';
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Amz-Target': 'AWSOrigamiServiceGatewayService.DeleteReportDefinition'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.DeleteReportDefinition"
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("X-Amz-Target", "AWSOrigamiServiceGatewayService.DeleteReportDefinition")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.DeleteReportDefinition")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["X-Amz-Target"] = "AWSOrigamiServiceGatewayService.DeleteReportDefinition"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.DeleteReportDefinition";
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"X-Amz-Target: AWSOrigamiServiceGatewayService.DeleteReportDefinition"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Allows you to programatically update your report preferences.
Hover any highlighted part to learn what it does
| X-Amz-Target | AWSOrigamiServiceGatewayService.ModifyReportDefinition |
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.ModifyReportDefinition" \ -H "X-Amz-Target: AWSOrigamiServiceGatewayService.ModifyReportDefinition"
import requests
headers = {
"X-Amz-Target": "AWSOrigamiServiceGatewayService.ModifyReportDefinition"
}
response = requests.post(
"https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.ModifyReportDefinition",
headers=headers,
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.ModifyReportDefinition';
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Amz-Target': 'AWSOrigamiServiceGatewayService.ModifyReportDefinition'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.ModifyReportDefinition"
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("X-Amz-Target", "AWSOrigamiServiceGatewayService.ModifyReportDefinition")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.ModifyReportDefinition")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["X-Amz-Target"] = "AWSOrigamiServiceGatewayService.ModifyReportDefinition"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.ModifyReportDefinition";
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"X-Amz-Target: AWSOrigamiServiceGatewayService.ModifyReportDefinition"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with AWS Cost and Usage Report Service?
AWS Cost and Usage Report Service is a Cloud API. Developers commonly use cloud APIs for:
- provisioning and managing cloud infrastructure
- automating deployments and container orchestration
- monitoring uptime and performance metrics
- managing storage buckets and databases
- setting up auto-scaling and load balancing
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. AWS Cost and Usage Report Service is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?