перейти до вмісту

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

Інтегруйте прогнози якості заходу сонця у свої додатки

Отримайте API ключ для відстеження використання
Базова URL-адресаhttps://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 у секреті. Використовуйте його на сервері й ніколи не вбудовуйте в публічний клієнтський код і не комітьте в репозиторій.

Робите комерційний проєкт або застрягли на ліміті? Зв'язатися з підтримкою