Codefresh Clusters API

The Clusters API from Codefresh — 1 operation(s) for clusters.

Operations 19

GET /clusters List #
GET /clusters/byPermissions List #
POST /clusters/local/cluster Save local cluster #
POST /clusters/revoke/{provider} Revoke account access to cluster #
GET /clusters/tags Get all cluster tags #
GET /clusters/{clusterId}/tags List cluster tags #
PUT /clusters/{clusterId}/tags Put #
GET /clusters/{clusterId}/credentials Get #
GET /clusters/{clusterId}/helm-version Get #
DELETE /clusters/{provider}/cluster/{clusterId} Delete #
POST /clusters/{provider}/cluster Create #
POST /clusters/* Proxy post #
GET /clusters/* Proxy get #
PUT /clusters/* Proxy put #
PATCH /clusters/* Proxy patch #
DELETE /clusters/* Proxy delete #
HEAD /clusters/* Proxy head #
OPTIONS /clusters/* Proxy options #
PUT /kubernetes* Proxy put #

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/codefresh:codefresh-clusters-api"
All apis
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.

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

codefresh-clusters-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    name: Codefresh
    url: https://www.codefresh.io
  description: Codefresh API openAPI 3.0 specification
  termsOfService: https://codefresh.io/docs/docs/terms-and-privacy-policy/terms-of-service/
  title: Codefresh Clusters API
  version: 0.0.2
  x-logo:
    url: https://g.codefresh.io/modules/cf.resources/codefresh-api-docs-images/codefresh-logo-api.svg
    backgroundColor: '#FFFFFF'
    altText: Codefresh
servers:
- url: https://g.codefresh.io/api
security:
- API-key: []
tags:
- name: Clusters
  description: clusters
  x-id: clusters
paths:
  /clusters:
    get:
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: json
      tags:
      - Clusters
      operationId: clusters-list
      parameters: []
      summary: List
      x-sdk-interface: clusters.list
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          acl:
            resource: cluster
            abac: true
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.getClusters
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X GET \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters\""
      - lang: node.js
        source: sdk.clusters.list()
  /clusters/byPermissions:
    get:
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: json
      tags:
      - Clusters
      operationId: clusters-list-by-permissions
      parameters: []
      summary: List
      x-sdk-interface: clusters.list.by.permissions
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.getClustersByPermissions
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X GET \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters/byPermissions\""
      - lang: node.js
        source: sdk.clusters.list.by.permissions()
  /clusters/local/cluster:
    post:
      requestBody:
        content:
          application/json:
            schema:
              required:
              - type
              - selector
              - host
              - clientCa
              - serviceAccountToken
              properties:
                type:
                  type: string
                  enum:
                  - sat
                encoding:
                  type: string
                  enum:
                  - utf-8
                  - base64
                  default: utf-8
                provider:
                  type: string
                  enum:
                  - local
                  default: local
                providerAgent:
                  type: string
                  enum:
                  - azure
                  - aws
                  - custom
                  - stackpoint
                  - ibm
                  - eks
                  - digitalOcean
                  description: Use `custom` for local cluster
                selector:
                  type: string
                namespaces:
                  type: array
                  items:
                    type: string
                host:
                  type: string
                clientCa:
                  type: string
                serviceAccountToken:
                  type: string
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: json
      tags:
      - Clusters
      operationId: clusters-save-local-cluster
      parameters: []
      summary: Save local cluster
      x-sdk-interface: clusters.saveLocal
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          acl:
            resource: cluster
            abac: true
        preMiddleware:
        - clusters.testClusterCredentials
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.proxyPostLocalCluster
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X POST \\\n    -H \"Authorization: ${API_KEY}\" \\\n    -H 'Content-Type: application/json; charset=utf-8' \\\n    -d \"{\\\"type\\\":\\\"${TYPE_STR}\\\",\\\"encoding\\\":\\\"${ENCODING_STR}\\\",\\\"provider\\\":\\\"${PROVIDER_STR}\\\",\\\"providerAgent\\\":\\\"${PROVIDER_AGENT_STR}\\\",\\\"selector\\\":\\\"${SELECTOR_STR}\\\",\\\"namespaces\\\":[\\\"${NAMESPACES_ARR_STR}\\\"],\\\"host\\\":\\\"${HOST_STR}\\\",\\\"clientCa\\\":\\\"${CLIENT_CA_STR}\\\",\\\"serviceAccountToken\\\":\\\"${SERVICE_ACCOUNT_TOKEN_STR}\\\"}\" \\\n    \"https://g.codefresh.io/api/clusters/local/cluster\""
      - lang: node.js
        source: "sdk.clusters.saveLocal({\n    type: `${TYPE_STR}`,\n    encoding: `${ENCODING_STR}`,\n    provider: `${PROVIDER_STR}`,\n    providerAgent: `${PROVIDER_AGENT_STR}`,\n    selector: `${SELECTOR_STR}`,\n    namespaces: [\n        `${NAMESPACES_ARR_STR}`\n    ],\n    host: `${HOST_STR}`,\n    clientCa: `${CLIENT_CA_STR}`,\n    serviceAccountToken: `${SERVICE_ACCOUNT_TOKEN_STR}`\n})"
  /clusters/revoke/{provider}:
    post:
      responses:
        '200':
          description: ok
      tags:
      - Clusters
      operationId: clusters-revoke
      parameters:
      - description: id of provider
        in: path
        name: provider
        required: true
        schema:
          type: string
      summary: Revoke account access to cluster
      x-sdk-interface: clusters.revoke
      x-action: deleteCloudIntegration
      x-entityId: params.provider
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          - auth.isAccountAdminClusters
          acl:
            resource: cluster
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.revokeAccountAccess
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X POST \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters/revoke/${PROVIDER}\""
      - lang: node.js
        source: sdk.clusters.revoke({ provider })
  /clusters/tags:
    get:
      responses:
        '200':
          description: ok
      tags:
      - Clusters
      parameters: []
      summary: Get all cluster tags
      x-sdk-interface: clusters.tags.getAll
      operationId: clusters-tags-get-all
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          acl:
            resource: cluster
            abac: true
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.getAllTags
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X GET \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters/tags\""
      - lang: node.js
        source: sdk.clusters.tags.getAll()
  /clusters/{clusterId}/tags:
    get:
      responses:
        '200':
          description: ok
      tags:
      - Clusters
      parameters:
      - name: clusterId
        in: path
        schema:
          type: string
        required: true
        description: cluster id
      summary: List cluster tags
      x-sdk-interface: clusters.tags.list
      operationId: clusters-tags-list
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          acl:
            resource: cluster
            abac: true
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.getTags
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X GET \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters/${CLUSTER_ID}/tags\""
      - lang: node.js
        source: sdk.clusters.tags.list({ clusterId })
    put:
      x-action: updateTags
      x-entityId: params.clusterId
      responses:
        '200':
          description: ok
      tags:
      - Clusters
      parameters:
      - name: clusterId
        in: path
        schema:
          type: string
        required: true
        description: cluster id
      summary: Put
      x-sdk-interface: clusters.tags.update
      operationId: clusters-tags-update
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          acl:
            resource: cluster
            abac: true
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.setTags
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X PUT \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters/${CLUSTER_ID}/tags\""
      - lang: node.js
        source: sdk.clusters.tags.update({ clusterId })
  /clusters/{clusterId}/credentials:
    get:
      x-action: getCredentials
      x-entityId: params.clusterId
      responses:
        '200':
          description: ok
      tags:
      - Clusters
      parameters:
      - name: clusterId
        in: path
        schema:
          type: string
        required: true
        description: cluster id
      summary: Get
      x-sdk-interface: clusters.credentials.get
      operationId: clusters-credentials-get
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          acl:
            resource: cluster
            abac: true
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.getCredentials
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X GET \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters/${CLUSTER_ID}/credentials\""
      - lang: node.js
        source: sdk.clusters.credentials.get({ clusterId })
  /clusters/{clusterId}/helm-version:
    get:
      x-action: getHelmVersion
      x-entityId: params.clusterId
      responses:
        '200':
          description: ok
      tags:
      - Clusters
      parameters:
      - name: clusterId
        in: path
        schema:
          type: string
        required: true
        description: cluster id
      summary: Get
      x-sdk-interface: clusters.helmVersion.get
      operationId: clusters-helmVersion-get
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          acl:
            resource: cluster
            abac: true
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.getHelmVersion
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X GET \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters/${CLUSTER_ID}/helm-version\""
      - lang: node.js
        source: sdk.clusters.helmVersion.get({ clusterId })
  /clusters/{provider}/cluster/{clusterId}:
    delete:
      x-action: deleteCluster
      x-entityId:
        pathName: params.provider
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: json
      tags:
      - Clusters
      operationId: clusters-delete
      parameters:
      - name: provider
        in: path
        schema:
          type: string
        required: true
        description: Provider
      - name: clusterId
        in: path
        schema:
          type: string
        required: true
        description: Id
      summary: Delete
      x-sdk-interface: clusters.delete
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          acl:
            resource: cluster
            abac: true
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.deleteCluster
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X DELETE \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters/${PROVIDER}/cluster/${CLUSTER_ID}\""
      - lang: node.js
        source: sdk.clusters.delete({ provider, clusterId })
  /clusters/{provider}/cluster:
    post:
      x-action: createCluster
      x-entityId:
        pathName: params.provider
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: json
      tags:
      - Clusters
      operationId: clusters-create
      parameters:
      - name: provider
        in: path
        schema:
          type: string
        required: true
        description: Provider
      summary: Create
      x-sdk-interface: clusters.create
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          acl:
            resource: cluster
            abac: true
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.createCluster
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X POST \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters/${PROVIDER}/cluster\""
      - lang: node.js
        source: sdk.clusters.create({ provider })
  /clusters/*:
    post:
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: json
      tags:
      - Clusters
      operationId: clusters-proxy-post
      parameters: []
      summary: Proxy post
      x-sdk-interface: clusters.proxyPost
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          acl:
            resource: cluster
            abac: true
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.proxyToClusterProviders
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X POST \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters/*\""
      - lang: node.js
        source: sdk.clusters.proxyPost()
    get:
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: json
      tags:
      - Clusters
      operationId: clusters-proxy-get
      parameters: []
      summary: Proxy get
      x-sdk-interface: clusters.proxyGet
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          acl:
            resource: cluster
            abac: true
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.proxyToClusterProviders
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X GET \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters/*\""
      - lang: node.js
        source: sdk.clusters.proxyGet()
    put:
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: json
      tags:
      - Clusters
      operationId: clusters-proxy-put
      parameters: []
      summary: Proxy put
      x-sdk-interface: clusters.proxyPut
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          acl:
            resource: cluster
            abac: true
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.proxyToClusterProviders
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X PUT \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters/*\""
      - lang: node.js
        source: sdk.clusters.proxyPut()
    patch:
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: json
      tags:
      - Clusters
      operationId: clusters-proxy-patch
      parameters: []
      summary: Proxy patch
      x-sdk-interface: clusters.proxyPatch
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          acl:
            resource: cluster
            abac: true
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.proxyToClusterProviders
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X PATCH \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters/*\""
      - lang: node.js
        source: sdk.clusters.proxyPatch()
    delete:
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: json
      tags:
      - Clusters
      operationId: clusters-proxy-delete
      parameters: []
      summary: Proxy delete
      x-sdk-interface: clusters.proxyDelete
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          acl:
            resource: cluster
            abac: true
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.proxyToClusterProviders
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X DELETE \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters/*\""
      - lang: node.js
        source: sdk.clusters.proxyDelete()
    head:
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: json
      tags:
      - Clusters
      operationId: clusters-proxy-head
      parameters: []
      summary: Proxy head
      x-sdk-interface: clusters.proxyHead
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          acl:
            resource: cluster
            abac: true
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.proxyToClusterProviders
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X HEAD \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters/*\""
      - lang: node.js
        source: sdk.clusters.proxyHead()
    options:
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: json
      tags:
      - Clusters
      operationId: clusters-proxy-options
      parameters: []
      summary: Proxy options
      x-sdk-interface: clusters.proxyOptions
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          acl:
            resource: cluster
            abac: true
        postMiddleware:
        - global.iseMiddleware
        handler: clusters.proxyToClusterProviders
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X OPTIONS \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/clusters/*\""
      - lang: node.js
        source: sdk.clusters.proxyOptions()
  /kubernetes*:
    put:
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: json
      tags:
      - Clusters
      operationId: kubernetes-proxy-put
      parameters: []
      summary: Proxy put
      x-sdk-interface: kubernetes.proxyPut
      x-endpoint:
        isEndpoint: false
        auth:
          middleware:
          - auth.isAuthenticated
          - kubernetes.resolveClustersFromQuery
          acl:
            resource: cluster
            abac: true
            abacSource: kubernetes
        postMiddleware:
        - global.iseMiddleware
        handler: kubernetes.callService
      x-code-samples:
      - lang: curl
        source: "curl  \\\n    -X PUT \\\n    -H \"Authorization: ${API_KEY}\" \\\n    \"https://g.codefresh.io/api/kubernetes*\""
      - lang: node.js
        source: sdk.kubernetes.proxyPut()
components:
  securitySchemes:
    API-key:
      in: header
      name: Authorization
      description: 'An api key got from: User Settings -> API keys -> Generate'
      type: apiKey
x-service-name: api-public
x-base-path: /api
x-internal-services:
- pipeline-manager
- api
x-endpoint-conditions:
- weight: 0
  condition: global.has-general-service-role
  handlerRegex: (.*)
- weight: 1
  condition: global.has-kubernetes-endpoints-service-role
  handlerRegex: kubernetes\.\w+
- weight: 2
  condition: global.has-auth-service-role
  handlerRegex: api-key\.\w+
x-tagGroups:
- name: Pipelines / Builds
  tags:
  - Annotations
  - Builds
  - Execution Contexts
  - Images
  - Pipelines
  - Progress
  - Projects
  - Step-types
  - Triggers
  - Triggers Events
  - Triggers Types
- name: Kubernetes / Helm
  tags:
  - Environments V2
  - Helm Boards
  - Helm Charts
  - Helm Releases
  - Helm Sections
  - Kubernetes
- name: Swarm
  tags:
  - Compositions
  - Environments
- name: Integrations / Contexts
  tags:
  - Clusters
  - Contexts
  - Helm Cluster Configs
  - Helm Repos
  - Registries
  - Repos
- name: Account Management
  tags:
  - Abac
  - Accounts
  - Agents
  - Audit
  - Runtime Environments
  - Teams
  - Tokens
  - Views
- name: User Properties
  tags:
  - favorites
- name: On-Premise
  tags:
  - Features
  - Runtime Environments (Account)
  - Runtime Environments (Plan)
  - Runtime Environments (System)
  - Runtime Environments.
- name: Platform Analytics
  tags:


# --- truncated at 32 KB (146 KB total) ---
# Full source: https://artifacts.apis.io/codefresh/openapi/codefresh-clusters-api-openapi.yml