Присылайте нам свои события

Для организаторов, площадок и платформ, которые хотят видеть свои события на tuka.events. Куратор проверяет каждое событие перед публикацией.

Как стать поставщиком

Мы подключаем поставщиков вручную, самостоятельной регистрации нет. Напишите на [email protected]: кто вы, в каком городе и какие события проводите, ссылку на сайт и как вам удобнее их присылать. Мы выдадим личный адрес, API-ключ или и то и другое.

Три способа

Почта

Пишете своими словами на личный адрес. Настраивать ничего не нужно.

API со свободным текстом

Присылаете описание через API, а мы превращаем его в события.

API с полями

Присылаете каждое событие структурированными данными из своей системы.

Почта

Вы получите адрес вида имя[email protected]. Пишите на него как человеку: программа в тексте письма, афиша или PDF вложением. Укажите название, дату, время и место. Так же можно сообщать об изменениях: новое время, отмена, дополнительная дата.

API

Адрес: https://vendors.tuka.events/api/v1. Полная схема: openapi.json (OpenAPI 3.1). Передавайте ключ в заголовке каждого запроса и храните его как пароль. Проверить ключ можно через GET /api/v1/me, он ничего не сохраняет:

curl https://vendors.tuka.events/api/v1/me \
  -H "Authorization: Bearer $TUKA_API_KEY"

Свободный текст: POST /api/v1/letters

Самый простой способ. Один запрос может описывать много событий.

curl https://vendors.tuka.events/api/v1/letters \
  -H "Authorization: Bearer $TUKA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"subject": "Программа на декабрь",
       "text": "12 декабря, 20:00, Sofia Live Club: Вечер джаза. Билеты от 15 EUR."}'

Событие: POST /api/v1/events

Обязательны title и starts_at. Названия достаточно на одном из языков bg, en, ru, остальные напишем мы. Время местное, без смещения. Если час неизвестен, пришлите только дату. Один запрос — одна дата.

curl https://vendors.tuka.events/api/v1/events \
  -H "Authorization: Bearer $TUKA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title": {"ru": "Вечер джаза"},
       "starts_at": "2026-12-12T20:00",
       "city": "sofia",
       "venue": {"name": "Sofia Live Club", "address": "бул. Витоша 1"},
       "url": "https://example.com/jazz-night",
       "price": {"from": 15, "currency": "EUR"}}'

Площадка: POST /api/v1/venues

Только для площадки, у которой ещё нет события: событие само называет свою площадку. Обязательно поле name.

Ответы

КодЗначение
202Принято и сохранено. Обычно доходит до куратора в течение двух часов.
200Такое же содержимое уже принято ("duplicate": true). Отправлять повторно безопасно.
401Ключ недействителен или отозван.
422Поля с ошибками перечислены в error.fields. Ничего не сохранено.
429Больше примерно 30 запросов в минуту. Подождите Retry-After секунд.
503Ничего не сохранено. Повторите через минуту.

Совместимость. /api/v1 не будет меняться несовместимо. Могут появляться новые необязательные поля и новые адреса, а неизвестные поля в запросе игнорируются. Изменение, которое сломало бы интеграцию, выйдет в новой версии.