Изпращайте ни събитията си

За организатори, зали и платформи, които искат събитията им да са на 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": {"bg": "Вечер на джаза"},
       "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 няма да се променя несъвместимо. Може да се появят нови незадължителни полета и нови адреси, а непознатите полета в заявката се пренебрегват. Промяна, която би счупила интеграция, ще е в нова версия.