Find an API

Search public APIs with auth details & Postman guides

← All APIs

AWS Cost and Usage Report Service

amazonaws · Cloud

Cloud No Auth Free & Open cloud Sandbox

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

No authentication requiredFree to use with no key needed.

Sample Requests

POST DescribeReportDefinitions

Lists the AWS Cost and Usage reports available to this account.

https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.DescribeReportDefinitions?NextToken=example&MaxResults=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
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));
POST DeleteReportDefinition

Deletes the specified report.

https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.DeleteReportDefinition

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
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));
POST ModifyReportDefinition

Allows you to programatically update your report preferences.

https://api.apis.guru/v2/specs/amazonaws.com/cur/2017-01-06/#X-Amz-Target=AWSOrigamiServiceGatewayService.ModifyReportDefinition

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
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

Get Postman ↗
  1. 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?

Open documentation ↗