---
title: "Get the app's deployment status"
method: GET
path: "/v1/instances/{id}/app"
tags: ["public", "apps"]
---

# Get the app's deployment status

`GET /v1/instances/{id}/app`

## Request

- Base URL: `https://api.vozora.io`
- URL: `https://api.vozora.io/v1/instances/{id}/app`
- Auth: API key in header `Authorization`

Server, Software and Access are independent truth sources: a server can be running while its software is still deploying, and an endpoint can be pending while both are healthy.

## Path parameters

- `id` string, required

## Response `200`

OK

- ProvisioningPublicAppStatusResponse
  - `access` ProvisioningPublicMarketplaceAccessStatus
    - `endpoints` ProvisioningPublicMarketplaceEndpointStatus[]
      - `generation` integer
      - `hostname` string
      - `kind` string
      - `ownership_verified` boolean
      - `removal_requested` boolean
      - `role` string
      - `state` string
    - `guest_integration` string
  - `server` ProvisioningPublicInstance
    - `created_at` string
    - `desired_state` 'active' | 'suspended' | 'terminated'
    - `display_name` string
    - `dns_a` string
    - `dns_aaaa` string
    - `dns_ptr` string
    - `id` string
    - `ipv4_prefix` string
    - `ipv6_prefix` string
    - `primary_ipv4` string: Addressing the customer legitimately needs to reach their own server.
    - `primary_ipv6` string
    - `product_id` string
    - `progress` object: Build progress: percent, the current step, and the per-step list. Present while the build is running, and on a build that failed; absent once the build has succeeded. Same shape as the progress object on an order.
    - `resizable` boolean: Whether this server can be resized. Absent when it could not be determined, which is not the same as false: treat an absent value as unknown rather than as a refusal. Present on a single instance read only.
    - `spec` ProvisioningSpecView
      - `cpu_millicores` integer
      - `disk_mb` integer
      - `memory_mb` integer
      - `os_image` string
      - `ssh_username` string: SSHUsername is the recorded cloud-init user, not a live guest-access guarantee.
    - `status` 'pending' | 'provisioning' | 'active' | 'suspended' | 'terminating' | 'terminated' | 'failed'
    - `tags` string[]: The instance's tags, as last set by PUT /v1/instances/{id}/tags. Always present; an instance with no tags reports an empty array.
    - `zone` string: The slug of the zone the server is in. Absent when the zone is not known. GET /v1/zones lists the zones open for new orders, so a server in a zone that has since closed to new orders names a zone that list omits.
  - `software` ProvisioningPublicMarketplaceSoftwareStatus
    - `failure_class` string
    - `failure_reason` string
    - `installed_generation` integer
    - `offering_id` string
    - `ready_generation` integer
    - `requested_generation` integer
    - `retry_eligible` boolean
    - `state` string
    - `steps` ProvisioningPublicMarketplaceStep[]
      - `from_state` string
      - `generation` integer
      - `reason` string
      - `recorded_at` string
      - `to_state` string

## Other responses

- `401`: invalid or missing API key
- `403`: the key lacks apps:read
- `404`: no such instance

---

[API](https://skmtc.dev/vozora/apis/vozora-api.md) · [All operations](https://skmtc.dev/vozora/apis/vozora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vozora/apis/vozora-api/revisions/56f15734fc5a?raw)
