Find an API

Search public APIs with auth details & Postman guides

← All APIs

AWS Price List Service

amazonaws · Cloud

Cloud No Auth Free & Open cloud

Amazon Web Services Price List API is a centralized and convenient way to programmatically query Amazon Web Services for services, products, and pricing information. The Amazon Web Services Price List uses standardized product attributes such as Location , Storage Class , and Operating System , and provides prices at the SKU level. You can use the Amazon Web Services Price List to build cost control and scenario planning tools, reconcile billing data, forec

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

POST DescribeServices

Returns the metadata for one service or a list of the metadata for all services. Use this without a service code to get the service codes for all services. Use it with a service code, such as AmazonEC2 , to get information specific to that service, such as the attribute names available f

https://api.apis.guru/v2/specs/amazonaws.com/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.DescribeServices?NextToken=example&MaxResults=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
X-Amz-Target AWSPriceListService.DescribeServices
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.DescribeServices?NextToken=example&MaxResults=example" \
  -H "X-Amz-Target: AWSPriceListService.DescribeServices"
import requests
params = {
    "NextToken": "example",
    "MaxResults": "example"
}
headers = {
    "X-Amz-Target": "AWSPriceListService.DescribeServices"
}
response = requests.post(
    "https://api.apis.guru/v2/specs/amazonaws.com/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.DescribeServices",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.DescribeServices');
url.searchParams.set('NextToken', 'example');
url.searchParams.set('MaxResults', 'example');

const response = await fetch(url, {
  method: 'POST',
  headers: {
    'X-Amz-Target': 'AWSPriceListService.DescribeServices'
  },
}); 
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/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.DescribeServices")
	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", "AWSPriceListService.DescribeServices")

	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/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.DescribeServices")
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"] = "AWSPriceListService.DescribeServices"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.DescribeServices?" . http_build_query([
    "NextToken" => "example",
    "MaxResults" => "example"
]);
$opts = ["http" => [
    "method" => "POST",
    "header" => implode("\r\n", [
        "X-Amz-Target: AWSPriceListService.DescribeServices"
    ]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
POST GetAttributeValues

Returns a list of attribute values. Attributes are similar to the details in a Price List API offer file. For a list of available attributes, see Offer File Definitions in the <a href="https://d

https://api.apis.guru/v2/specs/amazonaws.com/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.GetAttributeValues?NextToken=example&MaxResults=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
X-Amz-Target AWSPriceListService.GetAttributeValues
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.GetAttributeValues?NextToken=example&MaxResults=example" \
  -H "X-Amz-Target: AWSPriceListService.GetAttributeValues"
import requests
params = {
    "NextToken": "example",
    "MaxResults": "example"
}
headers = {
    "X-Amz-Target": "AWSPriceListService.GetAttributeValues"
}
response = requests.post(
    "https://api.apis.guru/v2/specs/amazonaws.com/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.GetAttributeValues",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.GetAttributeValues');
url.searchParams.set('NextToken', 'example');
url.searchParams.set('MaxResults', 'example');

const response = await fetch(url, {
  method: 'POST',
  headers: {
    'X-Amz-Target': 'AWSPriceListService.GetAttributeValues'
  },
}); 
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/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.GetAttributeValues")
	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", "AWSPriceListService.GetAttributeValues")

	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/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.GetAttributeValues")
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"] = "AWSPriceListService.GetAttributeValues"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.GetAttributeValues?" . http_build_query([
    "NextToken" => "example",
    "MaxResults" => "example"
]);
$opts = ["http" => [
    "method" => "POST",
    "header" => implode("\r\n", [
        "X-Amz-Target: AWSPriceListService.GetAttributeValues"
    ]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
POST GetProducts

Returns a list of all products that match the filter criteria.

https://api.apis.guru/v2/specs/amazonaws.com/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.GetProducts?NextToken=example&MaxResults=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
X-Amz-Target AWSPriceListService.GetProducts
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.GetProducts?NextToken=example&MaxResults=example" \
  -H "X-Amz-Target: AWSPriceListService.GetProducts"
import requests
params = {
    "NextToken": "example",
    "MaxResults": "example"
}
headers = {
    "X-Amz-Target": "AWSPriceListService.GetProducts"
}
response = requests.post(
    "https://api.apis.guru/v2/specs/amazonaws.com/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.GetProducts",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.GetProducts');
url.searchParams.set('NextToken', 'example');
url.searchParams.set('MaxResults', 'example');

const response = await fetch(url, {
  method: 'POST',
  headers: {
    'X-Amz-Target': 'AWSPriceListService.GetProducts'
  },
}); 
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/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.GetProducts")
	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", "AWSPriceListService.GetProducts")

	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/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.GetProducts")
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"] = "AWSPriceListService.GetProducts"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/pricing/2017-10-15/#X-Amz-Target=AWSPriceListService.GetProducts?" . http_build_query([
    "NextToken" => "example",
    "MaxResults" => "example"
]);
$opts = ["http" => [
    "method" => "POST",
    "header" => implode("\r\n", [
        "X-Amz-Target: AWSPriceListService.GetProducts"
    ]),
]];
$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 Price List Service?

AWS Price List 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 Price List 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 ↗