CoreStack Savings Plans API
Savings plans purchased and utilization
Savings plans purchased and utilization
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/corestack:corestack-savings-plans-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Corestack Savings Plans API
version: 1.0.0
license:
name: CoreStack Inc License
url: http://corestack.io/licenses/LICENSE-2.0.html
termsOfService: http://corestack.io/
description: 'Operations tagged Savings Plans across 2 of this provider''s published API definitions: corestack-external-api-openapi-original.json, corestack-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: /
tags:
- name: Savings Plans
description: Savings plans purchased and utilization
paths:
/v2/savings_plans/recommendations:
post:
responses:
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ModelError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ModelError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ModelError'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ModelError'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ModelError'
'200':
description: Fetched successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SavingsPlanRecommendationsData'
summary: List savings plan purchase recommendations
description: List savings plan purchase recommendations across one or more tenants in a single call.
operationId: ListSavingsPlanRecommendations
security:
- auth_token: []
tags:
- Savings Plans
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SavingsPlanRecommendationsRequest'
required: true
servers:
- url: /
/v2/savings_plans/{tenant_id}/purchased/details:
post:
responses:
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ModelError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ModelError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ModelError'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ModelError'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ModelError'
'200':
description: Fetched successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SavingsPlanDetailsData'
summary: List purchased savings plan details
description: List purchased savings plan details for one or more service accounts, excluding utilization time-series.
operationId: ListSavingsPlanDetails
parameters:
- name: tenant_id
in: path
required: true
description: Specify the tenant ID. This is a unique ID and can be retrieved using the List Tenants API.
schema:
type: string
security:
- auth_token: []
tags:
- Savings Plans
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SavingsPlanDetailsRequest'
required: true
servers:
- url: /
/v2/savings_plans/{tenant_id}/purchased/utilization:
post:
responses:
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ModelError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ModelError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ModelError'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ModelError'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ModelError'
'200':
description: Fetched successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SavingsPlanUtilizationData'
summary: Get savings plan utilization metrics
description: Fetch paginated utilization time-series for a single purchased savings plan. plan_id is required.
operationId: GetSavingsPlanUtilization
parameters:
- name: tenant_id
in: path
required: true
description: Specify the tenant ID. This is a unique ID and can be retrieved using the List Tenants API.
schema:
type: string
security:
- auth_token: []
tags:
- Savings Plans
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SavingsPlanUtilizationRequest'
required: true
servers:
- url: /
components:
schemas:
SavingsPlanUtilizationFilters:
required:
- plan_id
properties:
plan_id:
type: string
description: Plan ID of the purchased savings plan
service_account_ids:
type: array
description: Service account IDs to filter
items:
type: string
x-cs-type: ObjectId
start_date:
type: string
format: date-time
description: Filter metrics on or after this date
end_date:
type: string
format: date-time
description: Filter metrics on or before this date
type: object
SavingsPlanUtilizationData:
allOf:
- $ref: '#/components/schemas/SavingsPlanBase'
- properties:
utilization_metrics:
description: Paginated utilization time-series
$ref: '#/components/schemas/SavingsPlanUtilizationMetricsData'
type: object
SavingsPlanUtilizationMetricsData:
properties:
results:
type: array
description: List of result identifiers
items:
$ref: '#/components/schemas/SavingsPlanUtilizationMetric'
next_list_context:
description: List context
$ref: '#/components/schemas/ListContext'
type: object
SavingsPlanItem:
allOf:
- $ref: '#/components/schemas/SavingsPlanBase'
- properties:
plan_scope:
type: string
description: Scope of the savings plan
start_date:
type: string
format: date-time
description: Plan start date
end_date:
type: string
format: date-time
description: Plan end date
term:
type: string
description: Plan term
payment_option:
type: string
description: Payment option
commitment_amount:
type: number
description: Committed spend per hour
upfront_cost:
type: number
description: Upfront cost of the plan
currency:
type: string
description: Currency of monetary values
instance_family:
type: string
description: Instance family (AWS compute plans)
provisioning_state:
type: string
description: Current provisioning/status of the plan
type: object
SavingsPlanBase:
properties:
plan_id:
type: string
description: Savings plan ID
plan_name:
type: string
description: Savings plan name
plan_type:
type: string
description: Type of savings plan
service_account_id:
type: string
description: Associated service account ID
x-cs-type: ObjectId
utilization_percentage:
type: number
description: Overall utilization percentage
type: object
SavingsPlanDetailsRequest:
properties:
list_context:
description: Optional list context
$ref: '#/components/schemas/ListContext'
filters:
description: Filters for the request
$ref: '#/components/schemas/SavingsPlanDetailsFilters'
type: object
SavingsPlanRecommendationsRequest:
required:
- tenant_ids
properties:
tenant_ids:
type: array
description: One or more tenant IDs to fetch savings plan recommendations across.
items:
type: string
x-cs-type: ObjectId
type: object
ModelError:
required:
- message
properties:
message:
type: string
description: Error response message.
type: object
SavingsPlanRecommendationsData:
required:
- recommendations
properties:
recommendations:
type: array
description: Savings plan purchase recommendations.
items:
$ref: '#/components/schemas/SavingsPlanRecommendation'
type: object
SavingsPlanRecommendation:
properties:
recommendation_id:
type: string
description: Recommendation ID
service_account_id:
type: string
description: Associated service account ID
x-cs-type: ObjectId
plan_type:
type: string
description: Type of savings plan
payment_option:
type: string
description: Payment option
recommendation_scope:
type: string
description: Scope of the recommendation
lookback_period:
type: string
description: Historical usage window used for the recommendation
usage_hours:
type: number
description: Usage hours considered
term:
type: string
description: Plan term
commitment_granularity:
type: string
description: Commitment granularity
commitment_amount:
type: number
description: Recommended committed spend per hour
savings_percentage:
type: number
description: Estimated savings percentage
savings_amount:
type: number
description: Estimated savings amount
utilization_percentage:
type: number
description: Projected utilization percentage
cost_without_recommendation:
type: number
description: On-demand cost without the recommendation
cost_with_recommendation:
type: number
description: Projected cost with the recommendation applied
currency:
type: string
description: Currency of monetary values
number_of_plans:
type: integer
description: Number of plans recommended
instance_family:
type: string
description: Instance family (AWS compute plans)
type: object
SavingsPlanUtilizationRequest:
properties:
list_context:
description: Optional list context
$ref: '#/components/schemas/ListContext'
filters:
description: Filters for the request
$ref: '#/components/schemas/SavingsPlanUtilizationFilters'
type: object
SavingsPlanUtilizationMetric:
properties:
usage_date:
type: string
format: date-time
description: Date of the utilization record
avg_utilization_percentage:
type: number
description: Average utilization percentage for the period
max_utilization_percentage:
type: number
description: Maximum utilization percentage for the period
min_utilization_percentage:
type: number
description: Minimum utilization percentage for the period
type: object
ListContext:
properties:
batch_size:
type: integer
description: Max number of ids in the response
batch_offset:
type: integer
description: Offset of batches into the results. First batch is 0
total:
type: integer
description: Total number of results
type: object
SavingsPlanDetailsData:
properties:
results:
type: array
description: List of result identifiers
items:
$ref: '#/components/schemas/SavingsPlanItem'
next_list_context:
description: List context
$ref: '#/components/schemas/ListContext'
type: object
SavingsPlanDetailsFilters:
properties:
service_account_ids:
type: array
description: Service account IDs to filter
items:
type: string
x-cs-type: ObjectId
type: object
SavingsPlanUtilizationMetric_2:
properties:
usage_date:
type: string
format: date-time
description: Date of the utilization record
avg_utilization_percentage:
type: number
description: Average utilization percentage for the day
max_utilization_percentage:
type: number
description: Maximum utilization percentage for the day
min_utilization_percentage:
type: number
description: Minimum utilization percentage for the day
utilization_percentage:
type: number
description: Raw utilization percentage for the day
total_commitment:
type: number
description: Total commitment amount for the day
used_commitment:
type: number
description: Used commitment amount for the day
unused_commitment:
type: number
description: Unused commitment amount for the day
net_savings:
type: number
description: Net savings amount for the day
on_demand_cost:
type: number
description: On-demand cost equivalent for the day
type: object
securitySchemes:
auth_token:
type: apiKey
in: header
name: X-Auth-Token
x-refined-from:
- corestack-external-api-openapi-original.json
- corestack-openapi.json