Перейти к содержанию

GET /v1/releases

Возвращает список релизов приложения, сгруппированных по семантической версии (например, 1.0.0, 1.2.3). Внутри каждой версии может быть несколько релизов с разными номерами сборки.

Релизы отсортированы по дате загрузки — самые новые отображаются первыми. Архивированные релизы не возвращаются в ответе.

Два режима пагинации

По версиям (основной режим): Если параметр version не указан, пагинация применяется к списку версий. Для каждой версии возвращается не более 5 последних релизов.

По релизам внутри версии: Если указан параметр version, метод возвращает только эту версию, а пагинация применяется к релизам внутри неё. Используйте для подгрузки старых релизов.


Request

Query-параметры
status string
Фильтр по статусу релиза.
version string
Фильтр по конкретной версии. Если указан, пагинация применяется к релизам внутри этой версии.
page integer
Номер страницы. По умолчанию: 1
pageSize integer
Размер страницы. По умолчанию: 50
Response 200 OK · application/json
status string
Статус запроса: success
totalCount integer
Общее количество версий
page integer
Текущая страница
pageSize integer
Размер страницы
totalPages integer
Всего страниц
versions array
Массив версий
Показать вложенные параметрыСкрыть вложенные параметры
versions[]version string
Номер версии
versions[]totalReleases integer
Количество релизов
versions[]releases array
Массив релизов
Показать вложенные параметрыСкрыть вложенные параметры
releases[]id string
Идентификатор релиза
releases[]number integer
Номер релиза
releases[]description string
Описание
releases[]access string
Тип доступа: private / public
status string
Статус: success, archived
createdAt string
Дата создания (ISO8601 UTC)
build object
Информация о сборке
Показать вложенные параметрыСкрыть вложенные параметры
buildid string
Идентификатор сборки (UUID)
buildscanStatus string
Статус сканирования: success, pending, failed
builddownloadUrl string | null
URL для скачивания сборки (требует авторизации)
buildqrUrl string
URL QR-кода для скачивания
publicLink object
Публичные ссылки (только для access: public)
Показать вложенные параметрыСкрыть вложенные параметры
publicLinkurl string | null
Публичная ссылка для скачивания без авторизации
publicLinkqrUrl string | null
URL QR-кода для публичной ссылки

Примеры запроса

curl -X GET "https://<DOMAIN>/v1/releases?page=1&pageSize=50" \
  -H "Authorization: Bearer <API_KEY>"
import requests

url = "https://<DOMAIN>/v1/releases"
headers = {"Authorization": "Bearer <API_KEY>"}
params = {"page": 1, "pageSize": 50}

response = requests.get(url, headers=headers, params=params)
print(response.json())
const params = new URLSearchParams({ page: 1, pageSize: 50 });

fetch(`https://<DOMAIN>/v1/releases?${params}`, {
    method: 'GET',
    headers: {
        'Authorization': 'Bearer <API_KEY>'
    }
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
using System.Net.Http.Headers;
using System.Text.Json;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://<DOMAIN>/v1/releases?page=1&pageSize=50");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "<API_KEY>");

var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();

var content = await response.Content.ReadAsStringAsync();
var releases = JsonSerializer.Deserialize<JsonElement>(content);
package main

import (
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}
    req, _ := http.NewRequest("GET", "https://<DOMAIN>/v1/releases?page=1&pageSize=50", nil)
    req.Header.Add("Authorization", "Bearer <API_KEY>")

    res, err := client.Do(req)
    if err != nil { /* ... обработка ошибки ... */ }
    defer res.Body.Close()

    var releases map[string]interface{}
    json.NewDecoder(res.Body).Decode(&releases)
    fmt.Println(releases)
}
import okhttp3.*;
import org.json.JSONObject;
import java.io.IOException;

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
    .url("https://<DOMAIN>/v1/releases?page=1&pageSize=50")
    .get()
    .addHeader("Authorization", "Bearer <API_KEY>")
    .build();

try (Response response = client.newCall(request).execute()) {
    if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);

    JSONObject releases = new JSONObject(response.body().string());
    System.out.println(releases);
}

Пример ответа

{
  "status": "success",
  "totalCount": 2,
  "page": 1,
  "pageSize": 50,
  "totalPages": 1,
  "versions": [
    {
      "version": "1.1",
      "totalReleases": 1,
      "releases": [
        {
          "id": "7fd896a6-ab07-4f23-b584-b172279c2f3e",
          "number": 1,
          "description": "Исправления багов",
          "access": "private",
          "status": "success",
          "createdAt": "2026-01-29T12:20:20.830223Z",
          "build": {
            "id": "fc764c00-d24d-49ce-83f3-e929691671ac",
            "scanStatus": "success",
            "downloadUrl": "https://<DOMAIN>/app/application/private?releaseId=...",
            "qrUrl": "https://storage.example.ru/qr_xxx.png"
          },
          "publicLink": {
            "url": null,
            "qrUrl": null
          }
        }
      ]
    }
  ]
}

Ошибки

Код Описание
400 Ошибка валидации входных данных
401 Неавторизованный запрос
403 Недостаточно прав
500 Внутренняя ошибка сервера

См. также