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
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 | Внутренняя ошибка сервера |