Overzicht
Lume Exchange Rates combineert koersvergelijking, omrekening en historie voor reizen, internationale prijzen en producten.
De ingestelde bron is Externe wisselkoersaanbieder. Antwoorden vermelden bron en publicatietijd. Beschikbare valuta volgen de echte gegevens.
Snel aan de slag
Lees de valutalijst en kies anchor en targets. Veldnamen en codes zijn in alle talen gelijk.
curl --request GET 'https://lumeexchangerates.com/v1/quotes?anchor=USD&targets=EUR,JPY'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);Het browservoorbeeld gebruikt dezelfde oorsprong. Privé-sites vereisen toegangsrechten; een URL omzeilt de aanmelding niet.
Toegang en authenticatie
Toegang volgt de websitebevoegdheden en browsersessie. Klantsleutels, Bearer-authenticatie voor klanten en een publieke cross-origin-API zijn nog niet beschikbaar. Bewaar de App ID op de server.
| Parameter | Type | Beschrijving |
|---|---|---|
| Base URL | URL | https://lumeexchangerates.com |
| Content-Type | header | application/json |
| Customer API key | — | Deze gehoste voorvertoning gebruikt de ingelogde browsersessie. Er worden nog geen individuele API-sleutels voor klanten uitgegeven. |
| Provider App ID | server secret | OPEN_EXCHANGE_RATES_APP_ID |
| CORS | same-origin | Er worden geen cross-origin-toegangsheaders verstrekt. |
Authorization: Token is uitsluitend voor de serververbinding met Externe wisselkoersaanbieder, niet voor klanten. Controleer HTTP-status en Content-Type: toegangsfouten kunnen HTML of omleidingen zijn.
Endpoints
| Method | Path | Beschrijving |
|---|---|---|
| GET | /v1/currencies | Alle symbolen met actuele koersen en providernamen. Inclusief beschikbare alternatieve valuta en metalen. |
| GET | /v1/quotes | Basissymbool; standaard USD. Elk actueel providersymbool is toegestaan. |
| GET | /v1/exchange | Niet-negatief numeriek bedrag om om te rekenen. |
| GET | /v1/history | Gebruik /v1/history voor een datum en /v1/series voor een datumbereik. |
| GET | /v1/series | Gebruik /v1/history voor een datum en /v1/series voor een datumbereik. |
| GET | /v1/candles | OHLC |
| GET | /v1/capabilities | Beschikbaarheid |
| GET | /api/rates/latest | Laatst gepubliceerde koers |
| GET | /api/currencies | Valuta |
| GET | /api/rates/history | Grafieken |
| GET | /api/rates/previous | Vorige UTC-dag |
| POST | /api/convert | Omrekenen |
/v1 is de compacte query-API; /api levert websitekoersen, historie en omrekening. Standaardwaarden en antwoordvormen verschillen.
GET /v1/currencies
Alle symbolen met actuele koersen en providernamen. Inclusief beschikbare alternatieve valuta en metalen.
Parameter: —
curl --request GET 'https://lumeexchangerates.com/v1/currencies'Voorbeeldwaarden en datums zijn geen actuele koersen; lijsten kunnen ingekort zijn. Gebruik de API-verkenner voor echte gegevens.
{
"meta": {
"mode": "provider",
"source": "Externe wisselkoersaanbieder",
"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"
}
]
}| Parameter | Type | Beschrijving |
|---|---|---|
| data[].code | string | Hoofdlettercode; alternatieve activa kunnen langere codes of onderstrepingstekens hebben. |
| data[].name | string | Valutanaam van de provider, anders de code. |
GET /v1/quotes
Basissymbool; standaard USD. Elk actueel providersymbool is toegestaan.
| Parameter | Type | Verplicht | Standaard | Beschrijving |
|---|---|---|---|---|
| anchor | string | Optioneel | USD | Basissymbool; standaard USD. Elk actueel providersymbool is toegestaan. |
| targets | string | Optioneel | alle | Doelsymbolen gescheiden door komma’s. Laat weg om alle beschikbare symbolen terug te krijgen. |
curl --request GET 'https://lumeexchangerates.com/v1/quotes?anchor=USD&targets=EUR,JPY'Voorbeeldwaarden en datums zijn geen actuele koersen; lijsten kunnen ingekort zijn. Gebruik de API-verkenner voor echte gegevens.
{
"meta": {
"mode": "provider",
"source": "Externe wisselkoersaanbieder",
"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
}
]
}/v1/quotes?anchor=EUR&targets=USD,JPY geeft doeleenheden per basiseenheid. Dubbele targets vervallen; lege, kleine of onbeschikbare codes geven 400.
| Parameter | Type | Beschrijving |
|---|---|---|
| anchor | string | Basissymbool; standaard USD. Elk actueel providersymbool is toegestaan. |
| data[].currency | string | Naar |
| data[].value | number | rates[currency] / rates[anchor] |
GET /v1/exchange
Niet-negatief numeriek bedrag om om te rekenen.
| Parameter | Type | Verplicht | Standaard | Beschrijving |
|---|---|---|---|---|
| from | string | Optioneel | USD | Symbool van de bronvaluta; standaard USD. |
| to | string | Optioneel | KRW | Symbool van de doelvaluta; standaard KRW. |
| quantity | number | Optioneel | 1 | Niet-negatief numeriek bedrag om om te rekenen. |
curl --request GET 'https://lumeexchangerates.com/v1/exchange?from=USD&to=EUR&quantity=100'Voorbeeldwaarden en datums zijn geen actuele koersen; lijsten kunnen ingekort zijn. Gebruik de API-verkenner voor echte gegevens.
{
"meta": {
"mode": "provider",
"source": "Externe wisselkoersaanbieder",
"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
}
}/v1/exchange?from=USD&to=EUR&quantity=100. Geef from en to altijd op; deze oudere GET-route gebruikt standaard KRW. Lege, negatieve, NaN- of oneindige waarden en overloop geven 400.
| Parameter | Type | Beschrijving |
|---|---|---|
| data.rate | number | rates[to] / rates[from] |
| data.result | number | quantity × rate |
GET /api/rates/latest
Laatst gepubliceerde koers
Parameter: —
curl --request GET 'https://lumeexchangerates.com/api/rates/latest'Voorbeeldwaarden en datums zijn geen actuele koersen; lijsten kunnen ingekort zijn. Gebruik de API-verkenner voor echte gegevens.
{
"meta": {
"provider": "Externe wisselkoersaanbieder",
"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
}
}
}| Parameter | Type | Beschrijving |
|---|---|---|
| data.base | string | USD |
| data.rates | object | Alle beschikbare USD-relatieve koersen; controleer codes in het nieuwste antwoord. |
| meta.provider_timestamp | integer | UTC · UNIX seconds |
| meta.published_at | string | ISO 8601 · UTC |
| meta.fetched_at | string | Ophaaltijd van de server, niet de publicatietijd van de provider. |
| meta.expected_interval_seconds | integer | seconds |
| meta.stale | boolean | true bij een ouderdom groter dan max(3 × verwacht interval, 900 seconden). |
| meta.lag_seconds | integer | Seconden sinds publicatie door de provider. |
| meta.persistent_storage | boolean | Of de dienst voor blijvende gegevensverzameling is aangesloten. |
| meta.kind | string | latest_published | utc_daily |
GET /api/currencies
Valuta
| Parameter | Type | Verplicht | Standaard | Beschrijving |
|---|---|---|---|---|
| lang | string | Optioneel | en | en / ko / ja / zh / es / hi / bn / de / fr / nl / pt / it / ru / vi / th / ar / id / ur |
curl --request GET 'https://lumeexchangerates.com/api/currencies?lang=en'Voorbeeldwaarden en datums zijn geen actuele koersen; lijsten kunnen ingekort zijn. Gebruik de API-verkenner voor echte gegevens.
{
"meta": {
"provider": "Externe wisselkoersaanbieder",
"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"
}
]
}Intl.DisplayNames lokaliseert namen; onbekende activa behouden hun code. Alleen actuele codes worden geretourneerd.
GET /api/rates/history
Gebruik /v1/history voor een datum en /v1/series voor een datumbereik.
| Parameter | Type | Verplicht | Standaard | Beschrijving |
|---|---|---|---|---|
| from | string | Optioneel | USD | Van |
| to | string | Optioneel | EUR | Naar |
| period | enum | Optioneel | 1M | 1D | 1W | 1M | 3M | 1Y |
curl --request GET 'https://lumeexchangerates.com/api/rates/history?from=USD&to=EUR&period=1W'Voorbeeldwaarden en datums zijn geen actuele koersen; lijsten kunnen ingekort zijn. Gebruik de API-verkenner voor echte gegevens.
{
"meta": {
"kind": "utc_daily",
"from": "USD",
"to": "EUR",
"period": "1W",
"provider": "Externe wisselkoersaanbieder",
"persistent_storage": false
},
"data": [
{
"time": "2026-01-01",
"value": 0.9
},
{
"time": "2026-01-02",
"value": 0.91
}
]
}1W begint zeven dagen geleden; 1M, 3M en 1Y volgen kalenderperioden. Daggegevens eindigen gisteren. Maand- en schrikkelgrenzen worden aangepast. Langere perioden worden per kalendermaand opgehaald, gesorteerd en ontdubbeld.
| Parameter | Type | Beschrijving |
|---|---|---|
| data[].time | string | integer | Dagelijks: YYYY-MM-DD (UTC). Intradag: UNIX-seconden. |
| data[].value | number | rates[to] / rates[from] |
| meta.kind | string | utc_daily | intraday |
{
"meta": {
"kind": "intraday",
"persistent_storage": false
},
"data": []
}Zonder verzameldienst retourneert 1D HTTP 200 met een lege lijst, geen fout of minutengegevens. Historisch ontbrekende valuta kunnen niet beschikbaar zijn.
GET /api/rates/previous
Vorige UTC-dag
| Parameter | Type | Verplicht | Standaard | Beschrijving |
|---|---|---|---|---|
| from | string | Optioneel | USD | Van |
| to | string | Optioneel | EUR | Naar |
curl --request GET 'https://lumeexchangerates.com/api/rates/previous?from=USD&to=EUR'Voorbeeldwaarden en datums zijn geen actuele koersen; lijsten kunnen ingekort zijn. Gebruik de API-verkenner voor echte gegevens.
{
"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
}
}
}Vergelijking met de vorige UTC-dag. reference_timestamp is het logische dageinde, niet de publicatietijd. Procentuele wijziging: (huidig − referentie) / referentie × 100.
POST /api/convert
Omrekenen
| Parameter | Type | Verplicht | Standaard | Beschrijving |
|---|---|---|---|---|
| Content-Type | header | Verplicht | application/json | application/json |
| amount | number | Verplicht | — | 0 ≤ amount ≤ 1e15; finite |
| from | string | Verplicht | — | Van |
| to | string | Verplicht | — | Naar |
curl --request POST 'https://lumeexchangerates.com/api/convert' \
--header 'Content-Type: application/json' \
--data '{"amount":100,"from":"USD","to":"EUR"}'Voorbeeldwaarden en datums zijn geen actuele koersen; lijsten kunnen ingekort zijn. Gebruik de API-verkenner voor echte gegevens.
{
"meta": {
"provider": "Externe wisselkoersaanbieder",
"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
}
}Stuur amount als JSON-getal; de tekenreeks "100" geeft 400. Codes moeten in de actuele momentopname staan. Er wordt geen betaling of transactie uitgevoerd.
GET /v1/history
Gebruik /v1/history voor een datum en /v1/series voor een datumbereik.
| Parameter | Type | Verplicht | Standaard | Beschrijving |
|---|---|---|---|---|
| date | YYYY-MM-DD | Verplicht | — | 1999-01-01 ≤ date ≤ UTC today |
| anchor | string | Optioneel | USD | Van |
| targets | CSV | Optioneel | all | Naar |
curl --request GET 'https://lumeexchangerates.com/v1/history?date=2026-01-01&anchor=EUR&targets=USD,JPY'Voorbeeldwaarden en datums zijn geen actuele koersen; lijsten kunnen ingekort zijn. Gebruik de API-verkenner voor echte gegevens.
{
"meta": {
"date": "2026-01-01",
"published_at": "2026-01-01T23:00:00Z",
"partial_day": false
},
"anchor": "EUR",
"data": [
{
"currency": "USD",
"value": 1.1
}
]
}| Parameter | Type | Beschrijving |
|---|---|---|
| meta.partial_day | boolean | Dagelijkse UTC-referentie |
| meta.published_at | ISO 8601 UTC | Laatst gepubliceerde koers |
GET /v1/series
Gebruik /v1/history voor een datum en /v1/series voor een datumbereik.
| Parameter | Type | Verplicht | Standaard | Beschrijving |
|---|---|---|---|---|
| start / end | YYYY-MM-DD | Verplicht | — | 1999-01-01 ≤ start ≤ end < UTC today; ≤ 366 days inclusive |
| anchor / targets | string / CSV | Optioneel | USD / all | same as /v1/quotes |
curl --request GET 'https://lumeexchangerates.com/v1/series?start=2026-01-01&end=2026-01-07&anchor=USD&targets=EUR'Voorbeeldwaarden en datums zijn geen actuele koersen; lijsten kunnen ingekort zijn. Gebruik de API-verkenner voor echte gegevens.
{
"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 vereist toestemming van de gegevensleverancier. Controleer /v1/capabilities; beschikbaarheid hangt af van het ingestelde abonnement.
{
"timezone": "UTC",
"date_bounds": "inclusive",
"max_days": 366,
"upstream_chunk": "calendar_month"
}GET /v1/candles
OHLC via /v1/candles vereist toestemming van de gegevensleverancier. Controleer /v1/capabilities; beschikbaarheid hangt af van het ingestelde abonnement.
| Parameter | Type | Verplicht | Standaard | Beschrijving |
|---|---|---|---|---|
| start | YYYY-MM-DDTHH:mm:00Z | Verplicht | — | UTC; completed period only; ≥ 2016-12-19 |
| period | enum | Verplicht | — | 1m | 5m | 15m | 30m | 1h | 12h | 1d | 1w | 1mo |
| anchor / targets | string / CSV | Optioneel | USD / all | provider base / symbols |
curl --request GET 'https://lumeexchangerates.com/v1/candles?start=2026-01-01T00%3A00%3A00Z&period=1d&anchor=USD&targets=EUR'Voorbeeldwaarden en datums zijn geen actuele koersen; lijsten kunnen ingekort zijn. Gebruik de API-verkenner voor echte gegevens.
{
"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
}
]
}{
"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
Beschikbaarheid
Parameter: —
curl --request GET 'https://lumeexchangerates.com/v1/capabilities'Voorbeeldwaarden en datums zijn geen actuele koersen; lijsten kunnen ingekort zijn. Gebruik de API-verkenner voor echte gegevens.
{
"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 vereist toestemming van de gegevensleverancier. Controleer /v1/capabilities; beschikbaarheid hangt af van het ingestelde abonnement.
Gegevens en precisie
Indicatieve koersen zijn geen bankaanbod of gegarandeerde transactieprijs. Gebruik dezelfde momentopname en rond pas bij weergave of afrekening af.
rate = rates[to] / rates[from]
result = amount * rateKoersen behouden hun zwevendekommaprecisie zonder vaste afkapping van decimalen. Rond alleen af voor weergave of volgens je boekhoudbeleid.
Eén broneenheid, ook voor JPY. Vermenigvuldig alleen voor weergave met 100 indien gewenst. Houd rekening met JavaScript-kommafouten en kies expliciete afrondingsregels voor afrekening.
Tijd en datum
UNIX is UTC-seconden; ISO gebruikt Z. UTC-datums kunnen lokaal verschillen. De website gebruikt de browserzone. meta.timezone is alleen een weergavehint.
| Parameter | Type | Beschrijving |
|---|---|---|
| /v1 meta.as_of | ISO 8601 | YYYY-MM-DD | Tijdstempel van de provider |
| /v1 meta.refresh_interval_seconds | integer | Cache |
| /v1 meta.currency_count | integer | … valuta beschikbaar |
| /v1 meta.mode | provider | daily | Gegevensbron |
| /api meta.published_at | ISO 8601 UTC | Laatst gepubliceerde koers |
| history data[].time | YYYY-MM-DD UTC | UNIX seconds | Dagelijkse UTC-referentie |
Fouten
| HTTP | code | Beschrijving |
|---|---|---|
| 400 | INVALID_CURRENCY / INVALID_INPUT / INVALID_CONVERSION / INVALID_JSON / INVALID_PERIOD | Voer een niet-negatief bedrag in |
| 405 | METHOD_NOT_ALLOWED | GET: /v1/*, /api/rates/*, /api/currencies; POST: /api/convert |
| 404 | NOT_FOUND | /api/rates/* |
| 422 | HISTORY_NOT_IN_PLAN / DATA_UNAVAILABLE | Beschikbaarheid |
| 429 | RATE_LIMITED | /api/* · 90 / IP / minute |
| 404 | NOT_FOUND | Unknown /v1 endpoint |
| 422 | FEATURE_NOT_IN_PLAN / HISTORY_NOT_IN_PLAN / OHLC_NOT_IN_PLAN | Beschikbaarheid |
| 400 | INVALID_DATE / INVALID_DATE_RANGE / INVALID_PERIOD / INCOMPLETE_PERIOD | Voer een niet-negatief bedrag in |
| 503 | PROVIDER_UNAVAILABLE / DATA_UNAVAILABLE / SERVICE_UNAVAILABLE | Koersen zijn niet beschikbaar. Probeer het zo opnieuw. |
{
"error": {
"code": "INVALID_CURRENCY",
"message": "Symbol not available in latest provider data"
}
}message kan ontbreken. Gebruik HTTP-status en error.code. Corrigeer invoer; herhaal 429 of tijdelijke 503 beperkt met exponentiële wachttijd en willekeurige spreiding. Retry-After is niet gegarandeerd.
Limieten en cache
Actuele gegevens worden gecachet; ingesteld op vijf minuten. /api: 90 verzoeken per minuut per IP, lokaal per instantie bij directe toegang en gedeeld met Redis. /v1 past toekomstige planquota nog niet toe.
Cache-Control: no-store betreft het browserantwoord, niet de servercache. Hergebruik momentopnamen per publicatietijd. Bij storingen kan de laatste geldige waarde terugkomen; controleer stale of as_of. Worker-cache is niet blijvend.
{
"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
}Beschikbaarheid
OHLC via /v1/candles vereist toestemming van de gegevensleverancier. Controleer /v1/capabilities; beschikbaarheid hangt af van het ingestelde abonnement.
OHLC via /v1/candles vereist toestemming van de gegevensleverancier. Controleer /v1/capabilities; beschikbaarheid hangt af van het ingestelde abonnement.
API-verkenner
Roep de API van deze site aan. Je providersleutel blijft op de server.
Voer het verzoek uit om het echte JSON-antwoord te bekijken.