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/controlplane:controlplane-org-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: 3.2.0
info:
title: ControlPlane Org API
version: '2026-10-10'
description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-10: 28 operation(s) read from 29 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; ControlPlane has published no machine-readable contract that the pipeline could find. Engine: local.'
x-evidence-tiers:
code-example: 27
documentation: 1
pages-with-code: 23
pages-read: 29
x-generated-from: documentation
x-provenance: generated
x-authored-by: API Evangelist
x-generated: '2026-10-10'
x-generator: generate-contract-from-docs.py
x-engine: local
x-sources:
- https://docs.controlplane.com/reference/agent
- https://docs.controlplane.com/reference/domain
- https://docs.controlplane.com/api-reference/api
- https://docs.controlplane.com/reference/auditctx
- https://docs.controlplane.com/reference/workload
- https://docs.controlplane.com/reference/volumeset
- https://docs.controlplane.com/reference/deployment
- https://docs.controlplane.com/reference/workload/types
- https://docs.controlplane.com/reference/workload/general
- https://docs.controlplane.com/cli-reference/installation
- https://docs.controlplane.com/cli-reference/get-started/images
- https://docs.controlplane.com/api-reference/agent/get-all-agents
- https://docs.controlplane.com/api-reference/agent/create-an-agent
- https://docs.controlplane.com/api-reference/agent/query-agent-health
- https://docs.controlplane.com/cli-reference/using-cli/troubleshooting
- https://docs.controlplane.com/api-reference/agent/get-an-agent-by-name
- https://docs.controlplane.com/api-reference/agent/delete-an-agent-by-name
- https://docs.controlplane.com/api-reference/agent/get-all-agents-based-on-a-query
- https://docs.controlplane.com/api-reference/agent/perform-a-patch-on-an-agent-by-name
- https://docs.controlplane.com/api-reference/agent/get-available-permissions-for-an-agent
- https://docs.controlplane.com/api-reference/agent/get-the-access-report-for-an-agent-by-name
- https://docs.controlplane.com/guides/cpln-delete
- https://docs.controlplane.com/template-catalog/templates/clickhouse
- https://docs.controlplane.com/quickstart/observe-workload
- https://docs.controlplane.com/quickstart/connect-workloads
- https://docs.controlplane.com/guides/cli/workload/run
- https://docs.controlplane.com/guides/cli/cpln-operator
- https://docs.controlplane.com/guides/manage-quotas
- https://docs.controlplane.com/guides/compose-deploy
servers:
- url: https://api.cpln.io
security:
- apiKey: []
tags:
- name: Org
paths:
/org/my-org/gvc/my-gvc/volumeset/my-volume-set/-command:
post:
operationId: post_org_my_org_gvc_my_gvc_volumeset_my_volume_set_command
tags:
- Org
summary: To issue a command, send a POST to the volume set’s -command endpoint
description: Issues an imperative command on a volume set (e.g., expandVolume, shrinkVolume, deleteVolume, createVolumeSnapshot, deleteVolumeSnapshot, restoreVolume).
x-source: https://docs.controlplane.com/reference/volumeset
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostOrgMyOrgGvcMyGvcVolumesetMyVolumeSetCommandRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: documentation
/org/my-org/gvc/my-gvc/workload/-deployment:
get:
operationId: get_org_my_org_gvc_my_gvc_workload_deployment
tags:
- Org
summary: Deployment - Control Plane Documentation
x-source: https://docs.controlplane.com/reference/deployment
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
/org/my-org/gvc/my-gvc/workload/my-app/deployment:
get:
operationId: get_org_my_org_gvc_my_gvc_workload_my_app_deployment
tags:
- Org
summary: Deployment - Control Plane Documentation
x-source: https://docs.controlplane.com/reference/deployment
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
/org/my-org/gvc/my-gvc/workload/my-app/deployment/aws-eu-central-1:
get:
operationId: get_org_my_org_gvc_my_gvc_workload_my_app_deployment_aws_eu_central_1
tags:
- Org
summary: Deployment - Control Plane Documentation
x-source: https://docs.controlplane.com/reference/deployment
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
/org/my-org/gvc/my-gvc/workload/{workloadid}/-command:
post:
operationId: post_org_my_org_gvc_my_gvc_workload_workloadid_command
tags:
- Org
summary: Cron workloads can be run on-demand even when they are suspended
x-source: https://docs.controlplane.com/reference/workload/types
parameters:
- name: workloadid
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostOrgMyOrgGvcMyGvcWorkloadWorkloadidCommandRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: documentation
collapsed_from: 2 example path(s) differing only at workloadId
/org/my-org/quota-increase-requests:
post:
operationId: post_org_my_org_quota_increase_requests
tags:
- Org
summary: POST /org/my-org/quota-increase-requests
x-source: https://docs.controlplane.com/guides/manage-quotas
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostOrgMyOrgQuotaIncreaseRequestsRequest'
responses:
'201':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PostOrgMyOrgQuotaIncreaseRequestsResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl --request POST --url https://billing-ng.cpln.io/org/my-org/quota-increase-requests --header 'Authorization: Bearer YOUR_TOKEN_HERE' --header 'Content-Type: application/json' --data '{ \n \"quotaName\": \"workloads-per-gvc\", \n \"requestedMax\": 100 \n }' \n The response is the created request, including its id and status : \n { \n \"id\" : \"a1b2c3d4-e5f6-47a8-9b0c-1d2e3f4a5b6c\" , \n \"org\" : \"my-org\" , "
/org/my-org/quotas:
get:
operationId: get_org_my_org_quotas
tags:
- Org
summary: GET /org/my-org/quotas
x-source: https://docs.controlplane.com/guides/manage-quotas
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetOrgMyOrgQuotasResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl --request GET --url https://billing-ng.cpln.io/org/my-org/quotas --header 'Authorization: Bearer YOUR_TOKEN_HERE' \n The response is an array of quotas: \n [ \n { \n \"id\" : \"5d2c0a1e-7b3f-4d8a-9c11-2f6e8b4a1c90\" , \n \"name\" : \"workloads-per-gvc\" , \n \"description\" : \"Max number of workloads in a gvc\" , \n \"unit\" : \"count\" , \n \"max\" : 50 , \n \"current\" : 32 , \n \"origin\" : \"default\" \n } \n ] \n Field D"
/org/{org}/agent:
get:
operationId: get_org_org_agent
tags:
- Org
summary: GET /org/{org}/agent
x-source: https://docs.controlplane.com/api-reference/agent/get-all-agents
parameters:
- name: org
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetOrgOrgAgentResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl curl --request GET --url https://api.cpln.io/org/{org}/agent --header 'Authorization: <api-key>' import requests\nurl = \"https://api.cpln.io/org/{org}/agent\"\nheaders = {\"Authorization\": \"<api-key>\"}\nresponse = requests.get(url, headers=headers)\nprint(response.text) const options = {method: 'GET', headers: {Authorization: '<api-key>'}};\nfetch('https://api.cpln.io/org/{org}/agent', options)\n ."
post:
operationId: post_org_org_agent
tags:
- Org
summary: POST /org/{org}/agent
x-source: https://docs.controlplane.com/api-reference/agent/create-an-agent
parameters:
- name: org
in: path
required: true
schema:
type: string
responses:
'201':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PostOrgOrgAgentResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl curl --request POST --url https://api.cpln.io/org/{org}/agent --header 'Authorization: <api-key>' --header 'Content-Type: application/json' --data ' \n { \n \"name\": \"<string>\", \n \"description\": \"<string>\", \n \"tags\": {} \n } \n ' import requests\nurl = \"https://api.cpln.io/org/{org}/agent\"\npayload = {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": {}\n}\nheaders = {\n \"Authorization\": \""
/org/{org}/agent/-query:
post:
operationId: post_org_org_agent_query
tags:
- Org
summary: POST /org/{org}/agent/-query
x-source: https://docs.controlplane.com/api-reference/agent/get-all-agents-based-on-a-query
parameters:
- name: org
in: path
required: true
schema:
type: string
responses:
'201':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PostOrgOrgAgentQueryResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl curl --request POST --url https://api.cpln.io/org/{org}/agent/-query --header 'Authorization: <api-key>' --header 'Content-Type: application/json' --data '\n{\n \"kind\": \"<string>\",\n \"spec\": {\n \"match\": \"all\",\n \"terms\": [\n {\n \"op\": \"=\",\n \"property\": \"<string>\",\n \"rel\": \"<string>\",\n \"tag\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"sort\": {\n \"by\": \"<string>\",\n \"order\": \"asc\"\n }\n }\n}\n' import r"
/org/{org}/agent/-schema/permissions:
get:
operationId: get_org_org_agent_schema_permissions
tags:
- Org
summary: GET /org/{org}/agent/-schema/permissions
x-source: https://docs.controlplane.com/api-reference/agent/get-available-permissions-for-an-agent
parameters:
- name: org
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetOrgOrgAgentSchemaPermissionsResponse'
x-evidence:
kind: code-example
language: curl
snippet: 'curl curl --request GET --url https://api.cpln.io/org/{org}/agent/-schema/permissions --header ''Authorization: <api-key>'' import requests
url = "https://api.cpln.io/org/{org}/agent/-schema/permissions"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text) const options = {method: ''GET'', headers: {Authorization: ''<api-key>''}};
fetch(''https://a'
/org/{org}/agent/{name}:
delete:
operationId: delete_org_org_agent_name
tags:
- Org
summary: DELETE /org/{org}/agent/{name}
x-source: https://docs.controlplane.com/api-reference/agent/delete-an-agent-by-name
parameters:
- name: org
in: path
required: true
schema:
type: string
- name: name
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteOrgOrgAgentNameResponse'
x-evidence:
kind: code-example
language: curl
snippet: 'curl curl --request DELETE --url https://api.cpln.io/org/{org}/agent/{name} --header ''Authorization: <api-key>'' import requests
url = "https://api.cpln.io/org/{org}/agent/{name}"
headers = {"Authorization": "<api-key>"}
response = requests.delete(url, headers=headers)
print(response.text) const options = {method: ''DELETE'', headers: {Authorization: ''<api-key>''}};
fetch(''https://api.cpln.io/org/{o'
patch:
operationId: patch_org_org_agent_name
tags:
- Org
summary: PATCH /org/{org}/agent/{name}
x-source: https://docs.controlplane.com/api-reference/agent/perform-a-patch-on-an-agent-by-name
parameters:
- name: org
in: path
required: true
schema:
type: string
- name: name
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PatchOrgOrgAgentNameResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl curl --request PATCH --url https://api.cpln.io/org/{org}/agent/{name} --header 'Authorization: <api-key>' --header 'Content-Type: application/json' --data ' \n { \n \"$drop\": [], \n \"name\": \"<string>\", \n \"description\": \"<string>\", \n \"tags\": {}, \n \"$replace/tags\": {} \n } \n ' import requests\nurl = \"https://api.cpln.io/org/{org}/agent/{name}\"\npayload = {\n \"$drop\": [],\n \"name\": \"<string>\",\n \"desc"
/org/{org}/agent/{name}/{id}:
get:
operationId: get_org_org_agent_name_id
tags:
- Org
summary: GET /org/{org}/agent/{name}/-accessreport
x-source: https://docs.controlplane.com/api-reference/agent/get-the-access-report-for-an-agent-by-name
parameters:
- name: org
in: path
required: true
schema:
type: string
- name: name
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetOrgOrgAgentNameIdResponse'
x-evidence:
kind: code-example
language: curl
snippet: 'curl curl --request GET --url https://api.cpln.io/org/{org}/agent/{name}/-accessreport --header ''Authorization: <api-key>'' import requests
url = "https://api.cpln.io/org/{org}/agent/{name}/-accessreport"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text) const options = {method: ''GET'', headers: {Authorization: ''<api-key>''}};
fetch(''https:/'
collapsed_from: 2 example path(s) differing only at id
/org/{org}/{id}/{name}:
get:
operationId: get_org_org_id_name
tags:
- Org
summary: GET /org/{org}/agent/{name}
x-source: https://docs.controlplane.com/api-reference/agent/get-an-agent-by-name
parameters:
- name: org
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
- name: name
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetOrgOrgIdNameResponse'
x-evidence:
kind: code-example
language: curl
snippet: 'curl curl --request GET --url https://api.cpln.io/org/{org}/agent/{name} --header ''Authorization: <api-key>'' import requests
url = "https://api.cpln.io/org/{org}/agent/{name}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text) const options = {method: ''GET'', headers: {Authorization: ''<api-key>''}};
fetch(''https://api.cpln.io/org/{org}/agent'
collapsed_from: 2 example path(s) differing only at id
components:
schemas:
GetOrgOrgIdNameResponse:
type: object
properties:
method:
type: string
headers:
type: object
properties:
Authorization:
type: string
PatchOrgOrgAgentNameResponse:
type: object
properties:
id:
type: string
name:
type: string
kind:
type: string
version:
type: integer
description:
type: string
tags:
type: object
created:
type: string
format: date-time
lastModified:
type: string
format: date-time
links:
type: array
items:
type: object
properties:
rel:
type: string
href:
type: string
status:
type: object
properties:
bootstrapConfig:
type: object
properties:
registrationToken:
type: string
agentId:
type: string
agentLink:
type: string
hubEndpoint:
type: string
protocolVersion:
type: string
protocolVersion:
type: string
PostOrgOrgAgentQueryResponse:
type: object
properties:
Authorization:
type: string
Content-Type:
type: string
PostOrgMyOrgGvcMyGvcWorkloadWorkloadidCommandRequest:
type: object
properties:
type:
type: string
description: Command type, must be "runCronWorkload".
spec:
type: object
description: Specification for the on‑demand execution.
spec.location:
type: string
description: The name of the location as specified in your GVC configuration.
spec.activeDeadlineSeconds:
type: integer
description: Maximum number of seconds this on‑demand execution may run before Control Plane stops it.
spec.containerOverrides:
type: array
description: List of objects that override specific parts of a container’s configuration.
spec.containerOverrides[].name:
type: string
description: Name of the container to override in the workload specification.
spec.containerOverrides[].command:
type: string
description: A new command for the container during this execution only.
spec.containerOverrides[].cpu:
type: string
description: A new CPU configuration for the container during this execution.
spec.containerOverrides[].memory:
type: string
description: A new memory allocation for the container during this execution.
spec.containerOverrides[].image:
type: string
description: A new image for the container during this execution.
spec.containerOverrides[].args:
type: array
description: A new list of arguments for the container during this execution only.
spec.containerOverrides[].env:
type: array
description: A new list of environment variables for the container during this execution only.
spec.containerOverrides[].env[].name:
type: string
description: Environment variable name.
spec.containerOverrides[].env[].value:
type: string
description: Environment variable value.
required:
- type
- spec
- spec.location
- spec.containerOverrides[].name
- spec.containerOverrides[].env[].name
- spec.containerOverrides[].env[].value
DeleteOrgOrgAgentNameResponse:
type: object
properties:
method:
type: string
headers:
type: object
properties:
Authorization:
type: string
PostOrgMyOrgQuotaIncreaseRequestsRequest:
type: object
properties:
quotaName:
type: string
requestedMax:
type: integer
GetOrgOrgAgentSchemaPermissionsResponse:
type: object
properties:
method:
type: string
headers:
type: object
properties:
Authorization:
type: string
PostOrgMyOrgQuotaIncreaseRequestsResponse:
type: object
properties:
id:
type: string
org:
type: string
quotaName:
type: string
requestedMax:
type: integer
status:
type: string
autoApproved:
type: boolean
createdBy:
type: string
created:
type: string
format: date-time
resolvedBy:
type: string
resolved:
type: string
format: date-time
GetOrgMyOrgQuotasResponse:
type: object
properties:
id:
type: string
name:
type: string
description:
type: string
unit:
type: string
max:
type: integer
current:
type: integer
origin:
type: string
GetOrgOrgAgentNameIdResponse:
type: object
properties:
method:
type: string
headers:
type: object
properties:
Authorization:
type: string
PostOrgOrgAgentResponse:
type: object
properties:
id:
type: string
name:
type: string
kind:
type: string
version:
type: integer
description:
type: string
tags:
type: object
created:
type: string
format: date-time
lastModified:
type: string
format: date-time
links:
type: array
items:
type: object
properties:
rel:
type: string
href:
type: string
status:
type: object
properties:
bootstrapConfig:
type: object
properties:
registrationToken:
type: string
agentId:
type: string
agentLink:
type: string
hubEndpoint:
type: string
protocolVersion:
type: string
protocolVersion:
type: string
PostOrgMyOrgGvcMyGvcVolumesetMyVolumeSetCommandRequest:
type: object
properties:
type:
type: string
description: The command type, e.g., "expandVolume", "shrinkVolume", "deleteVolume", etc.
spec:
type: string
description: Command‑specific parameters.
spec.location:
type: string
description: The location identifier (e.g., "aws-sa-east-1").
spec.volumeIndex:
type: string
description: The index of the volume within the set.
spec.newStorageCapacity:
type: string
description: The new capacity for expandVolume or shrinkVolume commands.
spec.snapshotName:
type: string
description: Name of the snapshot for snapshot‑related commands.
spec.snapshotExpirationDate:
type: string
description: Expiration date for a snapshot (ISO‑8601 format).
spec.tags:
type: string
description: Key/value pairs to attach to a snapshot.
required:
- type
- spec
- spec.location
- spec.volumeIndex
GetOrgOrgAgentResponse:
type: object
properties:
method:
type: string
headers:
type: object
properties:
Authorization:
type: string
securitySchemes:
apiKey:
type: apiKey
in: header
name: Authorization