LUME EXCHANGE RATES / API REFERENCE

Documentation API

La source configurée est Fournisseur externe de taux de change. Les réponses précisent la source et l’heure de publication. Les devises disponibles proviennent des données réelles.

Base URLhttps://lumeexchangerates.com

Présentation

Lume Exchange Rates réunit comparaison, conversion et historique pour les voyages, les prix internationaux et les produits.

La source configurée est Fournisseur externe de taux de change. Les réponses précisent la source et l’heure de publication. Les devises disponibles proviennent des données réelles.

HTTPSJSONUTF-8GET / POSTUTC

Démarrage rapide

Consultez d’abord le catalogue des devises, puis choisissez anchor et targets. Les champs et codes sont identiques dans toutes les langues.

cURL
curl --request GET 'https://lumeexchangerates.com/v1/quotes?anchor=USD&targets=EUR,JPY'
JavaScript · browser
const response = await fetch('/v1/quotes?anchor=USD&targets=EUR,JPY', {
  credentials: 'same-origin'
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const { meta, anchor, data } = await response.json();
console.log(anchor, meta.as_of, data);

L’exemple du navigateur utilise la même origine. Les requêtes cURL et serveur vers un site privé nécessitent une autorisation ; l’URL ne contourne pas la connexion.

Accès et authentification

L’accès suit les autorisations du site et la session du navigateur. Pas encore de clés API client, d’authentification Bearer client ou d’API publique entre origines. Gardez l’App ID du fournisseur sur le serveur.

ParamètreTypeDescription
Base URLURLhttps://lumeexchangerates.com
Content-Typeheaderapplication/json
Customer API key—Cette préversion hébergée utilise la session connectée du navigateur. Elle ne délivre pas encore de clés API individuelles.
Provider App IDserver secretOPEN_EXCHANGE_RATES_APP_ID
CORSsame-originAucun en-tête autorisant les requêtes entre origines n’est actuellement fourni.

Authorization: Token est réservé au serveur Lume Exchange Rates pour contacter Fournisseur externe de taux de change, et non à l’authentification des clients. Le contrôle d’accès peut renvoyer du HTML ou une redirection : vérifiez le statut HTTP et Content-Type.

Points de terminaison

MethodPathDescription
GET/v1/currenciesTous les symboles disposant de taux actuels, avec les noms du fournisseur. Inclut les devises alternatives et métaux disponibles.
GET/v1/quotesSymbole de base ; USD par défaut. Tous les symboles actuels du fournisseur sont acceptés.
GET/v1/exchangeMontant numérique positif ou nul à convertir.
GET/v1/historyConsultez une date avec /v1/history et une période avec /v1/series.
GET/v1/seriesConsultez une date avec /v1/history et une période avec /v1/series.
GET/v1/candlesOHLC
GET/v1/capabilitiesDisponibilité
GET/api/rates/latestDernier taux publié
GET/api/currenciesDevise
GET/api/rates/historyGraphiques
GET/api/rates/previousJour UTC précédent
POST/api/convertConvertisseur

/v1 propose des requêtes compactes ; /api fournit les contrats de taux actuels, d’historique et de conversion du site. Leurs valeurs par défaut et formats de réponse diffèrent.

GET /v1/currencies

Tous les symboles disposant de taux actuels, avec les noms du fournisseur. Inclut les devises alternatives et métaux disponibles.

Paramètre: —

cURL
curl --request GET 'https://lumeexchangerates.com/v1/currencies'

Les valeurs et dates illustrent la structure, pas les taux actuels. Les listes peuvent être abrégées. Utilisez l’explorateur API pour consulter les données réelles.

JSON
{
  "meta": {
    "mode": "provider",
    "source": "Fournisseur externe de taux de change",
    "source_url": "https://openexchangerates.org/",
    "as_of": "2026-01-01T00:00:00.000Z",
    "fetched_at": "2026-01-01T00:00:05.000Z",
    "currency_count": 3,
    "includes_alternative": true,
    "refresh_interval_seconds": 300,
    "provider_plan": "Unlimited",
    "notice": "Illustrative response; not live rates."
  },
  "data": [
    {
      "code": "USD",
      "name": "United States Dollar"
    },
    {
      "code": "EUR",
      "name": "Euro"
    },
    {
      "code": "JPY",
      "name": "Japanese Yen"
    }
  ]
}
ParamètreTypeDescription
data[].codestringCode en majuscules. Les actifs alternatifs peuvent dépasser trois caractères ou contenir des traits de soulignement.
data[].namestringNom de devise fourni par le fournisseur, ou code si le nom est absent.

GET /v1/quotes

Symbole de base ; USD par défaut. Tous les symboles actuels du fournisseur sont acceptés.

ParamètreTypeObligatoireValeur par défautDescription
anchorstringFacultatifUSDSymbole de base ; USD par défaut. Tous les symboles actuels du fournisseur sont acceptés.
targetsstringFacultatiftoutesSymboles cibles séparés par des virgules. Omettez ce paramètre pour renvoyer tous les symboles disponibles.
cURL
curl --request GET 'https://lumeexchangerates.com/v1/quotes?anchor=USD&targets=EUR,JPY'

Les valeurs et dates illustrent la structure, pas les taux actuels. Les listes peuvent être abrégées. Utilisez l’explorateur API pour consulter les données réelles.

JSON
{
  "meta": {
    "mode": "provider",
    "source": "Fournisseur externe de taux de change",
    "source_url": "https://openexchangerates.org/",
    "as_of": "2026-01-01T00:00:00.000Z",
    "fetched_at": "2026-01-01T00:00:05.000Z",
    "currency_count": 3,
    "includes_alternative": true,
    "refresh_interval_seconds": 300,
    "provider_plan": "Unlimited",
    "notice": "Illustrative response; not live rates."
  },
  "anchor": "USD",
  "data": [
    {
      "currency": "EUR",
      "value": 0.9
    },
    {
      "currency": "JPY",
      "value": 150
    }
  ]
}

Exemple : /v1/quotes?anchor=EUR&targets=USD,JPY. value représente les unités cibles par unité de base. Les doublons sont supprimés ; les codes vides, en minuscules ou indisponibles renvoient 400.

ParamètreTypeDescription
anchorstringSymbole de base ; USD par défaut. Tous les symboles actuels du fournisseur sont acceptés.
data[].currencystringVers
data[].valuenumberrates[currency] / rates[anchor]

GET /v1/exchange

Montant numérique positif ou nul à convertir.

ParamètreTypeObligatoireValeur par défautDescription
fromstringFacultatifUSDSymbole de la devise source ; USD par défaut.
tostringFacultatifKRWSymbole de la devise cible ; KRW par défaut.
quantitynumberFacultatif1Montant numérique positif ou nul à convertir.
cURL
curl --request GET 'https://lumeexchangerates.com/v1/exchange?from=USD&to=EUR&quantity=100'

Les valeurs et dates illustrent la structure, pas les taux actuels. Les listes peuvent être abrégées. Utilisez l’explorateur API pour consulter les données réelles.

JSON
{
  "meta": {
    "mode": "provider",
    "source": "Fournisseur externe de taux de change",
    "source_url": "https://openexchangerates.org/",
    "as_of": "2026-01-01T00:00:00.000Z",
    "fetched_at": "2026-01-01T00:00:05.000Z",
    "currency_count": 3,
    "includes_alternative": true,
    "refresh_interval_seconds": 300,
    "provider_plan": "Unlimited",
    "notice": "Illustrative response; not live rates."
  },
  "data": {
    "from": "USD",
    "to": "EUR",
    "quantity": 100,
    "rate": 0.9,
    "result": 90
  }
}

Exemple : /v1/exchange?from=USD&to=EUR&quantity=100. Précisez toujours from et to. Cette ancienne route GET utilise KRW comme cible par défaut. Valeurs vides, négatives, NaN, infinies ou dépassements de capacité renvoient 400.

ParamètreTypeDescription
data.ratenumberrates[to] / rates[from]
data.resultnumberquantity × rate

GET /api/rates/latest

Dernier taux publié

Paramètre: —

cURL
curl --request GET 'https://lumeexchangerates.com/api/rates/latest'

Les valeurs et dates illustrent la structure, pas les taux actuels. Les listes peuvent être abrégées. Utilisez l’explorateur API pour consulter les données réelles.

JSON
{
  "meta": {
    "provider": "Fournisseur externe de taux de change",
    "kind": "latest_published",
    "provider_timestamp": 1767225600,
    "published_at": "2026-01-01T00:00:00.000Z",
    "expected_interval_seconds": 300,
    "lag_seconds": 5,
    "stale": false,
    "timezone": "Asia/Seoul",
    "fetched_at": "2026-01-01T00:00:05.000Z",
    "persistent_storage": false
  },
  "data": {
    "base": "USD",
    "rates": {
      "USD": 1,
      "EUR": 0.9,
      "JPY": 150
    }
  }
}
ParamètreTypeDescription
data.basestringUSD
data.ratesobjectTous les taux disponibles relatifs à USD ; vérifiez les codes dans la dernière réponse.
meta.provider_timestampintegerUTC · UNIX seconds
meta.published_atstringISO 8601 · UTC
meta.fetched_atstringHeure de récupération du serveur, distincte de la publication du fournisseur.
meta.expected_interval_secondsintegerseconds
meta.stalebooleantrue si l’ancienneté dépasse max(3 × intervalle prévu, 900 secondes).
meta.lag_secondsintegerSecondes écoulées depuis la publication du fournisseur.
meta.persistent_storagebooleanIndique si le service de collecte persistante est connecté.
meta.kindstringlatest_published | utc_daily

GET /api/currencies

Devise

ParamètreTypeObligatoireValeur par défautDescription
langstringFacultatifenen / ko / ja / zh / es / hi / bn / de / fr / nl / pt / it / ru / vi / th / ar / id / ur
cURL
curl --request GET 'https://lumeexchangerates.com/api/currencies?lang=en'

Les valeurs et dates illustrent la structure, pas les taux actuels. Les listes peuvent être abrégées. Utilisez l’explorateur API pour consulter les données réelles.

JSON
{
  "meta": {
    "provider": "Fournisseur externe de taux de change",
    "kind": "latest_published",
    "provider_timestamp": 1767225600,
    "published_at": "2026-01-01T00:00:00.000Z",
    "expected_interval_seconds": 300,
    "lag_seconds": 5,
    "stale": false,
    "timezone": "Asia/Seoul",
    "fetched_at": "2026-01-01T00:00:05.000Z",
    "persistent_storage": false
  },
  "data": [
    {
      "code": "USD",
      "name": "US Dollar"
    },
    {
      "code": "EUR",
      "name": "Euro"
    }
  ]
}

Les noms utilisent Intl.DisplayNames. Les actifs inconnus conservent leur code. Seuls les codes présents dans les données actuelles sont renvoyés.

GET /api/rates/history

Consultez une date avec /v1/history et une période avec /v1/series.

ParamètreTypeObligatoireValeur par défautDescription
fromstringFacultatifUSDDe
tostringFacultatifEURVers
periodenumFacultatif1M1D | 1W | 1M | 3M | 1Y
cURL
curl --request GET 'https://lumeexchangerates.com/api/rates/history?from=USD&to=EUR&period=1W'

Les valeurs et dates illustrent la structure, pas les taux actuels. Les listes peuvent être abrégées. Utilisez l’explorateur API pour consulter les données réelles.

JSON
{
  "meta": {
    "kind": "utc_daily",
    "from": "USD",
    "to": "EUR",
    "period": "1W",
    "provider": "Fournisseur externe de taux de change",
    "persistent_storage": false
  },
  "data": [
    {
      "time": "2026-01-01",
      "value": 0.9
    },
    {
      "time": "2026-01-02",
      "value": 0.91
    }
  ]
}

1W commence il y a sept jours ; 1M, 3M et 1Y suivent le calendrier. Les données quotidiennes finissent hier et excluent le jour UTC inachevé. Les fins de mois et années bissextiles sont ajustées. Les longues périodes sont découpées par mois, triées, fusionnées et dédupliquées.

ParamètreTypeDescription
data[].timestring | integerQuotidien : YYYY-MM-DD (UTC). Intrajournalier : secondes UNIX.
data[].valuenumberrates[to] / rates[from]
meta.kindstringutc_daily | intraday
JSON
{
  "meta": {
    "kind": "intraday",
    "persistent_storage": false
  },
  "data": []
}

Sans service de collecte, 1D renvoie HTTP 200 et une liste vide. Ce n’est ni une erreur ni des données à la minute. Une devise absente à une période historique peut ne pas être consultable.

GET /api/rates/previous

Jour UTC précédent

ParamètreTypeObligatoireValeur par défautDescription
fromstringFacultatifUSDDe
tostringFacultatifEURVers
cURL
curl --request GET 'https://lumeexchangerates.com/api/rates/previous?from=USD&to=EUR'

Les valeurs et dates illustrent la structure, pas les taux actuels. Les listes peuvent être abrégées. Utilisez l’explorateur API pour consulter les données réelles.

JSON
{
  "meta": {
    "kind": "utc_daily",
    "reference_date": "2026-01-01",
    "reference_timestamp": "2026-01-01T23:59:59Z"
  },
  "data": {
    "from": "USD",
    "to": "EUR",
    "rate": 0.9,
    "rates": {
      "USD": 1,
      "EUR": 0.9
    }
  }
}

La comparaison utilise la référence du jour UTC précédent. reference_timestamp est la fin logique du jour, pas l’heure réelle de publication. Variation : (actuel − référence) / référence × 100.

POST /api/convert

Convertisseur

ParamètreTypeObligatoireValeur par défautDescription
Content-TypeheaderObligatoireapplication/jsonapplication/json
amountnumberObligatoire—0 ≤ amount ≤ 1e15; finite
fromstringObligatoire—De
tostringObligatoire—Vers
cURL
curl --request POST 'https://lumeexchangerates.com/api/convert' \
  --header 'Content-Type: application/json' \
  --data '{"amount":100,"from":"USD","to":"EUR"}'

Les valeurs et dates illustrent la structure, pas les taux actuels. Les listes peuvent être abrégées. Utilisez l’explorateur API pour consulter les données réelles.

JSON
{
  "meta": {
    "provider": "Fournisseur externe de taux de change",
    "kind": "latest_published",
    "provider_timestamp": 1767225600,
    "published_at": "2026-01-01T00:00:00.000Z",
    "expected_interval_seconds": 300,
    "lag_seconds": 5,
    "stale": false,
    "timezone": "Asia/Seoul",
    "fetched_at": "2026-01-01T00:00:05.000Z",
    "persistent_storage": false
  },
  "data": {
    "amount": 100,
    "from": "USD",
    "to": "EUR",
    "rate": 0.9,
    "result": 90
  }
}

Envoyez amount comme nombre JSON : la chaîne "100" renvoie 400. Les devises doivent exister dans l’instantané actuel. Ce point de terminaison calcule une valeur ; il n’exécute aucun virement ni échange.

GET /v1/history

Consultez une date avec /v1/history et une période avec /v1/series.

ParamètreTypeObligatoireValeur par défautDescription
dateYYYY-MM-DDObligatoire—1999-01-01 ≤ date ≤ UTC today
anchorstringFacultatifUSDDe
targetsCSVFacultatifallVers
cURL
curl --request GET 'https://lumeexchangerates.com/v1/history?date=2026-01-01&anchor=EUR&targets=USD,JPY'

Les valeurs et dates illustrent la structure, pas les taux actuels. Les listes peuvent être abrégées. Utilisez l’explorateur API pour consulter les données réelles.

JSON
{
  "meta": {
    "date": "2026-01-01",
    "published_at": "2026-01-01T23:00:00Z",
    "partial_day": false
  },
  "anchor": "EUR",
  "data": [
    {
      "currency": "USD",
      "value": 1.1
    }
  ]
}
ParamètreTypeDescription
meta.partial_daybooleanRéférence quotidienne UTC
meta.published_atISO 8601 UTCDernier taux publié

GET /v1/series

Consultez une date avec /v1/history et une période avec /v1/series.

ParamètreTypeObligatoireValeur par défautDescription
start / endYYYY-MM-DDObligatoire—1999-01-01 ≤ start ≤ end < UTC today; ≤ 366 days inclusive
anchor / targetsstring / CSVFacultatifUSD / allsame as /v1/quotes
cURL
curl --request GET 'https://lumeexchangerates.com/v1/series?start=2026-01-01&end=2026-01-07&anchor=USD&targets=EUR'

Les valeurs et dates illustrent la structure, pas les taux actuels. Les listes peuvent être abrégées. Utilisez l’explorateur API pour consulter les données réelles.

JSON
{
  "meta": {
    "start": "2026-01-01",
    "end": "2026-01-02",
    "timezone": "UTC",
    "count": 2
  },
  "anchor": "USD",
  "data": [
    {
      "date": "2026-01-01",
      "rates": [
        {
          "currency": "EUR",
          "value": 0.9
        }
      ]
    },
    {
      "date": "2026-01-02",
      "rates": [
        {
          "currency": "EUR",
          "value": 0.91
        }
      ]
    }
  ]
}

OHLC via /v1/candles nécessite les droits du fournisseur. Consultez /v1/capabilities ; la disponibilité dépend de l’offre configurée.

JSON
{
  "timezone": "UTC",
  "date_bounds": "inclusive",
  "max_days": 366,
  "upstream_chunk": "calendar_month"
}

GET /v1/candles

OHLC via /v1/candles nécessite les droits du fournisseur. Consultez /v1/capabilities ; la disponibilité dépend de l’offre configurée.

ParamètreTypeObligatoireValeur par défautDescription
startYYYY-MM-DDTHH:mm:00ZObligatoire—UTC; completed period only; ≥ 2016-12-19
periodenumObligatoire—1m | 5m | 15m | 30m | 1h | 12h | 1d | 1w | 1mo
anchor / targetsstring / CSVFacultatifUSD / allprovider base / symbols
cURL
curl --request GET 'https://lumeexchangerates.com/v1/candles?start=2026-01-01T00%3A00%3A00Z&period=1d&anchor=USD&targets=EUR'

Les valeurs et dates illustrent la structure, pas les taux actuels. Les listes peuvent être abrégées. Utilisez l’explorateur API pour consulter les données réelles.

JSON
{
  "meta": {
    "start": "2026-01-01T00:00:00Z",
    "end": "2026-01-01T23:59:59Z",
    "period": "1d"
  },
  "anchor": "USD",
  "data": [
    {
      "currency": "EUR",
      "open": 0.9,
      "high": 0.92,
      "low": 0.89,
      "close": 0.91,
      "average": 0.905
    }
  ]
}
JSON
{
  "source": "provider_ohlc",
  "synthetic": false,
  "cross_rate_ohlc": false,
  "max_age": {
    "1m": "1h",
    "5m": "24h",
    "15m": "24h",
    "30m": "32d",
    "1h": "32d"
  },
  "alignment_minutes": {
    "5m": 5,
    "15m": 15,
    "30m": 30,
    "1h": 30,
    "12h": 30,
    "1d": 30
  },
  "calendar_alignment": {
    "1w": "00:00 UTC",
    "1mo": "YYYY-MM-01T00:00:00Z"
  }
}

GET /v1/capabilities

Disponibilité

Paramètre: —

cURL
curl --request GET 'https://lumeexchangerates.com/v1/capabilities'

Les valeurs et dates illustrent la structure, pas les taux actuels. Les listes peuvent être abrégées. Utilisez l’explorateur API pour consulter les données réelles.

JSON
{
  "data": {
    "latest": true,
    "currencies": true,
    "conversion": "latest_snapshot",
    "historical": "verified_on_request",
    "time_series": true,
    "ohlc": false,
    "refresh_interval_seconds": 300,
    "customer_api_keys": false
  }
}

OHLC via /v1/candles nécessite les droits du fournisseur. Consultez /v1/capabilities ; la disponibilité dépend de l’offre configurée.

Données et précision

Les taux sont indicatifs, sans offre bancaire ni prix garanti. Une conversion utilise un même instantané ; arrondissez à l’affichage ou au règlement.

Formula
rate = rates[to] / rates[from]
result = amount * rate

Les taux conservent leur précision flottante sans troncature à un nombre fixe de décimales. Arrondissez uniquement pour l’affichage ou selon vos règles comptables.

Tous les taux portent sur une unité source, JPY compris. Multipliez par 100 uniquement à l’affichage si nécessaire. Tenez compte des erreurs binaires JavaScript et définissez vos règles décimales et d’arrondi pour le règlement.

Dates et heures

Les temps UNIX sont des secondes UTC ; les dates ISO utilisent Z. Le jour UTC peut différer du jour local. Le site utilise le fuseau du navigateur. meta.timezone est une indication d’affichage, sans modifier la signification du timestamp.

ParamètreTypeDescription
/v1 meta.as_ofISO 8601 | YYYY-MM-DDHorodatage du fournisseur
/v1 meta.refresh_interval_secondsintegerCache
/v1 meta.currency_countinteger… devises disponibles
/v1 meta.modeprovider | dailySource des données
/api meta.published_atISO 8601 UTCDernier taux publié
history data[].timeYYYY-MM-DD UTC | UNIX secondsRéférence quotidienne UTC

Erreurs

HTTPcodeDescription
400INVALID_CURRENCY / INVALID_INPUT / INVALID_CONVERSION / INVALID_JSON / INVALID_PERIODSaisissez un montant positif ou nul
405METHOD_NOT_ALLOWEDGET: /v1/*, /api/rates/*, /api/currencies; POST: /api/convert
404NOT_FOUND/api/rates/*
422HISTORY_NOT_IN_PLAN / DATA_UNAVAILABLEDisponibilité
429RATE_LIMITED/api/* · 90 / IP / minute
404NOT_FOUNDUnknown /v1 endpoint
422FEATURE_NOT_IN_PLAN / HISTORY_NOT_IN_PLAN / OHLC_NOT_IN_PLANDisponibilité
400INVALID_DATE / INVALID_DATE_RANGE / INVALID_PERIOD / INCOMPLETE_PERIODSaisissez un montant positif ou nul
503PROVIDER_UNAVAILABLE / DATA_UNAVAILABLE / SERVICE_UNAVAILABLELes taux sont indisponibles. Réessayez dans un instant.
JSON
{
  "error": {
    "code": "INVALID_CURRENCY",
    "message": "Symbol not available in latest provider data"
  }
}

message peut être absent. Traitez le statut HTTP et error.code. Corrigez d’abord les entrées ; pour 429 ou 503 temporaire, utilisez un recul exponentiel limité avec délai aléatoire. Retry-After n’est pas garanti.

Limites et cache

Les données sont mises en cache ; la configuration actuelle vise cinq minutes. /api : 90 requêtes par minute par IP, localement par instance en mode direct et globalement avec Redis. /v1 n’applique pas encore les futurs quotas.

Les réponses utilisent Cache-Control: no-store. Le cache du navigateur diffère du cache fournisseur du serveur. Réutilisez les instantanés selon leur publication. En cas de panne, le dernier état valide peut revenir : vérifiez stale ou as_of. Le cache direct Worker n’est pas persistant.

JSON
{
  "endpoints": [
    "/v1/history",
    "/v1/series",
    "/v1/candles",
    "/v1/capabilities"
  ],
  "requests_per_ip_per_minute": 60,
  "cache": "in_process",
  "completed_history_cache_seconds": 3600,
  "current_day_cache_seconds": 60
}

Disponibilité

OHLC via /v1/candles nécessite les droits du fournisseur. Consultez /v1/capabilities ; la disponibilité dépend de l’offre configurée.

OHLC via /v1/candles nécessite les droits du fournisseur. Consultez /v1/capabilities ; la disponibilité dépend de l’offre configurée.

Explorateur API

Appelez l’API de ce site. Votre clé fournisseur reste sur le serveur.

REQUÊTE / cURL
RÉPONSE / JSON
Exécutez la requête pour afficher la véritable réponse JSON.
WELCOME TO LUME EXCHANGE RATES

Commencez à créer avec Lume Exchange Rates

Découvrez les taux réels sans carte bancaire. L’accès gratuit à l’API est une préversion ; aucun achat ni prélèvement n’est créé.

Taux réels · Aucun paiement requis

SUBSCRIPTION / USD

Vérifiez votre abonnement

Abonnement récurrent en USD. Vérifiez les taxes finales et le total dans la fenêtre de paiement sécurisée avant de confirmer.

Les taxes applicables sont affichées lors du paiement. Vous pouvez gérer le renouvellement et résilier dans le portail de facturation.

Paddle

ACCOUNT / BILLING

Votre abonnement