# List applications — GET /v1/deploy/applications

URL: https://docs.hanzo.ai/docs/openapi/deploy/get-deploy-applications

> Returns the fleet as an argocd ApplicationList: one projected Application per operator App CR, carrying the image tag the CR DECLARES, the tag actually RUNNING in the cluster's Deployment, the reconciled health, and the sync verdict those two produce (declared == running ⇒ Synced, both known and different ⇒ OutOfSync, either unknown ⇒ Unknown).

`GET /v1/deploy/applications`

> [Deploy →](https://docs.hanzo.ai/docs/openapi/deploy) · [All API references →](https://docs.hanzo.ai/docs/openapi) · [Get started →](https://docs.hanzo.ai/docs/guides)

|               |                                               |
| ------------- | --------------------------------------------- |
| **Address**   | `https://api.hanzo.ai/v1/deploy/applications` |
| **Method**    | `GET`                                         |
| **Operation** | `get_deploy_applications`                     |
| **Auth**      | `Authorization: Bearer $HANZO_API_KEY`        |

Returns the fleet as an argocd ApplicationList: one
projected Application per operator App CR, carrying the image tag the CR
DECLARES, the tag actually RUNNING in the cluster's Deployment, the reconciled
health, and the sync verdict those two produce (declared == running ⇒ Synced,
both known and different ⇒ OutOfSync, either unknown ⇒ Unknown).

It is TENANT-SCOPED: a platform SuperAdmin reads every platform namespace, a
validated org member reads only its own org's tenant namespace and only the App
CRs labelled with its org, and anyone else is refused. A cross-tenant CR is
never projected into an answer.

## Request

`GET /v1/deploy/applications` takes no parameters and no body — the credential is the whole request.

## Response

| Status    | Body               | Meaning |
| --------- | ------------------ | ------- |
| `200`     | deploy.argoAppList | ok      |
| `default` | problem-details    | refused |

`200` body — 44 fields.

| Field                                       | In   | Type                         | Always | Description                                                                                                                                                                                                |
| ------------------------------------------- | ---- | ---------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `apiVersion`                                | body | string                       | —      | APIVersion is the constant "argoproj.io/v1alpha1".                                                                                                                                                         |
| `items`                                     | body | deploy.argoApp\[]            | —      | Items is one entry per operator App CR the caller may see — its own org's, or every platform namespace's for a SuperAdmin — followed, for a SuperAdmin only, by every Hanzo CD Application in the cluster. |
| `items[].apiVersion`                        | body | string                       | —      | APIVersion is the constant "argoproj.io/v1alpha1" — the shape, not the source.                                                                                                                             |
| `items[].kind`                              | body | string                       | —      | Kind is the constant "Application".                                                                                                                                                                        |
| `items[].metadata`                          | body | deploy.argoMeta              | —      |                                                                                                                                                                                                            |
| `items[].metadata.creationTimestamp`        | body | string                       | —      | CreationTimestamp is when the source object was created, RFC 3339 to the second.                                                                                                                           |
| `items[].metadata.labels`                   | body | object                       | —      | Labels are the labels this projection puts on the row, not the source object's full label set.                                                                                                             |
| `items[].metadata.labels.*`                 | body | string                       | —      |                                                                                                                                                                                                            |
| `items[].metadata.name`                     | body | string                       | —      | Name is the projected object's name: the App CR's metadata.name for an application, the CD Application's name for a CD row, and the IAM project name for a project.                                        |
| `items[].metadata.namespace`                | body | string                       | —      | Namespace is the namespace the source object was read from — the tenant or platform namespace for an App CR, CD's controller namespace for a CD row.                                                       |
| `items[].metadata.uid`                      | body | string                       | —      | UID is the k8s metadata.uid of the source object, which is what the SPA keys a row on across refreshes.                                                                                                    |
| `items[].spec`                              | body | deploy.argoSpec              | —      |                                                                                                                                                                                                            |
| `items[].spec.destination`                  | body | deploy.argoDestination       | —      |                                                                                                                                                                                                            |
| `items[].spec.destination.name`             | body | string                       | —      | ArgoCD allows a destination by cluster name; omitted for the in-cluster projection.                                                                                                                        |
| `items[].spec.destination.namespace`        | body | string                       | —      | Namespace is where in that cluster the workload lands.                                                                                                                                                     |
| `items[].spec.destination.server`           | body | string                       | —      | Server is the cluster API URL the application reconciles into.                                                                                                                                             |
| `items[].spec.project`                      | body | string                       | —      | Project is the AppProject this application is grouped and filtered under.                                                                                                                                  |
| `items[].spec.source`                       | body | deploy.argoSource            | —      |                                                                                                                                                                                                            |
| `items[].spec.source.path`                  | body | string                       | —      | Path is the directory within RepoURL.                                                                                                                                                                      |
| `items[].spec.source.repoURL`               | body | string                       | —      | RepoURL is the git repository the desired state comes from.                                                                                                                                                |
| `items[].spec.source.targetRevision`        | body | string                       | —      | TargetRevision is the git ref tracked there — a branch such as "main".                                                                                                                                     |
| `items[].status`                            | body | deploy.argoStatus            | —      |                                                                                                                                                                                                            |
| `items[].status.health`                     | body | deploy.argoHealth            | —      |                                                                                                                                                                                                            |
| `items[].status.health.message`             | body | string                       | —      | Message is why the status is what it is — "Running: no replicas ready", "iam: CrashLoopBackOff".                                                                                                           |
| `items[].status.health.status`              | body | string                       | —      | Status is the ArgoCD health vocabulary, Capitalized: Healthy, Progressing, Degraded, Suspended, Missing or Unknown.                                                                                        |
| `items[].status.reconciledAt`               | body | string                       | —      | ReconciledAt is when the desired state was last compared against the cluster, RFC 3339.                                                                                                                    |
| `items[].status.resources`                  | body | deploy.argoResourceStatus\[] | —      | Resources are the objects the application owns.                                                                                                                                                            |
| `items[].status.resources[].group`          | body | string                       | —      | Group is the object's API group: empty for the core group (Pod, Service, ConfigMap), otherwise apps, networking.k8s.io, autoscaling or policy — and hanzo.ai for the App CR itself.                        |
| `items[].status.resources[].health`         | body | deploy.argoHealth            | —      |                                                                                                                                                                                                            |
| `items[].status.resources[].health.message` | body | string                       | —      | Message is why the status is what it is — "Running: no replicas ready", "iam: CrashLoopBackOff".                                                                                                           |
| `items[].status.resources[].health.status`  | body | string                       | —      | Status is the ArgoCD health vocabulary, Capitalized: Healthy, Progressing, Degraded, Suspended, Missing or Unknown.                                                                                        |
| `items[].status.resources[].kind`           | body | string                       | —      | Kind is the object kind — App, Deployment, ReplicaSet, Pod, Service, Ingress, HorizontalPodAutoscaler, PodDisruptionBudget, ConfigMap.                                                                     |
| `items[].status.resources[].name`           | body | string                       | —      | Name is the object's metadata.name.                                                                                                                                                                        |
| `items[].status.resources[].namespace`      | body | string                       | —      | Namespace is the namespace the object was found in — the same one for every entry of an application, since the walk is confined to it.                                                                     |
| `items[].status.resources[].status`         | body | string                       | —      | Status is the APPLICATION's sync verdict repeated on every row, not a per-object one.                                                                                                                      |
| `items[].status.resources[].version`        | body | string                       | —      | Version is the object's API version as the live object reports it: v1 for every kind here except the HorizontalPodAutoscaler, which is autoscaling/v2.                                                     |
| `items[].status.summary`                    | body | deploy.argoSummary           | —      |                                                                                                                                                                                                            |
| `items[].status.summary.images`             | body | string\[]                    | —      | Images are the container images the application runs.                                                                                                                                                      |
| `items[].status.sync`                       | body | deploy.argoSyncStatus        | —      |                                                                                                                                                                                                            |
| `items[].status.sync.revision`              | body | string                       | —      | Revision is what Status was reached against.                                                                                                                                                               |
| `items[].status.sync.status`                | body | string                       | —      | Status is the ArgoCD sync vocabulary, Capitalized: Synced, OutOfSync or Unknown.                                                                                                                           |
| `kind`                                      | body | string                       | —      | Kind is the constant "ApplicationList".                                                                                                                                                                    |
| `metadata`                                  | body | deploy.argoListMeta          | —      |                                                                                                                                                                                                            |
| `metadata.resourceVersion`                  | body | string                       | —      | ResourceVersion is the k8s list version a watch would resume from.                                                                                                                                         |

Failure carries the platform error shape — see [Errors](https://docs.hanzo.ai/docs/errors).

## Examples

**CLI**

```bash
hanzo deploy applications list
```

**SDK**

**.ts**

```ts
import { Configuration, DeployApi } from 'hanzoai';

const api = new DeployApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getDeployApplications();
```

**.py**

```python
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import DeployApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = DeployApi(client).get_deploy_applications()
```

**.go**

```go
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.DeployAPI.GetDeployApplications(context.Background()).Execute()
if err != nil {
	return err
}
```

**.rs**

```rust
use hanzo_client::apis::{configuration::Configuration, deploy_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = deploy_api::get_deploy_applications(&cfg, Default::default()).await?;
```

**.java**

```java
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.DeployApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new DeployApi(client).getDeployApplications();
```

**HTTP**

```bash
curl https://api.hanzo.ai/v1/deploy/applications \
  -H "Authorization: Bearer $HANZO_API_KEY"
```

**MCP**

MCP reaches **deploy** through the `deploy` tool, which names its 11 operations with its own verbs — this one among them, under a name only MCP declares. `describe` explains any of them:

```bash
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_deploy_applications"
         }
       }
     }'
```

---

[Deploy API](https://docs.hanzo.ai/docs/openapi/deploy) · [All Hanzo APIs](https://docs.hanzo.ai/docs/openapi) · [Interactive reference](https://docs.hanzo.ai/docs/openapi/reference)
