Returns an app's deployment history.
Returns an app's deployment history. It lists every deployment recorded for one of the caller org's applications, newest version first, each with its…
GET /v1/platform/projects/{project}/apps/{app}/deployments
| Address | https://api.hanzo.ai/v1/platform/projects/{project}/apps/{app}/deployments |
| Method | GET |
| Operation | get_platform_projects_by_project_apps_by_app_deployments |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Returns an app's deployment history.
It lists every deployment recorded for one of the caller org's applications, newest version first, each with its version, status, source, commit and image. Failed and superseded attempts are included — that is the point of a history. Requires a validated principal; 403 without one.
Request
2 fields.
| Field | In | Type | Required | Description |
|---|---|---|---|---|
project | path | string | yes | Project is the project the application lives under, from the path. |
app | path | string | yes | App is the application's slug, from the path. |
Response
| Status | Body | Meaning |
|---|---|---|
200 | deploymentView[] | ok |
200 body — 12 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
[].applicationId | body | string | — | ApplicationID is the app this deployed — the app's id, not its slug. |
[].buildId | body | string | — | BuildID is the build record behind a git deploy, whose logs and status live at /v1/platform/builds. |
[].commit | body | string | — | Commit is the git ref this built — the commit a deploy or a push named, else the app's branch. |
[].createdAt | body | integer | — | CreatedAt is when the attempt was recorded, unix seconds. |
[].id | body | string | — | ID is the deployment's id (dep_…), minted when the attempt is recorded. |
[].image | body | string | — | Image is the full repo:tag this deployment put in the CR. |
[].message | body | string | — | Message is why this attempt is not live: the failure, or the note that a newer deployment went live before this build finished. |
[].org | body | string | — | Org is the tenant the deployment belongs to, from the validated identity. |
[].source | body | string | — | Source is which lane produced it: git (built from the repo) or image (an already-built ref deployed as-is, including promote and rollback). |
[].status | body | string | — | Status is where the attempt got to: building while its image is being built, deploying once its CR reached the cluster — which is the terminal success… |
[].updatedAt | body | integer | — | UpdatedAt is its last transition, unix seconds — so for a terminal deployment it is when it reached that state. |
[].version | body | integer | — | Version counts this app's deployments, from 1 and monotonically. |
Failure carries the platform error shape — see Errors.
Examples
hanzo platform projects apps deployments list <project> <app>import { Configuration, PlatformApi } from 'hanzoai';
const api = new PlatformApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getPlatformProjectsByProjectAppsByAppDeployments({ project: 'project', app: 'app' });from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import PlatformApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = PlatformApi(client).get_platform_projects_by_project_apps_by_app_deployments(project='project', app='app')cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.PlatformAPI.GetPlatformProjectsByProjectAppsByAppDeployments(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::apis::{configuration::Configuration, platform_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = platform_api::get_platform_projects_by_project_apps_by_app_deployments(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.PlatformApi;
ApiClient client = new ApiClient();
client.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + System.getenv("HANZO_API_KEY")));
var result = new PlatformApi(client).getPlatformProjectsByProjectAppsByAppDeployments();curl https://api.hanzo.ai/v1/platform/projects/<project>/apps/<app>/deployments \
-H "Authorization: Bearer $HANZO_API_KEY"The door reaches platform through the platform tool, which names its 39 operations with its own verbs — this one among them, under a name only the door declares. describe explains any of them:
curl -X POST https://api.hanzo.ai/v1/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe",
"arguments": {
"op": "list_builds"
}
}
}'How is this guide?