Aller au contenu

Documentation API

Intégrez les prédictions de qualité de coucher de soleil dans vos applications

Obtenez une clé API pour suivre votre utilisation
URL de basehttps://sunset-predictor.com
Spécification OpenAPI

Démarrage rapide

Obtenez une prédiction de coucher de soleil en quelques secondes

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

Remplacez $SUNSET_API_KEY par une clé de votre tableau de bord. Les appels non authentifiés fonctionnent pour les démos rapides mais sont plus stricts et n’incluent pas les en-têtes de limitation.

Exemple de réponse

{
  "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
  }
}

Authentification

Les requêtes externes s'authentifient via l'en-tête x-api-key. Générez une clé depuis votre tableau de bord — la clé brute n'est affichée qu'une seule fois.

En-tête

x-api-key: sp_live_YOUR_API_KEY_HERE

Envoyez votre clé API dans l'en-tête de requête x-api-key à chaque appel.

Scopes

ScopeDescription
predict:readLire les prévisions de coucher de soleil (requis pour /api/predict)
usage:readLire les statistiques d'utilisation propres à cette clé (requis pour /api/usage)

Limites

Offre gratuite — 100 requêtes par jour et par clé, réinitialisées à minuit UTC.

En-têtes de réponse de limitation de débit

Chaque réponse authentifiée réussie comporte ces en-têtes afin que vous puissiez suivre votre quota en temps réel :

X-RateLimit-LimitNombre maximal de requêtes autorisées dans la fenêtre en cours
X-RateLimit-RemainingRequêtes restantes aujourd'hui
X-RateLimit-ResetHorodatage ISO 8601 de réinitialisation du quota
Retry-AfterSecondes à attendre avant de réessayer (uniquement en cas de 429)

Exemple de requête authentifiée

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

Référence des endpoints

Bac à sable API

Testez l'API directement depuis votre navigateur

Obtenir une clé →

Commence par sp_live_ et comporte 40 caractères

Stockée uniquement dans cet onglet du navigateur (sessionStorage). Effacée lorsque vous fermez l'onglet.

Aujourd’hui jusqu’à 5 jours. Laisser vide pour aujourd’hui.

URL de la requête

GET /api/v1/predict?city=Paris

Exemples de code

Exemples prêts à l'emploi dans les langages populaires

# 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"

Les exemples s’adaptent en direct aux paramètres du playground ci-dessus.

Réponses d'erreur

Erreurs courantes et leur signification

400Erreur client

Requête invalide

Paramètres manquants ou invalides. Fournissez un ville ou lat/lon.

{
  "error": "Either lat/lon or city must be provided"
}
401Authentification / autorisation

Non autorisé

Clé API manquante, mal formée ou révoquée. Envoyez une clé valide dans l'en-tête x-api-key.

{
  "error": "Invalid or revoked API key",
  "code": "unauthorized"
}
403Authentification / autorisation

Interdit

La clé est valide mais ne dispose pas du scope predict:read requis pour ce point de terminaison.

{
  "error": "Insufficient permissions. Required scope: predict:read",
  "code": "insufficientScope"
}
404Erreur client

Non trouvé

La ville spécifiée n'a pas été trouvée.

{
  "error": "City not found",
  "code": "cityNotFound"
}
429Erreur client

Trop de requêtes

Quota quotidien dépassé (100 requêtes/jour sur l'offre gratuite). Réinitialisation à minuit UTC ; consultez l'en-tête Retry-After.

{
  "error": "Daily rate limit exceeded (100 requests/day). Upgrade your plan for higher limits.",
  "code": "rateLimitExceeded",
  "retryAfter": 3600
}
500Erreur serveur

Erreur serveur

Une erreur interne du serveur s'est produite. Veuillez réessayer plus tard.

{
  "error": "Internal server error"
}
502Erreur serveur

Mauvaise passerelle

Le fournisseur de géocodage en amont a échoué. Réessayez avec un léger délai ; envisagez d'envoyer lat/lon pour ignorer le géocodage.

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

Bonnes pratiques

Utilisation et licence

Quand le plan gratuit suffit — et quand un plan payant est nécessaire.

Plan gratuit

Gratuit pour un usage personnel, loisir, domotique et de test.

  • Projets personnels et prototypes
  • Loisir et apprentissage
  • Tableaux de bord domotiques (p. ex. Home Assistant) pour un usage personnel
  • Tests et évaluation

100 requêtes/jour par clé API.

Offre Plus

Des limites personnelles plus élevées et un site sans publicité. Usage personnel uniquement — les projets commerciaux nécessitent Pro.

200 requêtes/jour par clé API, 2 clés API.

Usage commercial

L’usage commercial nécessite un plan payant — Pro ou Business.

Les plans payants offrent des limites quotidiennes plus élevées et plus de clés API.

Voir les tarifs

Home Assistant et autres intégrations domotiques restent autorisés sur le plan gratuit pour un usage personnel, non commercial.

Gardez votre clé API secrète. Utilisez-la côté serveur et ne l’intégrez jamais dans du code client public ni dans un dépôt.

Vous lancez un projet commercial ou butez sur une limite ? Contacter l'assistance