Gourde Haïtienne (HTG) vs Dollar Américain (USD)
Intégrez les taux de change HTG/USD dans vos applications avec notre API sécurisée et optimisée.
L'API publique /api/taux/latest est accessible sans authentification mais avec des limites de requêtes. Pour un usage développeur avancé avec plus de requêtes, utilisez une clé API.
| Type | Clé API | Limite |
|---|---|---|
| Public | Aucune | 100 requêtes / 15 min |
| Gratuit | dev-demo-key-001 |
1 000 requêtes / jour |
| Pro | dev-pro-key-002 |
10 000 requêtes / jour |
X-API-Key: dev-demo-key-001
Pour protéger notre infrastructure et celle de la BRH, des limites sont appliquées. Les headers de réponse incluent vos quotas restants.
| Header | Description | Exemple |
|---|---|---|
X-RateLimit-Limit |
Limite quotidienne | 1000 |
X-RateLimit-Remaining |
Requêtes restantes | 999 |
X-RateLimit-Reset |
Date de reset | 2026-03-28T23:59:59Z |
HTTP 429 - Attendez le reset quotidien ou passez à un tier supérieur.
| Méthode | Endpoint | Auth | Description |
|---|---|---|---|
GET |
/api/taux/latest |
Non | Taux marché bancaire (rate limited) |
GET |
/api/taux/informel |
Non | Taux marché informel (rate limited) |
GET |
/api/health |
Non | État du service et du cache |
GET |
/api/dev/rates |
Clé API | Taux avec métadonnées complètes |
POST |
/api/dev/refresh |
Clé Pro | Forcer le rafraîchissement BRH |
Implémentez l'API dans votre stack technique préférée.
Taux du marché bancaire. Les données sont servies depuis le cache local (30 min TTL) pour protéger le serveur BRH.
// JavaScript - Fetch API
const response = await fetch('/api/taux/latest');
const data = await response.json();
console.log('Achat:', data.taux_achat);
console.log('Vente:', data.taux_vente);
console.log('Source:', data.source);
{
"devise_source": "USD",
"devise_cible": "HTG",
"taux_achat": 130.64,
"taux_vente": 131.53,
"marche_informel_achat": 131.00,
"marche_informel_vente": 136.00,
"date_mise_a_jour": "2026-03-27T10:00:00Z",
"source": "BRH - Banque de la Republique d'Haiti"
}
Route développeur avec métadonnées complètes. Nécessite une clé API via header X-API-Key.
// JavaScript avec API Key
const response = await fetch('/api/dev/rates', {
headers: {
'X-API-Key': 'dev-demo-key-001'
}
});
const data = await response.json();
console.log('Tier:', data._meta.tier);
console.log('Requêtes:', data._meta.requestNumber);
// Lire les headers de quota
const remaining = response.headers.get('X-RateLimit-Remaining');
console.log('Quota restant:', remaining);
{
"devise_source": "USD",
"taux_achat": 130.64,
"taux_vente": 131.53,
"_meta": {
"tier": "free",
"requestNumber": 42,
"dailyLimit": 1000,
"cached": true
}
}
Vérifie l'état du service et l'âge du cache.
curl http://localhost:3000/api/health
{
"status": "OK",
"cacheAgeMinutes": 12,
"lastFetch": "2026-03-28T03:26:31.676Z"
}
Notre architecture garantit la disponibilité du service tout en protégeant le serveur de la BRH contre les surcharges.
Les données BRH sont mises en cache pendant 30 minutes. Quelle que soit la charge utilisateur (10 000 req/min), nous ne faisons qu'1 requête BRH toutes les 30 minutes.
Même avec 10 000 utilisateurs simultanés, une seule requête vers BRH est autorisée à la fois. Les autres attendent le résultat en cache.
Cron job toutes les 30 minutes pour rafraîchir les données. Aucun scraping n'a lieu lors des requêtes utilisateur.
Si BRH est inaccessible, nous servons les données "stale" pendant 60 minutes supplémentaires pour garantir la continuité de service.
Limitation à 100 requêtes par IP sur 15 minutes pour les routes publiques. Protection contre le spam et les attaques DDoS.
Authentification par clé API avec quotas journaliers trackés. Reset automatique à minuit UTC.
Sans cache : 10 000 développeurs × 1 req/min = 600 000 requêtes BRH/heure (DDoS involontaire)
Avec cache : 2 requêtes BRH/heure (réduction de 99.9997%)