Перейти до основного вмісту
REST API v1

Документація API

REST API + webhooks. Все, що потрібно, щоб приєднати ваші системи до MiEspacio за день.

Початок роботи

Базова URL-адреса

Усі запити до API виконуються на наступну базову URL-адресу:

/api//v1

Публічні ендпоінти доступні без автентифікаціі. Автентифіковані ендпоінти потребують Bearer-токен, отриманий через ендпоінт входу.

Ендпоінти

Публічні ендпоінти

Ці ендпоінти доступні без автентифікаціі.

МетодURLОписАвт.
GET/companiesСписок компанійНі
GET/companies/{slug}Деталі компанііНі
GET/companies/{slug}/servicesПослуги компанііНі
GET/companies/{slug}/reviewsВідгуки про компаніюНі
GET/companies/{uuid}/booking/availabilityДоступність бронюванняНі
POST/companies/{uuid}/bookingsСтворити бронюванняНі
GET/restaurantsСписок ресторанівНі
GET/eventsСписок подійНі
GET/vacanciesСписок вакансійНі
GET/blog/postsПублікаціі блогуНі
GET/business-typesТипи бізнесуНі
GET/platform-statsСтатистика платформиНі

Ендпоінти автентифікаціі

Використовуються для отримання та управління токенами доступу.

МетодURLОписАвт.
POST/auth/loginУвійтиНі
POST/auth/registerЗареєструватисяНі
POST/auth/refreshОновити токенТак
GET/auth/meПоточний користувачТак

Автентифікація

MiEspacio використовує Bearer-токен автентифікацію на базі Laravel Sanctum. Для доступу до автентифікованих ендпоінтів:

  1. Надішліть POST-запит на /auth/login з вашими обліковими даними.
  2. Додайте отриманий токен у заголовок Authorization наступних запитів.
  3. Оновіть токен до закінчення терміну діі через ендпоінт оновлення.

Приклад заголовку:

Authorization: Bearer your-token-here

Ліміти запитів

Запити до API обмежені за IP-адресою для забезпечення справедливого використання.

ОбластьЛіміт
Публічні ендпоінти2 000 запитів/хв
Ендпоінти бронювання300 запитів/хв
Ендпоінти автентифікаціі25 запитів/хв

При перевищенні ліміту ви отримаєте відповідь 429 Too Many Requests. Заголовок Retry-After вказує скільки секунд чекати.

Формат відповіді

Усі відповіді повертаються у форматі JSON. Успішні відповіді зазвичай мають таку структуру:

{
  "data": [
    {
      "id": 1,
      "name": "La Maison Barcelona",
      "slug": "la-maison-barcelona"
    }
  ],
  "meta": {
    "current_page": 1,
    "last_page": 4,
    "per_page": 20,
    "total": 78
  }
}

Пагіновані відповіді містять стандартні метадані пагінаціі Laravel (current_page, last_page, per_page, total).

Коди помилок

API використовує стандартні HTTP-коди стану для позначення результату запиту.

КодЗначення
200OK — Запит виконано успішно
201Created — Ресурс створено успішно
400Bad Request — Некоректні параметри запиту
401Unauthorized — Відсутня або недійсна автентифікація
403Forbidden — Недостатньо прав доступу
404Not Found — Ресурс не існує
422Unprocessable Entity — Помилки валідаціі
429Too Many Requests — Ліміт запитів перевищено
500Internal Server Error — Щось пішло не так на сервері

Відповіді з помилками містять повідомлення та, де це застосовно, структурований код помилки:

{
  "message": "The selected time slot is no longer available.",
  "errors": {
    "slot": [
      "Please choose another available time."
    ]
  }
}

Потрібен ключ API?

Зверніться до нашоі команди для запиту доступу до API для вашого додатку.

Зв'язатися