---
title: "List releases"
method: GET
path: "/v1/projects/{project_id}/releases"
tags: ["Deployments"]
---

# List releases

`GET /v1/projects/{project_id}/releases`

## Request

- Base URL: `https://api.liara.ir`
- URL: `https://api.liara.ir/v1/projects/{project_id}/releases`
- Auth: HTTP bearer

Lists the app's releases, newest first by default. Team permission: any project permission.

## Path parameters

- `project_id` string, required

## Query parameters

- `teamID` string: 24-character hexadecimal ID.
- `page` integer
- `count` integer
- `sort` 'DESC' | 'ASC'
- `state` 'PENDING'

## Response `200`

The app's releases. The response can include additional fields not listed here.

- object
  - `total` integer: Total number of releases.
  - `currentRelease` string, nullable: ID of the release that's running now.
  - `readyReleasesCount` integer
  - `platform` 'node' | 'next' | 'react' | 'vue' | 'angular' | 'static' | 'laravel' | 'php' | 'django' | 'flask' | 'python' | 'netcore' | 'dotnet' | 'go' | 'docker': The app's platform.
  - `releases` Release[]
    - `_id` string
    - `tag` string: The release's number, for example `v3`.
    - `type` 'DEPLOY' | 'ENV_UPDATE' | 'ROLLBACK' | 'AUTO_ROLLBACK': `DEPLOY`: a normal deployment. `ENV_UPDATE`: a redeploy after environment variables changed. `ROLLBACK`: a rollback you started. `AUTO_ROLLBACK`: a rollback started automatically.
    - `state` 'PENDING' | 'BUILDING' | 'DEPLOYING' | 'READY' | 'CANCELED' | 'FAILED' | 'TIMEDOUT' | 'UNHEALTHY'
    - `failReason` string: Why the release failed, if it did.
    - `projectType` 'node' | 'next' | 'react' | 'vue' | 'angular' | 'static' | 'laravel' | 'php' | 'django' | 'flask' | 'python' | 'netcore' | 'dotnet' | 'go' | 'docker': The app's platform.
    - `port` integer
    - `message` string
    - `gitInfo` object
    - `client` string: The tool that created the release.
    - `rollbackedTo` object: For rollbacks, the release that was restored.
      - `tag` string
    - `buildLocation` 'iran' | 'germany'
    - `buildTimeout` integer: Maximum build time, in minutes.
    - `maxImageLayerSize` integer
    - `sourceAvailable` boolean: Whether the source code can still be downloaded with `POST /v2/releases/{releaseID}/source`.
    - `queue` integer: Only for `PENDING` releases. How many releases are waiting to be built before this one.
    - `platformConfig` object: The platform settings the release was built with.
    - `disks` DiskMount[]
      - `name` string, required: Name of one of the app's disks.
      - `mountTo` string, required: Where to mount it. Relative paths are relative to your app's root directory; `docker` apps must use absolute paths. Can't be `/`.
    - `createdAt` string, date-time
    - `finishedAt` string, date-time, nullable

## Other responses

- `400`: `teamID` isn't a valid ID.
- `401`: The API token is missing, invalid or expired.
- `403`: With `teamID`: you aren't a member of the team (`team_not_found`), or you don't have the required permission on this app (`no_permission`).
- `404`: The app doesn't exist.

---

[API](https://skmtc.dev/liara-cloud/apis/paas.md) - [All operations](https://skmtc.dev/liara-cloud/apis/paas/llms.txt) - [OpenAPI document](https://skmtc.dev/liara-cloud/apis/paas/revisions/610162e8a623?raw)
