Get the application timeline
import requests
url = "https://api.platform.ankra.app/org/applications/{application_id}/timeline"
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/applications/{application_id}/timeline', 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/applications/{application_id}/timeline \
--cookie ankra_session={
"events": [
{
"id": "<string>",
"kind": "<string>",
"status": "<string>",
"occurred_at": "<string>",
"cluster_name": "<string>",
"namespace": "<string>",
"commit_sha": "<string>",
"ref": "<string>",
"url": "<string>",
"message": "<string>",
"verdict": "<string>",
"pr_number": 123,
"duration_seconds": 123,
"reason": "<string>",
"component": "<string>",
"actor": "ankra",
"rule": "<string>",
"undo": {
"available": true,
"reason": "<string>"
},
"actor_name": "<string>",
"image_tag": "<string>",
"previous_image_tag": "<string>",
"environment_id": "<string>",
"commit_subject": "<string>"
}
],
"capped": true,
"unavailable_sources": [
"<string>"
],
"next_before": "<string>"
}{
"detail": "<string>"
}Applications
Get the application timeline
The application’s unified timeline, newest first: platform builds, deploys, promotions, rollbacks, demos, AI reviews, what Ankra did on its own and lifecycle events from the platform’s own records, capped with the cap reported, a cursor to the next page, and every unreadable source named - an unreadable source is unknown, not a source with no events. Live-fetched lanes (GitHub workflow runs, registry scans) keep their own endpoints.
GET
/
org
/
applications
/
{application_id}
/
timeline
Get the application timeline
import requests
url = "https://api.platform.ankra.app/org/applications/{application_id}/timeline"
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/applications/{application_id}/timeline', 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/applications/{application_id}/timeline \
--cookie ankra_session={
"events": [
{
"id": "<string>",
"kind": "<string>",
"status": "<string>",
"occurred_at": "<string>",
"cluster_name": "<string>",
"namespace": "<string>",
"commit_sha": "<string>",
"ref": "<string>",
"url": "<string>",
"message": "<string>",
"verdict": "<string>",
"pr_number": 123,
"duration_seconds": 123,
"reason": "<string>",
"component": "<string>",
"actor": "ankra",
"rule": "<string>",
"undo": {
"available": true,
"reason": "<string>"
},
"actor_name": "<string>",
"image_tag": "<string>",
"previous_image_tag": "<string>",
"environment_id": "<string>",
"commit_subject": "<string>"
}
],
"capped": true,
"unavailable_sources": [
"<string>"
],
"next_before": "<string>"
}{
"detail": "<string>"
}Authorizations
Browser session. Mutations also require X-Ankra-CSRF.
Path Parameters
Query Parameters
Required range:
1 <= x <= 100A previous page's next_before: read only the events older than the last one that page held.
Response
Successful Response