🚀 Vue d'ensemble

Bienvenue dans l'API AIR CANAAN. Cette API REST vous permet d'intégrer nos services de fret aérien dans vos applications.

📍 Base URL

/api/v1

🔒 Format

JSON (application/json)

⚡ Rate Limit

1000 requêtes/jour

📧 Support

api@aircanaan.com

🔐 Authentification

Toutes les requêtes authentifiées nécessitent une clé API valide.

Obtenir une clé API

Connectez-vous à votre espace client et accédez aux paramètres pour générer une clé API.

Utiliser votre clé

Ajoutez votre clé dans le header X-API-Key :

// Header HTTP X-API-Key: ak_votre_cle_api_ici // Ou en paramètre de requête GET /api/v1/bookings?api_key=ak_votre_cle_api_ici

Exemple cURL

curl -X GET "https://votre-domaine.com/api/v1/bookings" \ -H "X-API-Key: ak_votre_cle_api_ici" \ -H "Content-Type: application/json"

⚡ Limites de requêtes

Pour garantir la qualité du service, l'API applique des limites de requêtes.

Plan Limite Réinitialisation
Standard 1 000 requêtes/jour Minuit UTC
Premium 10 000 requêtes/jour Minuit UTC

En cas de dépassement, l'API retourne une erreur 429 Too Many Requests.

📍 Tracking

Suivez vos expéditions en temps réel.

GET /tracking/{awb} Suivre une expédition 🔑 Auth

Paramètres

NomTypeDescription
awbrequis string Numéro AWB (ex: CAN-2026-0001)

Réponse

{ "success": true, "data": { "awb": "CAN-2026-0001", "status": "inTransit", "origin": "DLA", "destination": "NDJ", "weight": 250, "tracking": [ { "date": "2026-01-13 10:30", "status": "inTransit", "location": "Douala Airport", "description": "En transit vers N'Djamena" } ] } }
GET /tracking/batch Suivre plusieurs expéditions 🔑 Auth

Paramètres Query

NomTypeDescription
awbsrequis string Liste de numéros AWB séparés par des virgules (max 50)

Exemple

GET /api/v1/tracking/batch?awbs=CAN-2026-0001,CAN-2026-0002,CAN-2026-0003

📦 Réservations

Gérez vos réservations de fret.

GET /bookings Liste des réservations 🔑 Auth

Paramètres Query

NomTypeDescription
status string Filtrer par statut (draft, confirmed, inTransit, delivered, cancelled)
from date Date de début (YYYY-MM-DD)
to date Date de fin (YYYY-MM-DD)
limit integer Nombre max de résultats (défaut: 50, max: 100)
offset integer Offset pour pagination
POST /bookings Créer une réservation 🔑 Auth

Corps de la requête

{ "origin": "DLA", // requis "destination": "NDJ", // requis "weight": 250, // requis (kg) "pieces": 5, "description": "Pièces détachées", "shipmentDate": "2026-01-15", "handling": "standard", "shipper": { "name": "Expéditeur SA", "address": "123 Rue Commerce, Douala", "phone": "+237 6XX XXX XXX" }, "consignee": { "name": "Destinataire SARL", "address": "456 Avenue Principale, N'Djamena", "phone": "+235 XX XX XX XX" } }

✈️ Routes & Tarification

Consultez les routes disponibles et estimez vos tarifs.

GET /routes Liste des routes Public

Aucune authentification requise.

Réponse

{ "success": true, "count": 8, "data": [ { "origin": "DLA", "destination": "NDJ", "originCity": "Douala", "destCity": "N'Djamena", "baseRate": 850, "currency": "FCFA/kg" } ] }
GET /pricing/estimate Estimer un tarif Public

Paramètres Query

NomTypeDescription
originrequis string Code aéroport origine (DLA, NDJ, BGF, etc.)
destinationrequis string Code aéroport destination
weightrequis number Poids en kg
handling string Type de manutention (standard, fragile, dangerous, perishable)

Exemple

GET /api/v1/pricing/estimate?origin=DLA&destination=NDJ&weight=100&handling=standard

❌ Codes d'erreur

L'API utilise les codes HTTP standards et retourne des erreurs structurées.

CodeErreurDescription
400 VALIDATION_ERROR Paramètres invalides ou manquants
401 API_KEY_REQUIRED Clé API manquante
401 INVALID_API_KEY Clé API invalide ou révoquée
404 NOT_FOUND Ressource non trouvée
429 RATE_LIMIT_EXCEEDED Limite de requêtes atteinte
500 SERVER_ERROR Erreur serveur interne

Format d'erreur

{ "success": false, "error": "VALIDATION_ERROR", "message": "Paramètres requis: origin, destination, weight" }