Тема
API Overview
Peaced API побудовано на NestJS і доступне за адресою https://api.pisd.uk.
Base URL
https://api.pisd.uk/v1Усі ендпоінти мають префікс /v1/. Локальна розробка: http://localhost:3000/v1.
Авторизація
Захищені ендпоінти вимагають JWT-токен у заголовку:
http
Authorization: Bearer <accessToken>accessToken отримується при верифікації OTP (термін 15 хв). Для оновлення — POST /v1/auth/refresh.
Ролі
| Роль | Доступ |
|---|---|
| Гість | Публічні ендпоінти (без токена) |
user | Захищені ендпоінти (JwtAuthGuard) |
organizer | + управління своїми подіями |
admin | + адмін-ендпоінти (AdminGuard) |
Формат відповідей
Успішна відповідь:
json
{
"data": { ... },
"meta": { "total": 100, "page": 1, "limit": 20 }
}Помилка:
json
{
"statusCode": 400,
"message": "Validation failed",
"errors": ["phone must be a valid phone number"]
}Коди статусів
| Код | Значення |
|---|---|
200 | OK |
201 | Created |
400 | Bad Request (валідація) |
401 | Unauthorized (немає/прострочений токен) |
403 | Forbidden (недостатньо прав або feature flag вимкнено) |
404 | Not Found |
429 | Too Many Requests (rate limit) |
500 | Internal Server Error |
Rate limiting
| Ендпоінт | Ліміт |
|---|---|
POST /auth/otp/start | 5 запитів / 10 хв на IP |
POST /auth/otp/check | 5 запитів / 10 хв на IP |
| Всі інші | 100 запитів / хв на токен |
Версіонування
Поточна версія: v1. Майбутні версії — окремий префікс /v2/ без порушення сумісності.
Розділи документації
- Авторизація — OTP, refresh, me, logout
- Події — список, деталі, RSVP, збереження
- Бронювання — create, cancel
- Списки — bring-list, wishlist, claim
- Запрошення на подію — create, accept token
- Кола — CRUD кіл та учасників
- Реферали — stats, use-invite
- Користувачі — search, follow