import requests
url = "https://platform.ankra.app/api/v1/org/clusters/{cluster_id}/control-plane-self-heal"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://platform.ankra.app/api/v1/org/clusters/{cluster_id}/control-plane-self-heal', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request GET \
--url https://platform.ankra.app/api/v1/org/clusters/{cluster_id}/control-plane-self-heal \
--header 'Authorization: Bearer <token>'{
"cluster_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"enabled": true,
"latest_incident": null
}{
"detail": "Cluster not found"
}{
"detail": "Cluster not found"
}{
"detail": "Cluster not found"
}{
"detail": "Cluster not found"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "Cluster not found"
}Get control plane self-heal
Whether Ankra may restart a NotReady control plane of this cluster through its cloud provider (ankra cluster control-plane-heal status), and the cluster’s latest NotReady episode: which node, what Ankra did, and how it ended. Ankra restarts a control plane only after it has been NotReady for about ten minutes, only when every other control plane is Ready and etcd keeps its quorum without it, and at most twice per node per day. It never stops, deprovisions or scales anything. Automatic restart is on for every cluster until a member turns it off. Readable by any member of the organisation. Bearer-PAT twin of the browser route of the same name under /org.
import requests
url = "https://platform.ankra.app/api/v1/org/clusters/{cluster_id}/control-plane-self-heal"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://platform.ankra.app/api/v1/org/clusters/{cluster_id}/control-plane-self-heal', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request GET \
--url https://platform.ankra.app/api/v1/org/clusters/{cluster_id}/control-plane-self-heal \
--header 'Authorization: Bearer <token>'{
"cluster_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"enabled": true,
"latest_incident": null
}{
"detail": "Cluster not found"
}{
"detail": "Cluster not found"
}{
"detail": "Cluster not found"
}{
"detail": "Cluster not found"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "Cluster not found"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
PAT organisation override.
Path Parameters
Response
Successful response
A cluster's control-plane self-heal switch and its latest NotReady episode.
The stored switch. On for every cluster until a member turns it off.
The most recent NotReady episode; null when the cluster never had one.
Show child attributes
Show child attributes
{
"node_name": "cp-1",
"state": "closed",
"outcome": "restored",
"reason": "the node is Ready and every etcd voter is serving",
"restart_attempts": 1,
"not_ready_since": "2026-10-13T08:02:00Z",
"last_restart_at": "2026-10-13T08:14:30Z",
"closed_at": "2026-10-13T08:19:10Z",
"mode": "active"
}