Cast AI Edges V2Beta API

Provides an API to manage provisioning of Omni edges.

Operations 8

POST /omni-provisioner/v2beta/organizations/{organizationId}/clusters/{clusterId}/edge-locations/{edgeLocationId}/edges Creates an edge #
DELETE /omni-provisioner/v2beta/organizations/{organizationId}/clusters/{clusterId}/edge-locations/{edgeLocationId}/edges/{id} Deletes an edge #
GET /omni-provisioner/v2beta/organizations/{organizationId}/clusters/{clusterId}/edge-locations/{edgeLocationId}/edges/{id} Gets an edge #
PATCH /omni-provisioner/v2beta/organizations/{organizationId}/clusters/{clusterId}/edge-locations/{edgeLocationId}/edges/{id} Updates an edge #
GET /omni-provisioner/v2beta/organizations/{organizationId}/clusters/{clusterId}/edges List edges in omni provider #
GET /omni-provisioner/v2beta/organizations/{organizationId}/clusters/{clusterId}/edges/{id}:getCloudInitScript Get edge init script #
POST /omni-provisioner/v2beta/organizations/{organizationId}/clusters/{clusterId}/edges/{id}:setJoinToken Sets edge join token #
POST /omni-provisioner/v2beta/organizations/{organizationId}/clusters/{clusterId}/edges/{id}:setPeeringInfo Sets peering info for an edge #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/kimchi:kimchi-edgesv2betaapi-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API 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 Specification

kimchi-edgesv2betaapi-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Omni provisioner Edges V2Beta API
  version: 0.0.1
  description: Provides an API to manage provisioning of Omni edges.
servers:
- url: https://api.cast.ai/
  description: US endpoint
- url: https://api.eu.cast.ai/
  description: EU endpoint
security:
- BearerAuth: []
- ApiKeyAuth: []
tags:
- name: EdgesV2BetaAPI
  description: Provides an API to manage provisioning of Omni edges.
paths:
  /omni-provisioner/v2beta/organizations/{organizationId}/clusters/{clusterId}/edge-locations/{edgeLocationId}/edges:
    post:
      tags:
      - EdgesV2BetaAPI
      summary: Creates an edge
      description: Method to create an edge.
      operationId: EdgesV2BetaAPI_CreateEdge
      parameters:
      - name: organizationId
        in: path
        description: The ID of the Organization.
        required: true
        schema:
          type: string
      - name: clusterId
        in: path
        description: The cluster ID.
        required: true
        schema:
          type: string
      - name: edgeLocationId
        in: path
        description: The edge location ID.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Edge'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateEdgeResponse'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
  /omni-provisioner/v2beta/organizations/{organizationId}/clusters/{clusterId}/edge-locations/{edgeLocationId}/edges/{id}:
    delete:
      tags:
      - EdgesV2BetaAPI
      summary: Deletes an edge
      description: Method to delete an edge.
      operationId: EdgesV2BetaAPI_DeleteEdge
      parameters:
      - name: organizationId
        in: path
        description: The ID of the Organization.
        required: true
        schema:
          type: string
      - name: clusterId
        in: path
        description: The cluster ID.
        required: true
        schema:
          type: string
      - name: edgeLocationId
        in: path
        description: The edge location ID.
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The ID of the edge to be deleted.
        required: true
        schema:
          type: string
      - name: force
        in: query
        description: "Force deletion without waiting for cluster to be in a stable state.\n This might leave hanging resources in the cluster. Use with caution."
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LongRunningOperation'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
    get:
      tags:
      - EdgesV2BetaAPI
      summary: Gets an edge
      description: Method to get an edge.
      operationId: EdgesV2BetaAPI_GetEdge
      parameters:
      - name: organizationId
        in: path
        description: The ID of the Organization.
        required: true
        schema:
          type: string
      - name: clusterId
        in: path
        description: The cluster ID.
        required: true
        schema:
          type: string
      - name: edgeLocationId
        in: path
        description: The edge location ID.
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The ID of the edge to be retrieved.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Edge'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
    patch:
      tags:
      - EdgesV2BetaAPI
      summary: Updates an edge
      description: Method to update an edge.
      operationId: EdgesV2BetaAPI_UpdateEdge
      parameters:
      - name: organizationId
        in: path
        description: The ID of the Organization.
        required: true
        schema:
          type: string
      - name: clusterId
        in: path
        description: The cluster ID.
        required: true
        schema:
          type: string
      - name: edgeLocationId
        in: path
        description: The edge location ID.
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The ID of the edge to be updated.
        required: true
        schema:
          type: string
      - name: updateMask
        in: query
        description: Field mask specifying which fields to update.
        schema:
          type: string
          format: field-mask
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EdgeUpdate'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Edge'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
  /omni-provisioner/v2beta/organizations/{organizationId}/clusters/{clusterId}/edges:
    get:
      tags:
      - EdgesV2BetaAPI
      summary: List edges in omni provider
      description: Method to list edges in a clusterwith various filters.
      operationId: EdgesV2BetaAPI_ListEdges
      parameters:
      - name: organizationId
        in: path
        description: The ID of the Organization.
        required: true
        schema:
          type: string
      - name: clusterId
        in: path
        description: The cluster ID.
        required: true
        schema:
          type: string
      - name: edgeLocationId
        in: query
        description: Filter by edge location ID.
        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: clientRequestId
        in: query
        description: Filter by client_request_id.
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListEdgesResponse'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
  /omni-provisioner/v2beta/organizations/{organizationId}/clusters/{clusterId}/edges/{id}:getCloudInitScript:
    get:
      tags:
      - EdgesV2BetaAPI
      summary: Get edge init script
      description: Method to generate the cloud init script for an edge.
      operationId: EdgesV2BetaAPI_GetCloudInitScript
      parameters:
      - name: organizationId
        in: path
        description: The ID of the Organization.
        required: true
        schema:
          type: string
      - name: clusterId
        in: path
        description: The ID of the cluster.
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The ID of the edge.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*': {}
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
  /omni-provisioner/v2beta/organizations/{organizationId}/clusters/{clusterId}/edges/{id}:setJoinToken:
    post:
      tags:
      - EdgesV2BetaAPI
      summary: Sets edge join token
      description: Sets edge join token.
      operationId: EdgesV2BetaAPI_SetJoinToken
      parameters:
      - name: organizationId
        in: path
        description: The ID of the Organization.
        required: true
        schema:
          type: string
      - name: clusterId
        in: path
        description: The ID of the cluster.
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The ID of the edge.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetJoinTokenRequest_JoinToken'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetJoinTokenResponse'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
  /omni-provisioner/v2beta/organizations/{organizationId}/clusters/{clusterId}/edges/{id}:setPeeringInfo:
    post:
      tags:
      - EdgesV2BetaAPI
      summary: Sets peering info for an edge
      description: Sets peering info of a given edge.
      operationId: EdgesV2BetaAPI_SetPeeringInfo
      parameters:
      - name: organizationId
        in: path
        description: The ID of the Organization.
        required: true
        schema:
          type: string
      - name: clusterId
        in: path
        description: The ID of the cluster to be onboarded.
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: The ID of the edge.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetPeeringInfoRequest_PeeringInfo'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetPeeringInfoResponse'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
components:
  schemas:
    SetPeeringInfoResponse:
      type: object
      properties: {}
      description: SetPeeringInfoResponse message.
    Zone:
      type: object
      properties:
        id:
          type: string
          description: The ID of the zone.
        name:
          type: string
          description: The name of the zone.
      description: Zone represents the zone of the edge location.
    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.
    SetJoinTokenRequest_JoinToken:
      required:
      - tokenBase64
      type: object
      properties:
        tokenBase64:
          type: string
          description: Join token.
      description: Join token message.
    LongRunningOperation:
      type: object
      properties:
        id:
          type: string
          description: ID of the operation.
        done:
          type: boolean
          description: Whether the operation is completed.
        error:
          allOf:
          - $ref: '#/components/schemas/ErrorResponse'
          description: Error returned of the operation.
        resourceId:
          type: string
          description: Resource ID returned of the operation.
      description: Operation represents the result of an asynchronous operation.
    ListEdgesResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Edge'
          description: The list of edges.
        nextPageCursor:
          type: string
          description: The pagination cursor to retrieve the next page of edges.
        totalCount:
          type: integer
          description: The total number of items.
          format: int32
      description: Message of the response to list edges by edge location.
    KubernetesTaint:
      required:
      - key
      - effect
      type: object
      properties:
        key:
          type: string
          description: The taint key.
        value:
          type: string
          description: The taint value.
        effect:
          enum:
          - TAINT_EFFECT_UNSPECIFIED
          - NO_SCHEDULE
          - PREFER_NO_SCHEDULE
          - NO_EXECUTE
          type: string
          description: The taint effect.
          format: enum
        addTime:
          type: string
          description: The time at which the taint was added.
          format: date-time
      description: Represents a Kubernetes taint to be applied to a node.
    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).'
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
          description: Error message.
        fieldViolations:
          type: array
          items:
            $ref: '#/components/schemas/FieldViolation'
          description: Field violations.
        reason:
          type: string
          description: Reason that categorizes an error.
        retryable:
          type: boolean
          description: Whether error is retryable.
        origin:
          allOf:
          - $ref: '#/components/schemas/CloudMetadata'
          description: Origin contains details about error where it came from (like Cloud provider, region, etc.).
      description: ErrorResponse is intended to be returned to external caller (e.g. REST).
    SetJoinTokenResponse:
      type: object
      properties: {}
      description: SetJoinTokenResponse message.
    FieldViolation:
      type: object
      properties:
        field:
          type: string
          description: Field name.
        description:
          type: string
          description: Description of the violation.
      description: FieldViolation contains validation result for single field.
    Edge:
      required:
      - name
      - instanceType
      - schedulingType
      - zone
      - nodeArchitecture
      type: object
      properties:
        name:
          type: string
          description: Name of the edge node.
        clientRequestId:
          type: string
          description: Client request ID is an identifier you provide to ensure the idempotency of the request.
        instanceType:
          type: string
          description: Instance type of the edge node.
        schedulingType:
          enum:
          - SCHEDULING_TYPE_UNSPECIFIED
          - ON_DEMAND
          - SPOT
          type: string
          description: Scheduling type of edge node. Defaults to on-demand.
          format: enum
        zone:
          type: string
          description: The zone for edge node. Zone must be part of edge location.
        gpuConfig:
          allOf:
          - $ref: '#/components/schemas/GPUConfig'
          description: "GPU configuration that will be attached to edge node.\n Note, only certain providers/instance types support attaching GPU's to instance."
        kubernetesLabels:
          type: object
          additionalProperties:
            type: string
          description: "Kubernetes labels to be added to the node.\n It overrides the labels from the edge configuration in case of a duplicate key."
        kubernetesTaints:
          type: array
          items:
            $ref: '#/components/schemas/KubernetesTaint'
          description: "Kubernetes taints to be added to the node.\n It overrides the taints from the edge configuration in case of a duplicate key."
        nodeArchitecture:
          enum:
          - ARCHITECTURE_UNSPECIFIED
          - X86_64
          - ARM64
          type: string
          description: Node architecture (e.g., "X86_64, ARM64").
          format: enum
        configurationId:
          type: string
          description: A reference to an edge configuration to be used for creating an edge; if not provided then a default one will be used.
        version:
          readOnly: true
          type: integer
          description: The version of the edge configuration used for creating an edge.
          format: int32
        id:
          readOnly: true
          type: string
          description: The ID of the edge.
        createTime:
          readOnly: true
          type: string
          description: The creation timestamp.
          format: date-time
        updateTime:
          readOnly: true
          type: string
          description: The last update timestamp.
          format: date-time
        deleteTime:
          readOnly: true
          type: string
          description: The delete timestamp.
          format: date-time
        phase:
          readOnly: true
          enum:
          - PHASE_UNSPECIFIED
          - CREATING
          - READY
          - FAILED
          - UNKNOWN
          - DELETING
          - DELETED
          type: string
          description: Status of the edge with details from agent/client side.
          format: enum
        bootDiskGib:
          type: integer
          description: Boot disk size in GiB.
          format: uint32
        imageId:
          type: string
          description: ImageID for edge node.
        providerId:
          readOnly: true
          type: string
          description: ProviderID for edge node. This will reflect providerID field in Kubernetes node spec.
        kubernetesName:
          readOnly: true
          type: string
          description: Kubernetes node name.
        cloud:
          readOnly: true
          type: string
          description: Cloud provider for edge node.
        instanceLabels:
          type: object
          additionalProperties:
            type: string
          description: Instance labels that are added to the edge node. These are called tags on AWS, labels on GCP.
        edgeLocationId:
          readOnly: true
          type: string
          description: EdgeLocationID for edge node.
        region:
          readOnly: true
          type: string
          description: Region specific for a created edge.
        zoneId:
          readOnly: true
          type: string
          description: ZoneID specific for a created edge.
        deleteProtection:
          type: boolean
          description: Delete protection prevents the edge from being deleted when enabled.
      description: Message to describe edge provisioning details.
    CloudMetadata:
      type: object
      properties:
        provider:
          type: string
          description: Cloud provider that returned an error.
        region:
          type: string
          description: Region related to an error.
        zone:
          allOf:
          - $ref: '#/components/schemas/Zone'
          description: Zone details related to an error.
        instanceType:
          type: string
          description: Instance type (optional) that caused an error.
      description: CloudMetadata contains details about where an error came from.
    GPUConfig_TimeSharing:
      type: object
      properties:
        replicas:
          type: integer
          description: "Replicas specifies the number of time-sliced GPU replicas to make available for\n shared access to GPUs of the specified resource type."
          format: int32
      description: Message to describe time sharing configuration for the GPU.
    GPUConfig_MigConfig:
      type: object
      properties:
        partitionSizes:
          type: array
          items:
            type: string
          description: PartitionSizes is the sizes of the MIG partitions.
        memoryGb:
          type: integer
          description: MemoryGB is the amount of GPU memory in GB.
          format: uint32
      description: Message to describe MIG configuration for the GPU.
    GPUConfig:
      type: object
      properties:
        type:
          type: string
          description: Accelerator type, eg nvidia-tesla-t4.
        count:
          type: integer
          description: Number of GPUs.
          format: uint32
        timeSharing:
          allOf:
          - $ref: '#/components/schemas/GPUConfig_TimeSharing'
          description: TimeSharing configuration for the GPU.
        mig:
          allOf:
          - $ref: '#/components/schemas/GPUConfig_MigConfig'
          description: MIG configuration for the GPU.
        draEnabled:
          type: boolean
          description: "DraEnabled enables Dynamic Resource Allocation (DRA).\n When enabled, the device plugin is disabled and GPU resources\n are advertised via K8s ResourceSlices for allocation through K8s ResourceClaims."
      description: "GPUConfig describes instance GPU configuration.\n\n Use for:\n * Creating GCP N1 with customer quantity and type of GPUs attached.\n Eg.: n1-standard-2 with 8 x NVIDIA Tesla K80"
    CreateEdgeResponse:
      type: object
      properties:
        providerId:
          readOnly: true
          type: string
          description: ProviderID for edge node. This will reflect providerID field in Kubernetes node spec.
        id:
          readOnly: true
          type: string
          description: The ID of the edge.
        operation:
          readOnly: true
          allOf:
          - $ref: '#/components/schemas/LongRunningOperation'
          description: Long running operation to track the edge creation.
      description: Message of the response to create an edge.
    EdgeUpdate:
      type: object
      properties:
        deleteProtection:
          type: boolean
          description: Enable or disable delete protection for the edge.
      description: Subset of Edge fields allowed for updates.
    SetPeeringInfoRequest_PeeringInfo:
      required:
      - edgeKubeconfigJsonBase64
      - externalIp
      type: object
      properties:
        edgeKubeconfigJsonBase64:
          type: string
          description: Edge kubeconfig in base64 so management cluster can establish peering.
          format: bytes
        externalIp:
          type: string
          description: External IP address of the edge.
      description: Message to describe the info required to establish peering.
  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/addonsapi_listaddons.md
  - https://docs.cast.ai/reference/clustersapi_deletecluster.md
  - https://docs.cast.ai/reference/clustersapi_getcluster.md
  - https://docs.cast.ai/reference/clustersapi_listclusters.md
  - https://docs.cast.ai/reference/clustersapi_onboardcluster.md
  - https://docs.cast.ai/reference/clustersapi_onboardclusterscript.md
  - https://docs.cast.ai/reference/clustersapi_registercluster.md
  - https://docs.cast.ai/reference/clustersapi_renderomniagentcomponent.md
  - https://docs.cast.ai/reference/clustersapi_reportstatus.md
  - https://docs.cast.ai/reference/edgeconfigurationsapi_createedgeconfiguration.md
  - https://docs.cast.ai/reference/edgeconfigurationsapi_deleteedgeconfiguration.md
  - https://docs.cast.ai/reference/edgeconfigurationsapi_getedgeconfiguration.md
  - https://docs.cast.ai/reference/edgeconfigurationsapi_listedgeconfigurations.md
  - https://docs.cast.ai/reference/edgeconfigurationsapi_updateedgeconfiguration.md
  - https://docs.cast.ai/reference/edgelocationsapi_createedgelocation.md
  - https://docs.cast.ai/reference/edgelocationsapi_deleteedgelocation.md
  - https://docs.cast.ai/reference/edgelocationsapi_getedgeinitdscript.md
  - https://docs.cast.ai/reference/edgelocationsapi_getedgelocation.md
  - https://docs.cast.ai/reference/edgelocationsapi_listedgelocations.md
  - https://docs.cast.ai/reference/edgelocationsapi_offboardedgelocation.md
  - https://docs.cast.ai/reference/edgelocationsapi_offboardedgelocationscript.md
  - https://docs.cast.ai/reference/edgelocationsapi_onboardedgeinitd.md
  - https://docs.cast.ai/reference/edgelocationsapi_onboardedgelocation.md
  - https://docs.cast.ai/reference/edgelocationsapi_onboardedgelocationscript.md
  - https://docs.cast.ai/reference/edgelocationsapi_updateedgelocation.md
  - https://docs.cast.ai/reference/edgesv2betaapi_createedge.md
  - https://docs.cast.ai/reference/edgesv2betaapi_deleteedge.md
  - https://docs.cast.ai/reference/edgesv2betaapi_getcloudinitscript.md
  - https://docs.cast.ai/reference/edgesv2betaapi_getedge.md
  - https://docs.cast.ai/reference/edgesv2betaapi_listedges.md
  - https://docs.cast.ai/reference/edgesv2betaapi_setjointoken.md
  - https://docs.cast.ai/reference/edgesv2betaapi_setpeeringinfo.md
  - https://docs.cast.ai/reference/edgesv2betaapi_updateedge.md
  - https://docs.cast.ai/reference/operationsapi_getoperation-1.md
  merge:
    pages: 34
    deduped: 297
    conflicts_kept_first: 0