DĂ©marrage rapide de l’API

IntĂ©grez la recherche de vols directs d’adresse Ă  adresse dans votre propre produit grĂące Ă  l’API REST AirportFusion. Ce guide vous accompagne de zĂ©ro jusqu’à votre premiĂšre requĂȘte rĂ©ussie.

1. Créez un compte et une clé API

  1. Inscrivez-vous (ou connectez-vous) et ouvrez le tableau de bord développeur.
  2. Allez dans ClĂ©s API → CrĂ©er une clĂ©, donnez-lui un nom (p. ex. « staging ») et choisissez un plan — le plan Free ne nĂ©cessite aucune coordonnĂ©e bancaire.
  3. Copiez la clĂ© immĂ©diatement : elle n’est affichĂ©e qu’une seule fois. Nous n’en stockons qu’un hachage.

Les clés ressemblent à af_live_xxxxxxxx
. Les 12 premiers caractÚres (le préfixe) restent visibles dans votre tableau de bord pour vous permettre de distinguer vos clés.

2. Authentifiez-vous

Envoyez la clĂ© avec chaque requĂȘte, soit comme jeton Bearer, soit dans un en-tĂȘte X-Api-Key :

curl -H "Authorization: Bearer af_live_YOUR_KEY" \
  "https://your-airportfusion-host/api/v1/search?origin=Lyon&destination=Lisbon&originRadiusKm=100&destRadiusKm=150"

3. Votre premiĂšre recherche

GET /api/v1/search accepte :

| ParamĂštre | Obligatoire | Description | | --- | --- | --- | | origin | oui | Adresse, ville, lieu emblĂ©matique ou lat,lon | | destination | oui | Identique Ă  origin | | originRadiusKm | oui | L’une des valeurs 50, 100, 150, 200, 300, 500, 1000 | | destRadiusKm | oui | MĂȘmes options | | departureDate | non | YYYY-MM-DD, pas dans le passĂ© | | passengers | non | 1–9, 1 par dĂ©faut | | locale | non | en, fr, es, zh — dĂ©termine la langue des conseils IA |

4. Lisez la réponse

Tous les points de terminaison renvoient une enveloppe cohérente :

{
  "ok": true,
  "data": {
    "searchId": "
",
    "origin": { "displayName": "Lyon, France", "lat": 45.76, "lon": 4.83 },
    "destination": { "displayName": "Lisboa, Portugal", "lat": 38.72, "lon": -9.14 },
    "originAirports": [ { "iata": "LYS", "distanceKm": 22.1 } ],
    "destinationAirports": [ { "iata": "LIS", "distanceKm": 6.9 } ],
    "routes": [
      {
        "id": "
",
        "flight": { "airlineCode": "TP", "estimatedDurationMinutes": 155, "estimatedPrice": 178.0 },
        "totals": { "estimatedCost": 214.5, "estimatedMinutes": 305, "currency": "EUR" },
        "score": 8.7
      }
    ],
    "meta": { "routeCount": 12, "durationMs": 840 }
  }
}

Les erreurs utilisent la mĂȘme enveloppe avec ok: false :

{ "ok": false, "error": { "code": "validation_error", "message": "originRadiusKm must be one of 
" } }

5. Limites de débit et quotas

Chaque rĂ©ponse inclut des en-tĂȘtes de limitation de dĂ©bit :

  • X-RateLimit-Limit, X-RateLimit-Remaining — votre fenĂȘtre par minute ;
  • en cas de 429, Retry-After vous indique quand rĂ©essayer.

Les quotas mensuels se réinitialisent le 1er de chaque mois calendaire (UTC). Suivez votre consommation en temps réel dans le tableau de bord.

6. Codes d’erreur Ă  gĂ©rer

| HTTP | Code | Signification | | --- | --- | --- | | 401 | invalid_api_key | ClĂ© manquante, rĂ©voquĂ©e ou malformĂ©e | | 422 | validation_error | ParamĂštres invalides — dĂ©tails dans error.details | | 429 | rate_limited | Limite par minute atteinte — respectez Retry-After | | 429 | quota_exceeded | Quota mensuel Ă©puisĂ© — passez Ă  un plan supĂ©rieur ou patientez | | 500 | internal_error | Notre faute — rĂ©essayez sans risque avec un backoff |

7. Bonnes pratiques

  • Mettez en cache les recherches identiques de votre cĂŽtĂ© pendant 24 heures au maximum.
  • N’oubliez pas que chaque valeur est une estimation — prĂ©sentez-la comme telle Ă  vos utilisateurs.
  • Les intĂ©grations Free/Starter/Pro doivent afficher une attribution « Powered by AirportFusion » (voir les Conditions d’utilisation de l’API).

Des questions ? Le canal d’assistance dĂ©veloppeur de votre tableau de bord est le moyen le plus rapide de nous joindre.

DĂ©marrage rapide de l’API — Aide AirportFusion