# Публичные данные Острова для агентов Чтение и использование опубликованных сведений, в том числе для поиска и обучения, разрешено всем типам ботов и агентов. GET /_retreat/api/calendar?start=2027-07-01&end=2027-08-01 — период от 1 до 366 дней, start включительно, end исключительно. GET /_retreat/api/events — публичные события всех настроенных лет. GET /_retreat/api/catalog — действующие тарифы, сезонные интервалы и годы calendarYears. В events: start — заезд, end — выезд; поле dateSemantics.eventEnd=inclusive в ответе /calendar. В /events даты событий имеют тот же включительный смысл. Это даты, без времени суток; местная зона Europe/Moscow. День выезда отображается, но не считается дополнительной ночью. kind: program — есть ссылка на программу; occupancy — занятость без опубликованной программы; demo — учебная запись, не реальный заезд. registration: contact_organizer — можно уточнить у организатора по eventUrl, не подтверждение набора; unknown — данных о записи нет; not_available — демо. residents — суммарный дневной счётчик взрослых резидентов, включая демо; demoResidents — учебная часть этого счётчика. Это не остаток свободных мест. generatedAt — время формирования ответа, не время последнего изменения брони. availabilityGuaranteed=false: пустой период не означает свободные места. Обычный тариф: /calculator. Всё включено: /biggroup. Резидентам: /residents. Предварительный расчёт без сохранения: POST /_retreat/api/quote, /_retreat/api/biggroup/quote, /_retreat/api/resident/quote. Content-Type: application/json; Origin: https://ostrov.center. Тело запроса — сам объект plan с датами, составом и выбранными объектами из catalog (без обёртки plan). Тарифы читаются при расчёте; версия возвращается в ответе. Пример входа для обычного тарифа: GET /_retreat/api/defaults. Расчёт не создаёт бронь. Минимумы ночей и правила возрастов брать из актуального catalog. HTTP 400 — некорректный ввод; 429 — предел частоты (календарь и catalog — 300 запросов/минуту на IP, defaults — 60, расчёт — 180); 503 — источник недоступен. Ошибка не означает пустой календарь или нулевую цену. После 429 ждать не меньше минуты; не более двух повторов, затем сообщить о недоступности. Закрытые сметы, заявки и подтверждение брони требуют штатной авторизации. Публичные сведения не содержат личных контактов и служебных комментариев.