canonical: https://jentic.com/apis/amazonaws.com/aws-savings-plans

# AWS Savings Plans

Jentic publishes the only available OpenAPI specification for AWS Savings Plans, keeping it validated and agent-ready. Savings Plans are an AWS pricing model that offer discounted rates on EC2, Fargate, and Lambda usage in exchange for committing to a consistent dollar-per-hour spend over 1 or 3 years. This API lets FinOps teams browse offerings, purchase or queue plans, describe existing commitments, and inspect the per-instance discount rates that apply across their AWS account or organisation.

## For AI agents

Browse, purchase, and inspect AWS Savings Plans commitments to lock in discounted rates on EC2, Fargate, and Lambda usage.

## Scope

Does not provision EC2 instances, query usage metrics, or manage Reserved Instances - use for browsing, purchasing, and inspecting AWS Savings Plans commitments only.

## Capabilities

- List available Savings Plan offerings filtered by term, payment option, and product family with DescribeSavingsPlansOfferings
- Inspect per-instance discount rates that a given offering applies to with DescribeSavingsPlansOfferingRates
- Purchase a Savings Plan commitment for a specific dollar-per-hour amount with CreateSavingsPlan
- Queue a future-dated Savings Plan purchase and cancel it before it activates with DeleteQueuedSavingsPlan
- Describe active and historical Savings Plans on the account with DescribeSavingsPlans
- Inspect the per-instance discount rates of an active Savings Plan with DescribeSavingsPlanRates
- Tag, untag, and list tags on Savings Plan ARNs for chargeback and cost-allocation reporting

## Use cases

### FinOps commitment planning

FinOps teams use DescribeSavingsPlansOfferings and DescribeSavingsPlansOfferingRates to compare 1-year vs 3-year and No Upfront vs All Upfront offerings against their forecasted EC2, Fargate, and Lambda spend. The API returns the exact effective hourly rate per instance family and region, which lets the team model break-even and pick the commitment level that matches their lowest sustained spend.

Example prompt: Call DescribeSavingsPlansOfferings filtered by planTypes=ComputeSP and durations=31536000, then for each offering call DescribeSavingsPlansOfferingRates filtered by usageTypes for EC2 m5.large in us-east-1.

### Savings Plan purchase and queueing

Cloud-finance teams use CreateSavingsPlan to lock in a commitment at a specific dollar-per-hour rate, optionally with a future start date so the commitment activates aligned with a budget cycle. DeleteQueuedSavingsPlan allows cancellation before the queued plan activates - useful when forecasts shift between commitment and activation.

Example prompt: Call CreateSavingsPlan with savingsPlanOfferingId for the 1-year No Upfront Compute SP, commitment='5.00', and a clientToken for idempotency.

### Existing commitment inventory and audit

Cost-allocation teams use DescribeSavingsPlans to inventory all active and expired commitments on the account, then DescribeSavingsPlanRates to see the per-usage-type rate each commitment applies. Combined with tags applied via TagResource, this drives chargeback reporting that maps Savings Plan benefit to the business unit funding the commitment.

Example prompt: Call DescribeSavingsPlans with no filter to enumerate all plans, then for any plan with end date within 90 days flag it for renewal review.

### Agent-driven Savings Plan operations through Jentic

AI agents built into FinOps tooling use Jentic to call DescribeSavingsPlansOfferings, CreateSavingsPlan, and DescribeSavingsPlans without holding raw AWS credentials. Jentic stores keys in your Jentic One instance, signs each request with SigV4, and returns the structured response - letting the agent gather offerings, model spend, and present a recommendation to a human approver before purchase.

Example prompt: Search Jentic for 'list AWS Savings Plan offerings', load DescribeSavingsPlansOfferings, and execute it filtered to the durations and product types matching the team's commitment policy.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /DescribeSavingsPlansOfferings | List available Savings Plan offerings |
| POST | /DescribeSavingsPlansOfferingRates | List per-instance discount rates for an offering |
| POST | /CreateSavingsPlan | Purchase or queue a Savings Plan |
| POST | /DescribeSavingsPlans | List active and historical Savings Plans |
| POST | /DescribeSavingsPlanRates | List per-usage-type rates of an active plan |
| POST | /DeleteQueuedSavingsPlan | Cancel a queued Savings Plan before activation |
| POST | /TagResource | Apply tags to a Savings Plan ARN |

## Key resources

- **SavingsPlanOffering** — An offered Savings Plan template with term, payment option, and plan type
- **SavingsPlanOfferingRate** — Per-usage-type discount rate offered under an offering
- **SavingsPlan** — An active, queued, expired, or returned Savings Plan commitment on the account
- **SavingsPlanRate** — Per-usage-type discount rate of an existing active commitment
- **Tags** — Key-value pairs applied to Savings Plan ARNs for cost allocation

## Why Jentic

- **Setup:** Wiring AWS Savings Plans by hand means implementing AWS SigV4 signing against the global us-east-1 endpoint and passing a client token for idempotent purchases yourself. Through Jentic you install once, import AWS Savings Plans from the API Directory, store your AWS access key and secret once, and your agent calls it.
- **Permission scoping:** Savings Plans takes offering ids, commitments, and filters in the request body of POST operations rather than in the URL path, so scope your agent to the operations it needs: for example allow DescribeSavingsPlansOfferings and DescribeSavingsPlans for read-only FinOps modelling. You choose the operations it may call, so a committing purchase with CreateSavingsPlan is not included unless you add it.
- **Credential handling:** Your AWS access key and secret are stored once, encrypted, by your own Jentic One instance and each request is signed with SigV4 at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list AWS Savings Plan offerings' or 'find plans expiring soon', and Jentic returns the matching operation like DescribeSavingsPlansOfferings or DescribeSavingsPlans with its input schema so the agent calls it without browsing the AWS docs.

## Related APIs

- **AWS Cost Explorer** — Analyse historical usage to right-size Savings Plan commitments before purchase
- **Amazon EC2** — EC2's Reserved Instances API offers a different (less flexible) commitment model
- **AWS Budgets** — Set spend and coverage alerts that include Savings Plan utilisation

## FAQ

### Why is there no official OpenAPI spec for AWS Savings Plans?

AWS does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call AWS Savings Plans via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the AWS Savings Plans API use?

Savings Plans uses AWS Signature Version 4 HMAC signing with an access key ID and secret access key, optionally with a session token. The service is global, so requests are signed against the us-east-1 endpoint. Through Jentic, your AWS credentials live in your Jentic One instance and Jentic signs each request server-side.

### Can I buy a Reserved Instance with the AWS Savings Plans API?

No. This API is for Savings Plans only - Compute SP, EC2 Instance SP, and SageMaker SP. Reserved Instances are purchased through the EC2 API (PurchaseReservedInstancesOffering) and have a different commitment model tied to specific instance families.

### What are the rate limits for the AWS Savings Plans API?

AWS does not publish a fixed RPS for Savings Plans in the spec; standard AWS API throttling applies and the service returns ThrottlingException on overage. The deeper limit is product-side: there are quotas on the number of Savings Plans an account can hold, available in the AWS service quotas console.

### How do I purchase a Savings Plan with the AWS Savings Plans API through Jentic?

Search Jentic for 'purchase an AWS Savings Plan', load the CreateSavingsPlan operation, and call POST /CreateSavingsPlan with savingsPlanOfferingId, commitment in dollars-per-hour, and a unique clientToken for idempotency. Confirm the result with DescribeSavingsPlans. Install with pip install jentic.

### Can I cancel a Savings Plan after it activates with the AWS Savings Plans API?

No - once a Savings Plan activates it cannot be cancelled or refunded; you are committed for the chosen 1-year or 3-year term. Only queued plans (those with a future start date that have not yet activated) can be cancelled, via DeleteQueuedSavingsPlan.

### Can I limit what my agent is allowed to do with the AWS Savings Plans API?

Yes. Because you run Jentic One yourself, your own rules decide which Savings Plans operations and credentials the agent may use, so you scope it to only the operations it needs. For read-only FinOps modelling you can allow DescribeSavingsPlansOfferings, DescribeSavingsPlansOfferingRates, and DescribeSavingsPlans while leaving out a committing purchase like CreateSavingsPlan unless you explicitly add it. Since the API takes offering ids, commitments, and filters in the POST request body rather than the URL path, this operation-level control is how you decide whether the agent can browse plans or actually buy one.
