Skip to content
На цій сторінці

Помилки та відповіді

Успішна відповідь

Успішна відповідь загортає результат у data. Списки додають pagination.

json
{
  "data": [ { "id": "…", "slug": "spring", "shortLink": "https://rvlnk.link/spring" } ],
  "pagination": { "page": 1, "limit": 50, "total": 1 }
}

Помилки

Помилки приходять із відповідним HTTP-статусом і завжди мають такий вигляд:

json
{
  "error": {
    "code": "conflict",
    "message": "This slug is already taken."
  }
}
HTTPcodeЗначення
400invalid_requestЗапит неправильний. message пояснює, що саме.
401unauthorizedНемає ключа, або ключ недійсний чи прострочений.
403forbiddenУ ключа немає дозволу (error.requiredPermission), або роль власника ключа не дозволяє цю дію.
403license_limit_reachedДосягнуто ліміт тарифу. error.licenseLimitReached дорівнює true. error.licenseExpired дорівнює true, якщо тариф прострочено.
404not_foundТакого елемента немає в цьому робочому просторі.
409conflictУже існує, наприклад зайнятий slug або назва тега.
429rate_limitedПонад 300 запитів на хвилину для ключа. Дивіться Retry-After.
5xxinternal_errorЩось пішло не так на нашому боці.

Масові запити

Масове створення, оновлення й видалення повертають HTTP 200 і звітують про кожен елемент окремо. Один невдалий елемент не зупиняє решту. Невдалий елемент має error і code (ті самі коди, що вище), а також index (позиція в масиві запиту, для створення) або id (для оновлення й видалення).

json
{
  "data": {
    "created": [ { "id": "…", "slug": "a1", "shortLink": "https://rvlnk.link/a1" } ],
    "failed": [ { "index": 1, "error": "This slug is already taken.", "code": "conflict" } ]
  }
}

Пагінація

GET /links приймає page (за замовчуванням 1) і limit (за замовчуванням 50, максимум 200).