Cast AI Policies V2API API
PoliciesV2API handles interaction with V2 customer policies. V2 removes deprecated fields and eliminates sync with node templates.
PoliciesV2API handles interaction with V2 customer policies. V2 removes deprecated fields and eliminates sync with node templates.
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-policiesv2api-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: Cluster Autoscaler Policies V2API API
version: 0.0.1
description: 'PoliciesV2API handles interaction with V2 customer policies.
V2 removes deprecated fields and eliminates sync with node templates.'
servers:
- url: https://api.cast.ai/
description: US endpoint
- url: https://api.eu.cast.ai/
description: EU endpoint
security:
- BearerAuth: []
- ApiKeyAuth: []
tags:
- name: PoliciesV2API
description: 'PoliciesV2API handles interaction with V2 customer policies.
V2 removes deprecated fields and eliminates sync with node templates.'
paths:
/cluster-autoscaler/v2/clusters/{clusterId}/policies:
get:
tags:
- PoliciesV2API
summary: Get cluster policies
description: Gets V2 policies configuration for the target cluster.
operationId: PoliciesV2API_GetClusterPolicies
parameters:
- name: clusterId
in: path
description: The ID of the cluster.
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PoliciesV2'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
patch:
tags:
- PoliciesV2API
summary: Update cluster policies
description: Updates cluster's V2 policies configuration.
operationId: PoliciesV2API_UpdateClusterPolicies
parameters:
- name: clusterId
in: path
description: The ID of the cluster.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PoliciesV2'
example:
enabled: true
unschedulablePods:
enabled: true
podPinner:
enabled: true
partialTemplateMatchingEnabled: false
clusterLimits:
enabled: true
cpu:
maxCores: 100
nodeDownscaler:
emptyNodesEnabled: true
emptyNodesDelay: 300s
scopedMode: false
version: '1'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PoliciesV2'
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).'
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.
UnschedulablePodsPolicy:
type: object
properties:
enabled:
type: boolean
default: false
description: Enable/disable unschedulable pods detection policy.
podPinner:
allOf:
- $ref: '#/components/schemas/PodPinner'
description: Defines the CAST AI Pod Pinner component settings.
partialTemplateMatchingEnabled:
type: boolean
default: false
description: Marks whether partial matching should be used when deciding which custom node template to select.
description: "UnschedulablePodsPolicy defines autoscaler's behavior when unschedulable pods are detected.\n V2 Simplification:\n - Removed: headroom, headroom_spot (deprecated)\n - Removed: node_constraints, custom_instances_enabled (managed via Node Template API)\n - Removed: disk_gib_to_cpu_ratio (deprecated)\n - Kept: pod_pinner (all fields from V1)\n - Added: partial_template_matching_enabled (moved from top-level in V1)"
PoliciesV2:
type: object
properties:
enabled:
type: boolean
default: false
description: Enable/disable all policies (global master switch).
unschedulablePods:
allOf:
- $ref: '#/components/schemas/UnschedulablePodsPolicy'
description: Policy defining autoscaler's behavior when unschedulable pods were detected.
clusterLimits:
allOf:
- $ref: '#/components/schemas/ClusterLimitsPolicy'
description: Defines minimum and maximum amount of CPU the cluster can have.
nodeDownscaler:
allOf:
- $ref: '#/components/schemas/NodeDownscalerPolicy'
description: Node Downscaler defines policies for removing nodes based on the configured conditions.
scopedMode:
type: boolean
default: false
description: "Run the node autoscaler in scoped mode. Only pods with the appropriate toleration will trigger node scale-up decisions,\n and only nodes provisioned by the autoscaler will be eligible for downscaling."
version:
type: string
description: "Policy version for optimistic locking.\n When updating: provide the version you're updating from.\n When creating: omit or set to 0.\n In responses: always populated with current version."
description: "PoliciesV2 defines the autoscaling policies details for V2.\n V2 removes deprecated fields (headroom, spot_instances) and eliminates bidirectional sync with node templates.\n Node constraints and custom instances are managed via the Node Template API.\n Evictor is managed via the standalone Evictor API."
ClusterLimitsPolicy:
type: object
properties:
enabled:
type: boolean
default: false
description: Enable/disable cluster size limits policy.
cpu:
allOf:
- $ref: '#/components/schemas/ClusterLimitsCpu'
description: Defines the minimum and maximum amount of CPUs for cluster's worker nodes.
description: ClusterLimitsPolicy defines minimum and maximum amount of CPU the cluster can have.
PodPinner:
type: object
properties:
enabled:
type: boolean
default: false
description: Enable/disable the Pod Pinner policy. This will either enable or disable the Pod Pinner component's automatic management in your cluster.
status:
enum:
- POD_PINNER_STATUS_UNSPECIFIED
- POD_PINNER_STATUS_UNKNOWN
- POD_PINNER_STATUS_COMPATIBLE
- POD_PINNER_STATUS_MISSING
- POD_PINNER_STATUS_INCOMPATIBLE
- POD_PINNER_STATUS_INCOMPATIBLE_VERSION
type: string
description: Status provides indication whether the Pod Pinner policy will be synced with Pod Pinner helm chart - it will only be done if status is "Compatible"
format: enum
description: "PodPinner defines the CAST AI Pod Pinner component settings.\n All fields copied from V1 for compatibility."
NodeDownscalerPolicy:
type: object
properties:
emptyNodesEnabled:
type: boolean
default: false
description: Enable/disable the empty worker nodes policy.
emptyNodesDelay:
pattern: ^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$
type: string
default: 300s
description: "Period to wait before removing an empty node.\n Increasing the value makes the cluster more responsive to dynamic workloads at the expense of higher cost."
description: "NodeDownscalerPolicy defines policies for removing nodes based on the configured conditions.\n V2 Simplification:\n - Evictor removed (managed via standalone Evictor API)\n - Empty nodes settings are flattened (no nested message)\n - Policy is always present in responses (non-optional)"
ClusterLimitsCpu:
required:
- maxCores
type: object
properties:
minCores:
minimum: 1
type: integer
default: 1
description: "Defines the minimum allowed amount of CPUs in the whole cluster.\n Deprecated: Min CPU limit is no longer enforced."
format: int32
maxCores:
minimum: 2
type: integer
default: 20
description: Defines the maximum allowed amount of vCPUs in the whole cluster.
format: int32
description: ClusterLimitsCpu defines the minimum and maximum amount of vCPUs for cluster's worker nodes.
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/autoscalinghealthindicatorsapi_listhealthindicators.md
- https://docs.cast.ai/reference/autoscalingwatchdogapi_reportwatchdogevents.md
- https://docs.cast.ai/reference/clusteradvisorapi_cancelanalysis.md
- https://docs.cast.ai/reference/clusteradvisorapi_createanalysis.md
- https://docs.cast.ai/reference/clusteradvisorapi_getanalysis.md
- https://docs.cast.ai/reference/clusteradvisorapi_getanalysisvariant.md
- https://docs.cast.ai/reference/clusteradvisorapi_listanalyses.md
- https://docs.cast.ai/reference/clusteradvisorapi_listanalysisvariants.md
- https://docs.cast.ai/reference/hibernationjobsapi_createhibernationjob.md
- https://docs.cast.ai/reference/hibernationjobsapi_gethibernationjob.md
- https://docs.cast.ai/reference/hibernationjobsapi_pausecluster.md
- https://docs.cast.ai/reference/hibernationjobsapi_resumecluster.md
- https://docs.cast.ai/reference/hibernationschedulesapi_createhibernationschedule.md
- https://docs.cast.ai/reference/hibernationschedulesapi_deletehibernationschedule.md
- https://docs.cast.ai/reference/hibernationschedulesapi_gethibernationschedule.md
- https://docs.cast.ai/reference/hibernationschedulesapi_listhibernationschedules.md
- https://docs.cast.ai/reference/hibernationschedulesapi_updatehibernationschedule.md
- https://docs.cast.ai/reference/nodetemplatesapi_updatecapacityreservationconstraints.md
- https://docs.cast.ai/reference/policiesv2api_getclusterpolicies.md
- https://docs.cast.ai/reference/policiesv2api_updateclusterpolicies.md
- https://docs.cast.ai/reference/rebalancingconfigapi_searchrebalancingnodefilters.md
- https://docs.cast.ai/reference/rebalancingconfigapi_searchrebalancingnodefiltervalues.md
- https://docs.cast.ai/reference/rebalancingconfigapi_searchrebalancingnodes.md
- https://docs.cast.ai/reference/rebalancingconfigapi_searchrebalancingworkloads.md
merge:
pages: 24
deduped: 200
conflicts_kept_first: 0