import requests
url = "https://api.platform.ankra.app/org/service-admission/instances"
headers = {"cookie": "ankra_session="}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {cookie: 'ankra_session='}};
fetch('https://api.platform.ankra.app/org/service-admission/instances', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request GET \
--url https://api.platform.ankra.app/org/service-admission/instances \
--cookie ankra_session={
"items": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"package_version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cluster_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cluster_name": "<string>",
"cluster_deleted": true,
"state": "deploying",
"admission_operation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"region": "<string>",
"data_boundary": "<string>",
"generation": 2,
"mode": "customer",
"requested_destinations": [
{
"application_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cluster_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"namespace": "<string>"
}
],
"consumers": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"application_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cluster_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"namespace": "<string>",
"application_name": "<string>",
"cluster_name": "<string>",
"environment": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"role": "playground"
},
"connection_delivery": {
"state": "delivered",
"secret_name": "<string>",
"variables": [
"<string>"
],
"reason": "<string>",
"holder_gone": {
"protocol": "<string>",
"variables": [
"<string>"
],
"previous_service": "<string>",
"services": [
"<string>"
],
"reason": "<string>"
}
}
}
],
"deployment_operation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"deployment_state": "accepted",
"readiness": "unverified",
"readiness_check": {
"observed_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"reason": "<string>",
"last_passed_at": "2023-11-07T05:31:56Z"
},
"created_at": "2023-11-07T05:31:56Z",
"released_at": "2023-11-07T05:31:56Z",
"evidence_updated_at": "2023-11-07T05:31:56Z",
"connection": {
"namespace": "<string>",
"endpoints": [
{
"name": "<string>",
"address": "<string>"
}
],
"secret": {
"name": "<string>",
"keys": [
"<string>"
]
}
},
"health": {
"state": "serving",
"observed_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"reason": "<string>",
"quota": {
"state": "refused",
"namespaces": [
"<string>"
],
"refusal": {
"namespace": "<string>",
"object_kind": "<string>",
"object_name": "<string>",
"message": "<string>",
"last_seen_at": "2023-11-07T05:31:56Z"
}
}
},
"retirement": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"state": "in_progress",
"phase": "retire_stack",
"execution_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"requested_at": "2023-11-07T05:31:56Z",
"settled_at": "2023-11-07T05:31:56Z",
"outcome": "retired",
"reason": "<string>"
}
}
],
"next_cursor": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"scan_capped": true
}List managed service instances (browser session)
Durable organisation inventory, independent of the confirming actor and review retention. Requires live applications.read and clusters.read on all requested destinations and the service cluster, intersected with live token scopes. Uses primary authority reads so replica lag cannot extend revoked access. Deleted or inaccessible resources are hidden. No credentials, grant IDs, private plans, operation payloads or raw failures are returned. Deployment state reports recorded operation progress only; evidence_updated_at makes its age explicit. Missing, malformed, foreign or later-generation evidence is unknown. Successful deployment remains verification_pending with readiness unverified; this endpoint does not observe a service-specific consumer canary. Optional filters: application_id keeps the instances whose reviewed plan names a consumer of that application, so an application’s services are one call; cluster_id keeps the instances running on that cluster; state keeps the instances in one state. Each instance carries cluster_name and each consumer its application_name, cluster_name and environment for display; the ids stay authoritative. Ascending UUID cursor order; one request examines at most 500 rows and returns at most 50 matching instances. next_cursor is set exactly when rows remain past it. A page shorter than limit that has a next_cursor always carries scan_capped true: the request stopped at its row bound before the page filled, which is never a statement that nothing more matches. Follow next_cursor until null.
import requests
url = "https://api.platform.ankra.app/org/service-admission/instances"
headers = {"cookie": "ankra_session="}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {cookie: 'ankra_session='}};
fetch('https://api.platform.ankra.app/org/service-admission/instances', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request GET \
--url https://api.platform.ankra.app/org/service-admission/instances \
--cookie ankra_session={
"items": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"package_version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cluster_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cluster_name": "<string>",
"cluster_deleted": true,
"state": "deploying",
"admission_operation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"region": "<string>",
"data_boundary": "<string>",
"generation": 2,
"mode": "customer",
"requested_destinations": [
{
"application_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cluster_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"namespace": "<string>"
}
],
"consumers": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"application_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cluster_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"namespace": "<string>",
"application_name": "<string>",
"cluster_name": "<string>",
"environment": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"role": "playground"
},
"connection_delivery": {
"state": "delivered",
"secret_name": "<string>",
"variables": [
"<string>"
],
"reason": "<string>",
"holder_gone": {
"protocol": "<string>",
"variables": [
"<string>"
],
"previous_service": "<string>",
"services": [
"<string>"
],
"reason": "<string>"
}
}
}
],
"deployment_operation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"deployment_state": "accepted",
"readiness": "unverified",
"readiness_check": {
"observed_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"reason": "<string>",
"last_passed_at": "2023-11-07T05:31:56Z"
},
"created_at": "2023-11-07T05:31:56Z",
"released_at": "2023-11-07T05:31:56Z",
"evidence_updated_at": "2023-11-07T05:31:56Z",
"connection": {
"namespace": "<string>",
"endpoints": [
{
"name": "<string>",
"address": "<string>"
}
],
"secret": {
"name": "<string>",
"keys": [
"<string>"
]
}
},
"health": {
"state": "serving",
"observed_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"reason": "<string>",
"quota": {
"state": "refused",
"namespaces": [
"<string>"
],
"refusal": {
"namespace": "<string>",
"object_kind": "<string>",
"object_name": "<string>",
"message": "<string>",
"last_seen_at": "2023-11-07T05:31:56Z"
}
}
},
"retirement": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"state": "in_progress",
"phase": "retire_stack",
"execution_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"requested_at": "2023-11-07T05:31:56Z",
"settled_at": "2023-11-07T05:31:56Z",
"outcome": "retired",
"reason": "<string>"
}
}
],
"next_cursor": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"scan_capped": true
}Authorizations
Browser session. Mutations also require X-Ankra-CSRF.
Query Parameters
1 <= x <= 50Keep the instances whose reviewed plan names a consumer of this application.
Keep the instances that run on this cluster.
Keep the instances in this state (see the instance's state).
deploying, deployed, serving, degraded, failed, retiring, released, unknown Response
Authorised durable installation metadata and scoped deployment evidence.
50Show child attributes
Show child attributes
Set exactly when rows remain past it that this request did not examine; pass it as after.
True when the request examined its bound of 500 rows before the page filled: every row it skipped was hidden from the caller or did not match the filters, and a short or empty page is not the end of the inventory. Always true for a page shorter than limit that has a next_cursor.