Amazon Elastic Compute Cloud
API Reference (API Version 2016-11-15)


Describes the Spot price history. For more information, see Spot Instance Pricing History in the Amazon EC2 User Guide for Linux Instances.

When you specify a start and end time, this operation returns the prices of the instance types within the time range that you specified and the time when the price changed. The price is valid within the time period that you specified; the response merely indicates the last time that the price changed.

Request Parameters

The following parameters are for this specific action. For more information about required and optional parameters that are common to all actions, see Common Query Parameters.


Filters the results by the specified Availability Zone.

Type: String

Required: No


Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

Type: Boolean

Required: No


The date and time, up to the current date, from which to stop retrieving the price history data, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

Type: Timestamp

Required: No


One or more filters.

  • availability-zone - The Availability Zone for which prices should be returned.

  • instance-type - The type of instance (for example, m3.medium).

  • product-description - The product description for the Spot price (Linux/UNIX | SUSE Linux | Windows | Linux/UNIX (Amazon VPC) | SUSE Linux (Amazon VPC) | Windows (Amazon VPC)).

  • spot-price - The Spot price. The value must match exactly (or use wildcards; greater than or less than comparison is not supported).

  • timestamp - The time stamp of the Spot price history, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). You can use wildcards (* and ?). Greater than or less than comparison is not supported.

Type: Array of Filter objects

Required: No


Filters the results by the specified instance types.

Type: Array of strings

Valid Values: t1.micro | t2.nano | t2.micro | t2.small | t2.medium | t2.large | t2.xlarge | t2.2xlarge | t3.nano | t3.micro | t3.small | t3.medium | t3.large | t3.xlarge | t3.2xlarge | m1.small | m1.medium | m1.large | m1.xlarge | m3.medium | m3.large | m3.xlarge | m3.2xlarge | m4.large | m4.xlarge | m4.2xlarge | m4.4xlarge | m4.10xlarge | m4.16xlarge | m2.xlarge | m2.2xlarge | m2.4xlarge | cr1.8xlarge | r3.large | r3.xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r4.large | r4.xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.16xlarge | r5.large | r5.xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.metal | r5d.large | r5d.xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.metal | x1.16xlarge | x1.32xlarge | x1e.xlarge | x1e.2xlarge | x1e.4xlarge | x1e.8xlarge | x1e.16xlarge | x1e.32xlarge | i2.xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i3.large | i3.xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.16xlarge | i3.metal | hi1.4xlarge | hs1.8xlarge | c1.medium | c1.xlarge | c3.large | c3.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c4.large | c4.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c5.large | c5.xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.18xlarge | c5d.large | c5d.xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.18xlarge | cc1.4xlarge | cc2.8xlarge | g2.2xlarge | g2.8xlarge | g3.4xlarge | g3.8xlarge | g3.16xlarge | g3s.xlarge | cg1.4xlarge | p2.xlarge | p2.8xlarge | p2.16xlarge | p3.2xlarge | p3.8xlarge | p3.16xlarge | d2.xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | f1.2xlarge | f1.4xlarge | f1.16xlarge | m5.large | m5.xlarge | m5.2xlarge | m5.4xlarge | m5.12xlarge | m5.24xlarge | m5d.large | m5d.xlarge | m5d.2xlarge | m5d.4xlarge | m5d.12xlarge | m5d.24xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | h1.16xlarge | z1d.large | z1d.xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.12xlarge | u-6tb1.metal | u-9tb1.metal | u-12tb1.metal

Required: No


The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned NextToken value.

Type: Integer

Required: No


The token for the next set of results.

Type: String

Required: No


Filters the results by the specified basic product descriptions.

Type: Array of strings

Required: No


The date and time, up to the past 90 days, from which to start retrieving the price history data, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

Type: Timestamp

Required: No

Response Elements

The following elements are returned by the service.


The token required to retrieve the next set of results. This value is null or an empty string when there are no more results to return.

Type: String


The ID of the request.

Type: String


The historical Spot prices.

Type: Array of SpotPrice objects


For information about the errors that are common to all actions, see Common Client Errors.



This example gets Spot price history for the first day in November 2016 for the specified Availability Zone.

Sample Request &StartTime=2016-11-01T00:00:00.000Z &EndTime=2016-11-01T23:59:59.000Z &AvailabilityZone=us-west-2a &AUTHPARAMS

Sample Response

<DescribeSpotPriceHistoryResponse xmlns=""> <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId> <spotPriceHistorySet> <item> <instanceType>m3.medium</instanceType> <productDescription>Linux/UNIX</productDescription> <spotPrice>0.287</spotPrice> <timestamp>2016-11-01T20:56:05.000Z</timestamp> <availabilityZone>us-west-2a</availabilityZone> </item> <item> <instanceType>m3.medium</instanceType> <productDescription>Windows</productDescription> <spotPrice>0.033</spotPrice> <timestamp>2016-11-01T22:33:47.000Z</timestamp> <availabilityZone>us-west-2a</availabilityZone> </item> </spotPriceHistorySet> <nextToken/> </DescribeSpotPriceHistoryResponse>

Example with Filters

This example uses filters to get the same results as the previous example.

Sample Request &Filter.1.Name=timestamp &Filter.1.Value.1=2016-11-01* &Filter.2.Name=availability-zone &Filter.2.Value.1=us-west-2a &AUTHPARAMS

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: