Вы отправляете date_from, date_to и обязательный непустой список event_types POST-запросом на /api/v3/mundane/events/search.
Три опциональных фильтра сужают отдельные семейства: bodies ограничивает sign_ingress, station и retrograde_period (по умолчанию — семь классических планет), to_signs фильтрует sign_ingress по знаку, в который входит тело, а cardinal_points сужает cardinal_ingress до конкретных сезонов.
lunation_phases определяет, какие фазы Луны вернутся — по умолчанию только новолуние и полнолуние.
Прежде чем что-либо считать, запрос оценивается по стоимости: если ваше окно, типы событий и тела оказались бы слишком дорогими для сканирования, API отказывает за миллисекунды и сообщает количество замеров, из-за которого сработал отказ, — вместо того чтобы держать воркер на многосекундном сканировании, обречённом на провал.
Всё, что прошло, возвращается в одном массиве events[], отсортированном по возрастанию datetime_utc.
Один POST, восемь семейств, проверка стоимости до запуска