Разработчикам

REST API для мультитенантных данных объектов

Двадцать три версионированных эндпоинта под /api/v1. Bearer-аутентификация, ограниченные права, лимиты на токен и журнал аудита на каждый вызов.

Аутентификация
# Generate a token in Dashboard → Integrations.
# The secret is shown once and stored as a SHA-256 hash.

curl https://kourtiva.com/api/v1/me \
  -H "Authorization: Bearer $KOURTIVA_TOKEN"

# 401 on an invalid, expired or revoked token.
# 403 when the token lacks the required ability.
# 429 once the rate limit is exceeded.

Безопасность, которая не опция

  • Секреты хранятся хешированными — утечка базы не даёт рабочего токена
  • HTTPS обязателен; обычный HTTP отклоняется, а не перенаправляется
  • Права на уровне токена: интеграция для отчётов не может писать
  • Необязательные сроки действия и мгновенный отзыв
  • Арендатор определяется на сервере — идентификатор объекта от клиента не принимается
  • Для каждого запроса пишутся метод, путь, статус, длительность и токен
Ресурсы

Что можно читать и писать

Брони

Просматривайте и фильтруйте брони по кортам, включая статус заезда.

Корты и слоты

Описания кортов и их бронируемые слоты с занятостью по датам.

Виды спорта и объекты

Виды спорта, которые вы предлагаете, и объекты при каждой площадке.

Участники

Игроки, зарегистрированные на вашем объекте, с историей броней.

Счета и платежи

Финансовые записи, связанные с породившими их бронями.

Турниры

Соревнования, зарегистрированные команды и матчи.

Посетители

Счётчики посещаемости и сводки для отчётов по загрузке.

Профиль объекта

Запись вашего объекта — арендатор, к которому ведёт токен.

Версионирование: обновления планируете вы

Всё живёт под /api/v1. Ломающие изменения выходят новой версией, а не появляются без предупреждения в той, с которой вы уже интегрировались.

Запросить доступ к API
Занятость кортов
GET /api/v1/courts/12/slots?date=2026-08-09

{
  "data": [
    { "starts_at": "08:00", "available": true  },
    { "starts_at": "09:00", "available": false },
    { "starts_at": "10:00", "available": true  }
  ]
}

Нужен эндпоинт, которого у нас нет?

Скажите, с чем интегрируетесь, и мы посмотрим.