перейти к содержимому

Документация API

Интегрируйте прогнозы качества закатов в свои приложения

Получите API ключ для отслеживания использования
Базовый URLhttps://sunset-predictor.com
Спецификация OpenAPI

Быстрый старт

Получите прогноз заката за секунды

curl -H "x-api-key: $SUNSET_API_KEY" \
  "https://sunset-predictor.com/api/v1/predict?city=Paris"

Замените $SUNSET_API_KEY на ключ из вашей панели. Запросы без авторизации работают для быстрых демо, но имеют более строгие лимиты и не возвращают rate-limit заголовки.

Пример ответа

{
  "score": 78,
  "label": "High",
  "explanation": "Scattered clouds and clean air should produce vivid colors near the horizon.",
  "confidence": "high",
  "location": "Paris, FR",
  "predictionType": "sunset",
  "sunsetTime": "2026-05-26T19:42:00Z",
  "sunriseTime": "2026-05-26T04:51:00Z",
  "timezone": "Europe/Paris",
  "targetDate": "2026-05-26",
  "rawFactors": {
    "cloudCover": 15,
    "humidity": 55,
    "visibility": 18200,
    "windSpeed": 5.2,
    "windDegree": 180,
    "rainProb": 0,
    "condition": "clouds",
    "temperature": 19.4,
    "dewPoint": 10.2,
    "pressure": 1015,
    "aqi": 2
  }
}

Аутентификация

Внешние запросы аутентифицируются через заголовок x-api-key. Создайте ключ в панели управления — необработанный ключ показывается ровно один раз.

Заголовок

x-api-key: sp_live_YOUR_API_KEY_HERE

Передавайте свой API-ключ в заголовке запроса x-api-key при каждом вызове.

Области доступа

Область доступаОписание
predict:readЧтение прогнозов заката (требуется для /api/predict)
usage:readЧтение собственной статистики использования ключа (требуется для /api/usage)

Лимиты

Бесплатный тариф — 100 запросов в день на ключ, сброс в полночь по UTC.

Заголовки ответа об ограничении частоты запросов

Каждый успешный аутентифицированный ответ содержит эти заголовки, чтобы вы могли отслеживать квоту в реальном времени:

X-RateLimit-LimitМаксимальное число запросов, разрешённых в текущем окне
X-RateLimit-RemainingЗапросов осталось на сегодня
X-RateLimit-ResetВременная метка ISO 8601, когда квота сбрасывается
Retry-AfterСекунд ожидания перед повторной попыткой (только при 429)

Пример аутентифицированного запроса

curl -H "x-api-key: sp_live_YOUR_API_KEY_HERE" \
  "https://sunset-predictor.com/api/v1/predict?city=Paris"

Справочник эндпоинтов

Песочница API

Тестируйте API прямо из браузера

Получить ключ →

Начинается с sp_live_ и имеет длину 40 символов

Хранится только в этой вкладке браузера (sessionStorage). Очищается при закрытии вкладки.

Сегодня — на 5 дней вперёд. Оставьте пустым для сегодня.

URL запроса

GET /api/v1/predict?city=Paris

Примеры кода

Готовые примеры на популярных языках

# Set your API key once (mint from /dashboard/api-keys)
export SUNSET_API_KEY="sp_live_YOUR_API_KEY_HERE"

curl -H "x-api-key: $SUNSET_API_KEY" \
  "https://sunset-predictor.com/api/v1/predict?city=Paris"

Примеры обновляются в реальном времени при изменении параметров playground.

Ответы с ошибками

Типичные ошибки и их значение

400Ошибка клиента

Неверный запрос

Отсутствуют или неверные параметры. Укажите город или lat/lon.

{
  "error": "Either lat/lon or city must be provided"
}
401Авторизация / доступ

Не авторизовано

Отсутствующий, некорректный или отозванный API-ключ. Передайте действительный ключ в заголовке x-api-key.

{
  "error": "Invalid or revoked API key",
  "code": "unauthorized"
}
403Авторизация / доступ

Запрещено

Ключ действителен, но не имеет области доступа predict:read, необходимой для этого эндпоинта.

{
  "error": "Insufficient permissions. Required scope: predict:read",
  "code": "insufficientScope"
}
404Ошибка клиента

Не найдено

Указанный город не найден.

{
  "error": "City not found",
  "code": "cityNotFound"
}
429Ошибка клиента

Слишком много запросов

Дневная квота превышена (100 запросов/день на бесплатном тарифе). Сброс в полночь по UTC; проверьте заголовок Retry-After.

{
  "error": "Daily rate limit exceeded (100 requests/day). Upgrade your plan for higher limits.",
  "code": "rateLimitExceeded",
  "retryAfter": 3600
}
500Ошибка сервера

Ошибка сервера

Произошла внутренняя ошибка сервера. Попробуйте позже.

{
  "error": "Internal server error"
}
502Ошибка сервера

Неверный шлюз

Сбой вышестоящего провайдера геокодирования. Повторите попытку с небольшой задержкой; рассмотрите возможность передачи lat/lon, чтобы пропустить геокодирование.

{
  "error": "Unable to look up city location",
  "code": "geocodingFailed"
}

Лучшие практики

Использование и лицензия

Когда хватает бесплатного тарифа — и когда нужен платный план.

Бесплатный тариф

Бесплатно для личного, хобби, умного дома и тестового использования.

  • Личные проекты и прототипы
  • Хобби и обучение
  • Панели умного дома (напр. Home Assistant) для личного использования
  • Тестирование и оценка

100 запросов в день на ключ API.

Тариф Plus

Повышенные лимиты для личного использования и сайт без рекламы. Только личное использование — для коммерческих проектов нужен Pro.

200 запросов в день на каждый API-ключ, 2 API-ключа.

Коммерческое использование

Коммерческое использование требует платного плана — Pro или Business.

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

Смотреть тарифы

Home Assistant и другие интеграции умного дома остаются разрешёнными на бесплатном тарифе для личного, некоммерческого использования.

Храните ключ API в секрете. Используйте его на стороне сервера и никогда не встраивайте в публичный клиентский код и не коммитьте в репозиторий.

Делаете коммерческий проект или столкнулись с лимитом, который не можете обойти? Связаться с поддержкой