Cast AI Node Template API
Provides resource usage and spot interruption prediction performance metrics per node template.
Provides resource usage and spot interruption prediction performance metrics per node template.
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/kimchi:kimchi-nodetemplateapi-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: Reporting Node Template API
version: 0.0.1
description: Provides resource usage and spot interruption prediction performance metrics per node template.
servers:
- url: https://api.cast.ai/
description: US endpoint
- url: https://api.eu.cast.ai/
description: EU endpoint
security:
- BearerAuth: []
- ApiKeyAuth: []
tags:
- name: NodeTemplateAPI
description: Provides resource usage and spot interruption prediction performance metrics per node template.
paths:
/reporting/v1beta/organizations/{organizationId}/node-templates-metrics:
get:
tags:
- NodeTemplateAPI
summary: Returns resource usage per node template
description: Returns resource metrics and cloud costs per node template, aggregated by the specified time step.
operationId: NodeTemplateAPI_ListNodeTemplatesMetrics
parameters:
- name: organizationId
in: path
description: Organization ID.
required: true
schema:
type: string
- name: clusterIds
in: query
description: Cluster IDs to filter the report. If empty, all clusters in the organization are included.
schema:
type: array
items:
type: string
- name: startTime
in: query
description: Start time of the reporting period (inclusive).
schema:
type: string
format: date-time
- name: endTime
in: query
description: End time of the reporting period (exclusive).
schema:
type: string
format: date-time
- name: step
in: query
description: Granularity of data points.
schema:
enum:
- STEP_UNSPECIFIED
- ONE_DAY
- ONE_MONTH
type: string
format: enum
- name: timeZone
in: query
description: "Optional time zone in IANA format, e.g., 'Europe/Madrid'.\n Default is Etc/UTC."
schema:
type: string
- name: page.limit
in: query
description: Defines the number of items that should be returned
schema:
type: string
- name: page.cursor
in: query
description: "Cursor that defines token indicating where to start the next page.\n Empty value indicates to start from beginning of the dataset."
schema:
type: string
- name: filter.operator
in: query
description: Logical operator for combining label requirements. Defaults to AND if unset.
schema:
enum:
- FILTER_OPERATOR_UNSPECIFIED
- AND
- OR
type: string
format: enum
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListNodeTemplatesMetricsResponse'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/reporting/v1beta/organizations/{organizationId}/node-templates-metrics:filtered:
post:
tags:
- NodeTemplateAPI
summary: Returns resource usage per node template with label filtering
description: Returns resource metrics and cloud costs per node template, aggregated by the specified time step, with optional filtering by cluster IDs and node labels.
operationId: NodeTemplateAPI_ListNodeTemplatesMetricsFiltered
parameters:
- name: organizationId
in: path
description: Organization ID.
required: true
schema:
type: string
- name: clusterIds
in: query
description: Cluster IDs to filter the report. If empty, all clusters in the organization are included.
schema:
type: array
items:
type: string
- name: startTime
in: query
description: Start time of the reporting period (inclusive).
schema:
type: string
format: date-time
- name: endTime
in: query
description: End time of the reporting period (exclusive).
schema:
type: string
format: date-time
- name: step
in: query
description: Granularity of data points.
schema:
enum:
- STEP_UNSPECIFIED
- ONE_DAY
- ONE_MONTH
type: string
format: enum
- name: timeZone
in: query
description: "Optional time zone in IANA format, e.g., 'Europe/Madrid'.\n Default is Etc/UTC."
schema:
type: string
- name: page.limit
in: query
description: Defines the number of items that should be returned
schema:
type: string
- name: page.cursor
in: query
description: "Cursor that defines token indicating where to start the next page.\n Empty value indicates to start from beginning of the dataset."
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NodeLabelsFilter'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListNodeTemplatesMetricsResponse'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/reporting/v1beta/organizations/{organizationId}/node-templates/spot-interruption-prediction-performance-metrics:
get:
tags:
- NodeTemplateAPI
summary: Returns spot interruption prediction performance metrics time-series
description: Returns avg spot interruption ratio per node template per time bucket at the requested granularity.
operationId: NodeTemplateAPI_ListSpotInterruptionPredictionPerformanceMetrics
parameters:
- name: organizationId
in: path
description: Organization ID.
required: true
schema:
type: string
- name: clusterIds
in: query
description: Cluster IDs to filter the report. If empty, all clusters in the organization are included.
schema:
type: array
items:
type: string
- name: nodeTemplateNames
in: query
description: Node template names to filter the report. If empty, all node templates are included.
schema:
type: array
items:
type: string
- name: startTime
in: query
description: Start time of the reporting period (inclusive).
schema:
type: string
format: date-time
- name: endTime
in: query
description: End time of the reporting period (exclusive).
schema:
type: string
format: date-time
- name: step
in: query
description: Granularity of data points.
schema:
enum:
- STEP_UNSPECIFIED
- ONE_HOUR
- ONE_DAY
- ONE_MONTH
- FIVE_MINUTES
type: string
format: enum
- name: timeZone
in: query
description: "Optional time zone in IANA format, e.g., 'Europe/Madrid'.\n Default is Etc/UTC."
schema:
type: string
- name: page.limit
in: query
description: Defines the number of items that should be returned
schema:
type: string
- name: page.cursor
in: query
description: "Cursor that defines token indicating where to start the next page.\n Empty value indicates to start from beginning of the dataset."
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ListSpotInterruptionPredictionPerformanceMetricsResponse'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
/reporting/v1beta/organizations/{organizationId}/node-templates/spot-interruption-prediction-performance-summary:
get:
tags:
- NodeTemplateAPI
summary: Returns spot interruption prediction performance summary
description: Returns avg spot interruption ratio for the entire period — as a single overall value and broken down per node template.
operationId: NodeTemplateAPI_GetSpotInterruptionPredictionPerformanceSummary
parameters:
- name: organizationId
in: path
description: Organization ID.
required: true
schema:
type: string
- name: clusterIds
in: query
description: Cluster IDs to filter the report. If empty, all clusters in the organization are included.
schema:
type: array
items:
type: string
- name: nodeTemplateNames
in: query
description: Node template names to filter the report. If empty, all node templates are included.
schema:
type: array
items:
type: string
- name: startTime
in: query
description: Start time of the reporting period (inclusive).
schema:
type: string
format: date-time
- name: endTime
in: query
description: End time of the reporting period (exclusive).
schema:
type: string
format: date-time
- name: timeZone
in: query
description: "Optional time zone in IANA format, e.g., 'Europe/Madrid'.\n Default is Etc/UTC."
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SpotInterruptionPredictionPerformanceSummary'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
components:
schemas:
Status:
type: object
properties:
code:
type: integer
description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
format: int32
message:
type: string
description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
details:
type: array
items:
$ref: '#/components/schemas/GoogleProtobufAny'
description: A list of messages that carry the error details. There is a common set of message types for APIs to use.
description: 'The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).'
SpotInterruptionPredictionPerformanceSummary:
type: object
properties:
avgSpotInterruptionRatio:
type: number
description: Overall avg spot interruption ratio across all node templates for the period.
format: double
nodeTemplates:
type: array
items:
$ref: '#/components/schemas/SpotInterruptionPredictionPerformanceSummary_NodeTemplateSummary'
description: Per-node-template avg spot interruption ratio for the period.
description: Spot interruption prediction performance summary for the entire requested period.
NodeTemplateMetrics:
type: object
properties:
clusterId:
type: string
description: Cluster ID.
name:
type: string
description: Node template name.
timestamp:
type: string
description: Timestamp of this data point (start of day or month depending on step).
format: date-time
provisionedAvgHourly:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Average provisioned resources per hour for this period.
requestedAvgHourly:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Average requested resources per hour for this period.
usedAvgHourly:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Average used resources per hour for this period.
provisionedHours:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Total provisioned resource-hours for this period.
requestedHours:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Total requested resource-hours for this period.
usedHours:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Total used resource-hours for this period.
cost:
allOf:
- $ref: '#/components/schemas/ResourceCost'
description: Total cost of resources for this period.
description: Resource usage data for a node template at a specific time bucket.
NodeTemplateMetricsTimeSeriesItem:
type: object
properties:
timestamp:
type: string
description: Timestamp of this data point (start of day or month depending on step).
format: date-time
provisionedAvgHourly:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Average provisioned resources per hour for this period.
requestedAvgHourly:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Average requested resources per hour for this period.
usedAvgHourly:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Average used resources per hour for this period.
provisionedHours:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Total provisioned resource-hours for this period.
requestedHours:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Total requested resource-hours for this period.
usedHours:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Total used resource-hours for this period.
cost:
allOf:
- $ref: '#/components/schemas/ResourceCost'
description: Total cost of resources for this period.
description: Total resource usage across all node templates at a specific time bucket.
ListNodeTemplatesMetricsResponse:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/NodeTemplateMetrics'
description: Resource usage items per node template per time bucket.
nextPageCursor:
type: string
description: Cursor for the next page. Empty if no more pages.
totalCount:
type: integer
description: Total number of items matching the query.
format: int32
summary:
allOf:
- $ref: '#/components/schemas/NodeTemplateMetricsSummary'
description: Aggregated summary across all node templates for the entire period.
description: Response containing node template resource usage data.
ResourceCost:
type: object
properties:
cpu:
type: number
description: CPU cost in USD.
format: double
memory:
type: number
description: Memory cost in USD.
format: double
gpu:
type: number
description: GPU cost in USD.
format: double
total:
type: number
description: Total cost in USD.
format: double
tpu:
type: number
description: TPU cost in USD.
format: double
description: Cloud costs for each resource type over a given period.
ListSpotInterruptionPredictionPerformanceMetricsResponse:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/NodeTemplatePerformanceMetrics'
description: Metrics per node template for the requested period at timestep granularity.
nextPageCursor:
type: string
description: Cursor for the next page. Empty if no more pages.
totalCount:
type: integer
description: Total number of items matching the query.
format: int32
description: Response containing spot interruption prediction performance metrics per node template.
NodeTemplatePerformanceMetrics_TimeSeriesItem:
type: object
properties:
timestamp:
type: string
description: Timestamp of this data point.
format: date-time
avgSpotInterruptionRatio:
type: number
description: Avg spot interruption ratio in this time bucket.
format: double
totalRunningNodes:
type: string
description: Total running spot nodes in this time bucket.
totalInterruptedNodes:
type: string
description: Total interrupted spot nodes in this time bucket.
description: Avg spot interruption ratio at a specific time bucket.
NodeTemplatePerformanceMetrics:
type: object
properties:
clusterId:
type: string
description: Cluster which the node template belongs to.
nodeTemplateName:
type: string
description: Node template name.
timeSeries:
type: array
items:
$ref: '#/components/schemas/NodeTemplatePerformanceMetrics_TimeSeriesItem'
description: Time-series breakdown at the requested granularity.
description: Spot interruption prediction performance metrics for a specific node template as a time-series.
ResourceQuantity:
type: object
properties:
cpuCores:
type: number
description: CPU cores (e.g., 4.5 means 4500m).
format: double
memoryBytes:
type: number
description: Memory in bytes.
format: double
gpuCount:
type: number
description: Number of GPUs.
format: double
tpuCount:
type: number
description: Number of TPUs.
format: double
description: Resource quantities for a given period.
NodeLabelsFilter:
type: object
properties:
labels:
type: array
items:
$ref: '#/components/schemas/NodeLabelsFilter_LabelValue'
description: Label requirements to match against node labels.
operator:
enum:
- FILTER_OPERATOR_UNSPECIFIED
- AND
- OR
type: string
description: Logical operator for combining label requirements. Defaults to AND if unset.
format: enum
description: NodeLabelsFilter defines a filter for selecting nodes by their labels.
SpotInterruptionPredictionPerformanceSummary_NodeTemplateSummary:
type: object
properties:
clusterId:
type: string
description: Cluster which the node template belongs to.
nodeTemplateName:
type: string
description: Node template name.
avgSpotInterruptionRatio:
type: number
description: Avg spot interruption ratio for this node template over the period.
format: double
totalRunningNodes:
type: string
description: Total running nodes for this node template over the period.
totalInterruptedNodes:
type: string
description: Total interrupted spot nodes in this time bucket.
description: Avg spot interruption ratio for a single node template over the period.
NodeTemplateMetricsSummary:
type: object
properties:
timeSeries:
type: array
items:
$ref: '#/components/schemas/NodeTemplateMetricsTimeSeriesItem'
description: Time-series of total resource usage across all node templates per time bucket.
provisionedAvgHourly:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Average provisioned resources per hour for this period.
requestedAvgHourly:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Average requested resources per hour for this period.
usedAvgHourly:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Average used resources per hour for this period.
provisionedHours:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Total provisioned resource-hours for this period.
requestedHours:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Total requested resource-hours for this period.
usedHours:
allOf:
- $ref: '#/components/schemas/ResourceQuantity'
description: Total used resource-hours for this period.
cost:
allOf:
- $ref: '#/components/schemas/ResourceCost'
description: Total cost of resources for this period.
description: Aggregated resource usage summary across all node templates for the entire period.
NodeLabelsFilter_LabelValue:
required:
- key
- operator
type: object
properties:
key:
type: string
description: Label key the requirement applies to.
operator:
enum:
- OPERATOR_UNSPECIFIED
- IN
- NOT_IN
- EXISTS
- DOES_NOT_EXIST
type: string
description: Relationship of the key to the values set.
format: enum
values:
type: array
items:
type: string
description: Values to compare against; required for `IN` and `NOT_IN`, must be empty for `EXISTS` and `DOES_NOT_EXIST`.
description: LabelValue represents a single label selector requirement.
GoogleProtobufAny:
type: object
properties:
'@type':
type: string
description: The type of the serialized message.
additionalProperties: true
description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
x-provenance:
method: searched
source: https://docs.cast.ai/reference
harvested: '2026-10-20'
tool: harvest-readme-openapi.py
note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
assembled_from:
- https://docs.cast.ai/reference/budgetsapi_createbudget.md
- https://docs.cast.ai/reference/budgetsapi_deletebudget.md
- https://docs.cast.ai/reference/budgetsapi_getbudget.md
- https://docs.cast.ai/reference/budgetsapi_listbudgets.md
- https://docs.cast.ai/reference/budgetsapi_previewbudgetcost.md
- https://docs.cast.ai/reference/budgetsapi_updatebudget.md
- https://docs.cast.ai/reference/clusterscoreapi_getclusterrestrictiondetails.md
- https://docs.cast.ai/reference/clusterscoreapi_listclusterrestrictions.md
- https://docs.cast.ai/reference/containerlivemigrationapi_getcontainerlivemigrationdetail.md
- https://docs.cast.ai/reference/containerlivemigrationapi_getcontainerlivemigrationsummary.md
- https://docs.cast.ai/reference/containerlivemigrationapi_listcontainerlivemigrationevents.md
- https://docs.cast.ai/reference/containerlivemigrationapi_listcontainerlivemigrationfiltervalues.md
- https://docs.cast.ai/reference/containerlivemigrationapi_listcontainerlivemigrationincompatibleworkloads.md
- https://docs.cast.ai/reference/containerlivemigrationapi_listcontainerlivemigrations.md
- https://docs.cast.ai/reference/containerlivemigrationapi_listcontainerlivemigrationworkloads.md
- https://docs.cast.ai/reference/instanceapi_getinstancessummary.md
- https://docs.cast.ai/reference/instanceapi_listinstances.md
- https://docs.cast.ai/reference/nodeconditioneventsapi_listnodeconditionevents.md
- https://docs.cast.ai/reference/nodetemplateapi_getspotinterruptionpredictionperformancesummary.md
- https://docs.cast.ai/reference/nodetemplateapi_listnodetemplatesmetrics.md
- https://docs.cast.ai/reference/nodetemplateapi_listnodetemplatesmetricsfiltered.md
- https://docs.cast.ai/reference/nodetemplateapi_listspotinterruptionpredictionperformancemetrics.md
- https://docs.cast.ai/reference/optimizationapi_runclusteroptimizationsreport.md
- https://docs.cast.ai/reference/reliabilitymetricsapi_getclusterreliabilitymetrics.md
- https://docs.cast.ai/reference/reliabilitymetricsapi_getorganizationclustersreliabilitymetrics.md
- https://docs.cast.ai/reference/valuerealizationapi_getbaselineparams.md
- https://docs.cast.ai/reference/valuerealizationapi_recalculatebaselineparams.md
- https://docs.cast.ai/reference/valuerealizationapi_runclustersvaluerealizationreport.md
- https://docs.cast.ai/reference/valuerealizationapi_runvaluerealizationtimelinereport.md
- https://docs.cast.ai/reference/valuerealizationapi_runworkloadsvaluerealizationreport.md
- https://docs.cast.ai/reference/valuerealizationapi_updatebaselineparams.md
merge:
pages: 31
deduped: 179
conflicts_kept_first: 0