Finding services and products using Amazon Price List Query API
Note
To provide feedback about Amazon Price List, complete this short survey
We recommend that you use the Price List Query API when you want to:
-
Find pricing information about a product.
-
Search for products and rates that match your filters.
-
Quickly find products and prices that you need when you're developing applications that have limited resources, such as front-end environments.
To find Amazon Web Services services, their products, and the product attributes and prices, see the following steps.
Once you find the service, you can then get its attributes by using the
DescribeServices
API operation. If you know the service code, you
can also use the Amazon Price List Query API to get attributes for a service. Then, you
can use the service attributes to find the products that meet your requirements
based on the attribute values.
Examples: Find services
The following Amazon Command Line Interface (Amazon CLI) commands show how to find services.
Example: Find all services
aws pricing describe-services --region cn-northwest-1
Response
{ "FormatVersion": "aws_v1", "NextToken": "abcdefg123", "Services": [ { "AttributeNames": [ "volumeType", "maxIopsvolume", "instanceCapacity10xlarge", "locationType", "operation" ], "ServiceCode": "AmazonEC2" }, { "AttributeNames": [ "productFamily", "volumeType", "engineCode", "memory" ], "ServiceCode": "AmazonRDS" }, {...} ] }
Example: Find service metadata for Amazon Elastic Compute Cloud (Amazon EC2)
The following command shows how to find service metadata for Amazon EC2.
aws pricing describe-services --region cn-northwest-1 --service-code AmazonEC2
Response
{ "FormatVersion": "aws_v1", "NextToken": "abcdefg123", "Services": [ { "AttributeNames": [ "productFamily", "volumeType", "engineCode", "memory" ], "ServiceCode": "AmazonEC2" } ] }
The Amazon Web Services Region is the API endpoint for the Price List Query API. The endpoints aren't related to product or service attributes.
For more information, see DescribeServices in the Amazon Billing and Cost Management API Reference.
In step 1, you retrieved a list of attributes for an Amazon Web Services service. In this step, you use these attributes to search for products. In step 3, you need the available values for these attributes.
To find the values for an attribute, use the GetAttributeValues
API
operation. To call the API, specify the AttributeName
and
ServiceCode
parameters.
Example: Get attribute values
The following Amazon Command Line Interface (Amazon CLI) command shows how to get attribute values for an Amazon Web Services service.
Example: Find attribute values for Amazon Relational Database Service (Amazon RDS)
aws pricing get-attribute-values --service-code AmazonRDS --attribute-name operation --region cn-northwest-1
Response
{ "AttributeValues": [ { "Value": "CreateDBInstance:0002" }, { "Value": "CreateDBInstance:0003" }, { "Value": "CreateDBInstance:0004" }, { "Value": "CreateDBInstance:0005" } ], "NextToken": "abcdefg123" }
The Amazon Web Services Region is the API endpoint for the Price List Query API. The endpoints aren't related to product or service attributes.
For more information, see GetAttributeValues and language-specific Amazon SDKs in the Amazon Billing and Cost Management API Reference.
In this step, you use the information from step 1 and step 2 to find the
products and their terms. To get information about products, use the
GetProducts
API operation. You can specify a list of filters to
return the products that you want.
Note
The Price List Query API supports only "AND"
matching. The response
to your command only contains products that match all specified filters.
Examples: Find products from attributes
The following Amazon Command Line Interface (Amazon CLI) commands show how to find products by using attributes.
Example: Find products with specified filters
The following command shows how you can specify filters for Amazon Relational Database Service (Amazon RDS).
aws pricing get-products --service-code AmazonRDS --region cn-northwest-1 --filters Type=TERM_MATCH,Field=operation,Value="CreateDBInstance:0002"
Response
{ "FormatVersion": "aws_v1", "PriceList": ["{ \"product\":{ \"productFamily\":\"Database Instance\", \"attributes\":{ \"engineCode\":\"2\", \"enhancedNetworkingSupported\":\"Yes\", \"memory\":\"64 GiB\", \"dedicatedEbsThroughput\":\"2000 Mbps\", \"vcpu\":\"16\", \"locationType\":\"AWS Region\", \"storage\":\"EBS Only\", \"instanceFamily\":\"General purpose\", \"regionCode\":\"cn-northwest-1\", \"operation\":\"CreateDBInstance:0002\", ... }, \"sku\":\"22ANV4NNQP3UUCWY\"}, \"serviceCode\":\"AmazonRDS\", \"terms\":{...}" ], "NextToken": "abcd1234" }
Example: Use the filters.json
file to specify
filters
The following command shows how you can specify a JSON file that contains all filters.
aws pricing get-products --service-code AmazonRDS --region cn-northwest-1 --filters file://filters.json
For example, the filters.json
file might include the
following filters.
[ { "Type": "TERM_MATCH", "Field": "operation", "Value": "CreateDBInstance:0002" } ]
The following example shows how you can specify more than one filter.
[ { "Type": "TERM_MATCH", "Field": "AttributeName1", "Value": "AttributeValue1" }, { "Type": "TERM_MATCH", "Field": "AttributeName2", "Value": "AttributeValue2" }, ... ]
Response
{ "FormatVersion": "aws_v1", "PriceList": ["{ \"product\":{ \"productFamily\":\"Database Instance\", \"attributes\":{ \"engineCode\":\"2\", \"enhancedNetworkingSupported\":\"Yes\", \"memory\":\"64 GiB\", \"dedicatedEbsThroughput\":\"2000 Mbps\", \"vcpu\":\"16\", \"locationType\":\"AWS Region\", \"storage\":\"EBS Only\", \"instanceFamily\":\"General purpose\", \"regionCode\":\"cn-northwest-1\", \"operation\":\"CreateDBInstance:0002\", ... }, \"sku\":\"22ANV4NNQP3UUCWY\"}, \"serviceCode\":\"AmazonRDS\", \"terms\":{...}" ], "NextToken": "abcd1234" }
For more information, see the following topics:
-
GetProducts and language-specific Amazon SDKs in the Amazon Billing and Cost Management API Reference