import requests
url = "https://platform.ankra.app/api/v1/org/applications/{application_id}"
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/applications/{application_id}', 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/applications/{application_id} \
--header 'Authorization: Bearer <token>'{
"app_repo_branch": "<string>",
"app_repo_name": "<string>",
"app_repo_owner": "<string>",
"created_at": "<string>",
"deployment_state": "<string>",
"deployment_state_message": "<string>",
"id": "<string>",
"name": "<string>",
"state": "<string>",
"updated_at": "<string>",
"analysis_ai_generated": true,
"analysis_fallback_reason": "<string>",
"analysis_status": "<string>",
"app_repo_url": "<string>",
"chart_oci_url": "<string>",
"chart_version_count": 123,
"clusters_behind": 123,
"clusters_up_to_date": 123,
"components": [
{
"app_subdir": "<string>",
"container_port": 123,
"image_repository": "<string>",
"is_primary": true,
"name": "<string>",
"registry_credential_name": "<string>",
"registry_declared": true,
"workflow_path": "<string>"
}
],
"container_image_url": "<string>",
"creation_progress": [
{
"key": "<string>",
"status": "<string>",
"message": "<string>"
}
],
"cve_summary": {},
"deployment_count": 123,
"detected_framework": "<string>",
"detected_language": "<string>",
"error_message": "<string>",
"file_dispositions": [
{
"disposition": "<string>",
"path": "<string>"
}
],
"generated_files": [
{
"content": "<string>",
"path": "<string>"
}
],
"healthy_deployment_count": 123,
"helm_repo_add_command": "<string>",
"latest_chart_version": "<string>",
"latest_delivery_status": "<string>",
"latest_workflow_at": "<string>",
"latest_workflow_conclusion": "<string>",
"latest_workflow_status": "<string>",
"parameters": [
{
"name": "<string>",
"default": "<string>",
"description": "<string>",
"required": false,
"type": "string"
}
],
"publish_readiness": {},
"pipeline_source": "<string>",
"pull_request_closed_at": "<string>",
"pull_request_merged_at": "<string>",
"pull_request_url": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Get an application
Returns one application of the organisation: its state, generated files, detected stack, latest workflow and delivery status, and a summary of its deployments. Answers 404 when the application does not exist in the organisation.
import requests
url = "https://platform.ankra.app/api/v1/org/applications/{application_id}"
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/applications/{application_id}', 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/applications/{application_id} \
--header 'Authorization: Bearer <token>'{
"app_repo_branch": "<string>",
"app_repo_name": "<string>",
"app_repo_owner": "<string>",
"created_at": "<string>",
"deployment_state": "<string>",
"deployment_state_message": "<string>",
"id": "<string>",
"name": "<string>",
"state": "<string>",
"updated_at": "<string>",
"analysis_ai_generated": true,
"analysis_fallback_reason": "<string>",
"analysis_status": "<string>",
"app_repo_url": "<string>",
"chart_oci_url": "<string>",
"chart_version_count": 123,
"clusters_behind": 123,
"clusters_up_to_date": 123,
"components": [
{
"app_subdir": "<string>",
"container_port": 123,
"image_repository": "<string>",
"is_primary": true,
"name": "<string>",
"registry_credential_name": "<string>",
"registry_declared": true,
"workflow_path": "<string>"
}
],
"container_image_url": "<string>",
"creation_progress": [
{
"key": "<string>",
"status": "<string>",
"message": "<string>"
}
],
"cve_summary": {},
"deployment_count": 123,
"detected_framework": "<string>",
"detected_language": "<string>",
"error_message": "<string>",
"file_dispositions": [
{
"disposition": "<string>",
"path": "<string>"
}
],
"generated_files": [
{
"content": "<string>",
"path": "<string>"
}
],
"healthy_deployment_count": 123,
"helm_repo_add_command": "<string>",
"latest_chart_version": "<string>",
"latest_delivery_status": "<string>",
"latest_workflow_at": "<string>",
"latest_workflow_conclusion": "<string>",
"latest_workflow_status": "<string>",
"parameters": [
{
"name": "<string>",
"default": "<string>",
"description": "<string>",
"required": false,
"type": "string"
}
],
"publish_readiness": {},
"pipeline_source": "<string>",
"pull_request_closed_at": "<string>",
"pull_request_merged_at": "<string>",
"pull_request_url": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Response
Successful Response
Why deployment_state is what it is, when there is something to say: the re-checked failure reason, or what could not be established. Null when the state needs no explanation. For a reader confined to a project, the message comes only from deployments on that project's clusters, their own failure preferred over a newer one elsewhere; when the state comes only from deployments outside it, the message is a fixed sentence that names no cluster ("A deployment on a cluster outside your projects failed. Someone with access to the whole organisation can see why.", or its degraded and in-progress variants). deployment_state itself still reads every deployment.