Panoramica
Lume Exchange Rates riunisce confronto, conversione e storico per viaggi, prezzi internazionali e prodotti.
La fonte configurata è Fornitore esterno di tassi di cambio. Le risposte indicano fonte e data di pubblicazione. Le valute disponibili dipendono dai dati reali.
Avvio rapido
Consulta le valute e scegli anchor e targets. Campi e codici sono uguali in tutte le lingue.
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);L’esempio del browser usa la stessa origine. I siti privati richiedono autorizzazione: l’URL non aggira l’accesso.
Accesso e autenticazione
L’accesso segue i permessi del sito e la sessione del browser. Chiavi API cliente, autenticazione Bearer cliente e API pubblica cross-origin non sono ancora disponibili. Conserva l’App ID sul server.
| Parametro | Tipo | Descrizione |
|---|---|---|
| Base URL | URL | https://lumeexchangerates.com |
| Content-Type | header | application/json |
| Customer API key | — | Questa anteprima ospitata usa la sessione autenticata del browser. Non emette ancora chiavi API individuali per i clienti. |
| Provider App ID | server secret | OPEN_EXCHANGE_RATES_APP_ID |
| CORS | same-origin | Non vengono forniti header di autorizzazione tra origini. |
Authorization: Token serve solo al server per Fornitore esterno di tassi di cambio, non autentica i clienti. Controlla HTTP e Content-Type: i controlli di accesso possono restituire HTML o reindirizzamenti.
Endpoint
| Method | Path | Descrizione |
|---|---|---|
| GET | /v1/currencies | Tutti i simboli con tassi attuali e nomi del fornitore. Include valute alternative e metalli disponibili. |
| GET | /v1/quotes | Simbolo base; USD per impostazione predefinita. È accettato qualsiasi simbolo attuale del fornitore. |
| GET | /v1/exchange | Importo numerico non negativo da convertire. |
| GET | /v1/history | Consulta una data con /v1/history e un intervallo con /v1/series. |
| GET | /v1/series | Consulta una data con /v1/history e un intervallo con /v1/series. |
| GET | /v1/candles | OHLC |
| GET | /v1/capabilities | Disponibilità |
| GET | /api/rates/latest | Ultimo tasso pubblicato |
| GET | /api/currencies | Valuta |
| GET | /api/rates/history | Grafici |
| GET | /api/rates/previous | Giorno UTC precedente |
| POST | /api/convert | Convertitore |
/v1 offre query compatte; /api fornisce tassi, storico e conversione del sito. Valori predefiniti e risposte sono diversi.
GET /v1/currencies
Tutti i simboli con tassi attuali e nomi del fornitore. Include valute alternative e metalli disponibili.
Parametro: —
curl --request GET 'https://lumeexchangerates.com/v1/currencies'Valori e date sono esempi, non tassi attuali; gli elenchi possono essere abbreviati. Usa l’esploratore API per dati reali.
{
"meta": {
"mode": "provider",
"source": "Fornitore esterno di tassi di cambio",
"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"
}
]
}| Parametro | Tipo | Descrizione |
|---|---|---|
| data[].code | string | Codice maiuscolo; gli asset alternativi possono avere più di tre caratteri o trattini bassi. |
| data[].name | string | Nome valuta del fornitore, oppure codice se manca il nome. |
GET /v1/quotes
Simbolo base; USD per impostazione predefinita. È accettato qualsiasi simbolo attuale del fornitore.
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
| anchor | string | Facoltativo | USD | Simbolo base; USD per impostazione predefinita. È accettato qualsiasi simbolo attuale del fornitore. |
| targets | string | Facoltativo | tutte | Simboli di destinazione separati da virgole. Ometti per restituire tutti i simboli disponibili. |
curl --request GET 'https://lumeexchangerates.com/v1/quotes?anchor=USD&targets=EUR,JPY'Valori e date sono esempi, non tassi attuali; gli elenchi possono essere abbreviati. Usa l’esploratore API per dati reali.
{
"meta": {
"mode": "provider",
"source": "Fornitore esterno di tassi di cambio",
"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 restituisce unità di destinazione per unità base. Rimuove duplicati; codici vuoti, minuscoli o indisponibili restituiscono 400.
| Parametro | Tipo | Descrizione |
|---|---|---|
| anchor | string | Simbolo base; USD per impostazione predefinita. È accettato qualsiasi simbolo attuale del fornitore. |
| data[].currency | string | A |
| data[].value | number | rates[currency] / rates[anchor] |
GET /v1/exchange
Importo numerico non negativo da convertire.
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
| from | string | Facoltativo | USD | Simbolo della valuta di origine; USD per impostazione predefinita. |
| to | string | Facoltativo | KRW | Simbolo della valuta di destinazione; KRW per impostazione predefinita. |
| quantity | number | Facoltativo | 1 | Importo numerico non negativo da convertire. |
curl --request GET 'https://lumeexchangerates.com/v1/exchange?from=USD&to=EUR&quantity=100'Valori e date sono esempi, non tassi attuali; gli elenchi possono essere abbreviati. Usa l’esploratore API per dati reali.
{
"meta": {
"mode": "provider",
"source": "Fornitore esterno di tassi di cambio",
"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. Specifica sempre from e to: la vecchia rotta GET usa KRW per impostazione predefinita. Valori vuoti, negativi, NaN, infiniti e overflow restituiscono 400.
| Parametro | Tipo | Descrizione |
|---|---|---|
| data.rate | number | rates[to] / rates[from] |
| data.result | number | quantity × rate |
GET /api/rates/latest
Ultimo tasso pubblicato
Parametro: —
curl --request GET 'https://lumeexchangerates.com/api/rates/latest'Valori e date sono esempi, non tassi attuali; gli elenchi possono essere abbreviati. Usa l’esploratore API per dati reali.
{
"meta": {
"provider": "Fornitore esterno di tassi di cambio",
"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
}
}
}| Parametro | Tipo | Descrizione |
|---|---|---|
| data.base | string | USD |
| data.rates | object | Tutti i tassi disponibili relativi a USD; verifica i codici nell’ultima risposta. |
| meta.provider_timestamp | integer | UTC · UNIX seconds |
| meta.published_at | string | ISO 8601 · UTC |
| meta.fetched_at | string | Ora di recupero del server, distinta dalla pubblicazione del fornitore. |
| meta.expected_interval_seconds | integer | seconds |
| meta.stale | boolean | true quando l’età supera max(3 × intervallo previsto, 900 secondi). |
| meta.lag_seconds | integer | Secondi dalla pubblicazione del fornitore. |
| meta.persistent_storage | boolean | Indica se il servizio di raccolta persistente è collegato. |
| meta.kind | string | latest_published | utc_daily |
GET /api/currencies
Valuta
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
| lang | string | Facoltativo | 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'Valori e date sono esempi, non tassi attuali; gli elenchi possono essere abbreviati. Usa l’esploratore API per dati reali.
{
"meta": {
"provider": "Fornitore esterno di tassi di cambio",
"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 localizza i nomi. Gli asset sconosciuti mantengono il codice. Vengono restituiti solo codici attuali.
GET /api/rates/history
Consulta una data con /v1/history e un intervallo con /v1/series.
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
| from | string | Facoltativo | USD | Da |
| to | string | Facoltativo | EUR | A |
| period | enum | Facoltativo | 1M | 1D | 1W | 1M | 3M | 1Y |
curl --request GET 'https://lumeexchangerates.com/api/rates/history?from=USD&to=EUR&period=1W'Valori e date sono esempi, non tassi attuali; gli elenchi possono essere abbreviati. Usa l’esploratore API per dati reali.
{
"meta": {
"kind": "utc_daily",
"from": "USD",
"to": "EUR",
"period": "1W",
"provider": "Fornitore esterno di tassi di cambio",
"persistent_storage": false
},
"data": [
{
"time": "2026-01-01",
"value": 0.9
},
{
"time": "2026-01-02",
"value": 0.91
}
]
}1W inizia sette giorni fa; 1M, 3M e 1Y seguono il calendario. I dati giornalieri terminano ieri. Si correggono fine mese e anni bisestili. I periodi lunghi vengono suddivisi per mese, ordinati e deduplicati.
| Parametro | Tipo | Descrizione |
|---|---|---|
| data[].time | string | integer | Giornaliero: YYYY-MM-DD (UTC). Intraday: secondi UNIX. |
| data[].value | number | rates[to] / rates[from] |
| meta.kind | string | utc_daily | intraday |
{
"meta": {
"kind": "intraday",
"persistent_storage": false
},
"data": []
}Senza raccolta, 1D restituisce HTTP 200 e un elenco vuoto: non è un errore né un dato al minuto. Valute assenti nel periodo storico possono non essere disponibili.
GET /api/rates/previous
Giorno UTC precedente
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
| from | string | Facoltativo | USD | Da |
| to | string | Facoltativo | EUR | A |
curl --request GET 'https://lumeexchangerates.com/api/rates/previous?from=USD&to=EUR'Valori e date sono esempi, non tassi attuali; gli elenchi possono essere abbreviati. Usa l’esploratore API per dati reali.
{
"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
}
}
}Confronto con il giorno UTC precedente. reference_timestamp è la fine logica del giorno, non l’ora di pubblicazione. Variazione: (attuale − riferimento) / riferimento × 100.
POST /api/convert
Convertitore
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
| Content-Type | header | Obbligatorio | application/json | application/json |
| amount | number | Obbligatorio | — | 0 ≤ amount ≤ 1e15; finite |
| from | string | Obbligatorio | — | Da |
| to | string | Obbligatorio | — | A |
curl --request POST 'https://lumeexchangerates.com/api/convert' \
--header 'Content-Type: application/json' \
--data '{"amount":100,"from":"USD","to":"EUR"}'Valori e date sono esempi, non tassi attuali; gli elenchi possono essere abbreviati. Usa l’esploratore API per dati reali.
{
"meta": {
"provider": "Fornitore esterno di tassi di cambio",
"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
}
}Invia amount come numero JSON; la stringa "100" restituisce 400. I codici devono esistere nello snapshot attuale. Non esegue trasferimenti o operazioni.
GET /v1/history
Consulta una data con /v1/history e un intervallo con /v1/series.
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
| date | YYYY-MM-DD | Obbligatorio | — | 1999-01-01 ≤ date ≤ UTC today |
| anchor | string | Facoltativo | USD | Da |
| targets | CSV | Facoltativo | all | A |
curl --request GET 'https://lumeexchangerates.com/v1/history?date=2026-01-01&anchor=EUR&targets=USD,JPY'Valori e date sono esempi, non tassi attuali; gli elenchi possono essere abbreviati. Usa l’esploratore API per dati reali.
{
"meta": {
"date": "2026-01-01",
"published_at": "2026-01-01T23:00:00Z",
"partial_day": false
},
"anchor": "EUR",
"data": [
{
"currency": "USD",
"value": 1.1
}
]
}| Parametro | Tipo | Descrizione |
|---|---|---|
| meta.partial_day | boolean | Riferimento giornaliero UTC |
| meta.published_at | ISO 8601 UTC | Ultimo tasso pubblicato |
GET /v1/series
Consulta una data con /v1/history e un intervallo con /v1/series.
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
| start / end | YYYY-MM-DD | Obbligatorio | — | 1999-01-01 ≤ start ≤ end < UTC today; ≤ 366 days inclusive |
| anchor / targets | string / CSV | Facoltativo | 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'Valori e date sono esempi, non tassi attuali; gli elenchi possono essere abbreviati. Usa l’esploratore API per dati reali.
{
"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 tramite /v1/candles richiede i diritti del fornitore. Consulta /v1/capabilities; la disponibilità dipende dal piano configurato.
{
"timezone": "UTC",
"date_bounds": "inclusive",
"max_days": 366,
"upstream_chunk": "calendar_month"
}GET /v1/candles
OHLC tramite /v1/candles richiede i diritti del fornitore. Consulta /v1/capabilities; la disponibilità dipende dal piano configurato.
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
| start | YYYY-MM-DDTHH:mm:00Z | Obbligatorio | — | UTC; completed period only; ≥ 2016-12-19 |
| period | enum | Obbligatorio | — | 1m | 5m | 15m | 30m | 1h | 12h | 1d | 1w | 1mo |
| anchor / targets | string / CSV | Facoltativo | 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'Valori e date sono esempi, non tassi attuali; gli elenchi possono essere abbreviati. Usa l’esploratore API per dati reali.
{
"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
Disponibilità
Parametro: —
curl --request GET 'https://lumeexchangerates.com/v1/capabilities'Valori e date sono esempi, non tassi attuali; gli elenchi possono essere abbreviati. Usa l’esploratore API per dati reali.
{
"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 tramite /v1/candles richiede i diritti del fornitore. Consulta /v1/capabilities; la disponibilità dipende dal piano configurato.
Dati e precisione
I tassi sono indicativi, non offerte bancarie o prezzi garantiti. La conversione usa lo stesso insieme di tassi; arrotonda alla visualizzazione o al regolamento.
rate = rates[to] / rates[from]
result = amount * rateI tassi mantengono la precisione in virgola mobile senza troncare a un numero fisso di decimali. Arrotonda solo per la visualizzazione o secondo i criteri contabili.
Una unità di origine, anche per JPY. Moltiplica per 100 solo per la visualizzazione se necessario. Considera gli errori binari JavaScript e definisci regole decimali e di arrotondamento per il regolamento.
Date e orari
UNIX indica secondi UTC e ISO usa Z. Le date UTC possono differire dalle locali. Il sito usa il fuso del browser. meta.timezone è solo un suggerimento di visualizzazione.
| Parametro | Tipo | Descrizione |
|---|---|---|
| /v1 meta.as_of | ISO 8601 | YYYY-MM-DD | Data e ora del fornitore |
| /v1 meta.refresh_interval_seconds | integer | Cache |
| /v1 meta.currency_count | integer | … valute disponibili |
| /v1 meta.mode | provider | daily | Fonte dei dati |
| /api meta.published_at | ISO 8601 UTC | Ultimo tasso pubblicato |
| history data[].time | YYYY-MM-DD UTC | UNIX seconds | Riferimento giornaliero UTC |
Errori
| HTTP | code | Descrizione |
|---|---|---|
| 400 | INVALID_CURRENCY / INVALID_INPUT / INVALID_CONVERSION / INVALID_JSON / INVALID_PERIOD | Inserisci un importo non negativo |
| 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 | Disponibilità |
| 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 | Disponibilità |
| 400 | INVALID_DATE / INVALID_DATE_RANGE / INVALID_PERIOD / INCOMPLETE_PERIOD | Inserisci un importo non negativo |
| 503 | PROVIDER_UNAVAILABLE / DATA_UNAVAILABLE / SERVICE_UNAVAILABLE | Tassi non disponibili. Riprova tra poco. |
{
"error": {
"code": "INVALID_CURRENCY",
"message": "Symbol not available in latest provider data"
}
}message può mancare. Usa HTTP ed error.code. Correggi gli input; per 429 o 503 temporanei applica tentativi limitati con attesa esponenziale casualizzata. Retry-After non è garantito.
Limiti e cache
Dati in cache, con intervallo configurato di cinque minuti. /api: 90 richieste al minuto per IP, locali all’istanza in modalità diretta e condivise con Redis. /v1 non applica ancora le quote future.
Cache-Control: no-store riguarda la risposta, non la cache del fornitore sul server. Riusa snapshot per data di pubblicazione. In caso di guasto può tornare l’ultimo dato valido: controlla stale o as_of. La cache Worker non è persistente.
{
"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 tramite /v1/candles richiede i diritti del fornitore. Consulta /v1/capabilities; la disponibilità dipende dal piano configurato.
OHLC tramite /v1/candles richiede i diritti del fornitore. Consulta /v1/capabilities; la disponibilità dipende dal piano configurato.
Esplora API
Chiama l’API di questo sito. La chiave del fornitore rimane sul server.
Esegui la richiesta per visualizzare la risposta JSON reale.