LUME EXCHANGE RATES / API REFERENCE

Documentazione API

La fonte configurata è Fornitore esterno di tassi di cambio. Le risposte indicano fonte e data di pubblicazione. Le valute disponibili dipendono dai dati reali.

Base URLhttps://lumeexchangerates.com

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.

HTTPSJSONUTF-8GET / POSTUTC

Avvio rapido

Consulta le valute e scegli anchor e targets. Campi e codici sono uguali in tutte le lingue.

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’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.

ParametroTipoDescrizione
Base URLURLhttps://lumeexchangerates.com
Content-Typeheaderapplication/json
Customer API key—Questa anteprima ospitata usa la sessione autenticata del browser. Non emette ancora chiavi API individuali per i clienti.
Provider App IDserver secretOPEN_EXCHANGE_RATES_APP_ID
CORSsame-originNon 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

MethodPathDescrizione
GET/v1/currenciesTutti i simboli con tassi attuali e nomi del fornitore. Include valute alternative e metalli disponibili.
GET/v1/quotesSimbolo base; USD per impostazione predefinita. È accettato qualsiasi simbolo attuale del fornitore.
GET/v1/exchangeImporto numerico non negativo da convertire.
GET/v1/historyConsulta una data con /v1/history e un intervallo con /v1/series.
GET/v1/seriesConsulta una data con /v1/history e un intervallo con /v1/series.
GET/v1/candlesOHLC
GET/v1/capabilitiesDisponibilità
GET/api/rates/latestUltimo tasso pubblicato
GET/api/currenciesValuta
GET/api/rates/historyGrafici
GET/api/rates/previousGiorno UTC precedente
POST/api/convertConvertitore

/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
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.

JSON
{
  "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"
    }
  ]
}
ParametroTipoDescrizione
data[].codestringCodice maiuscolo; gli asset alternativi possono avere più di tre caratteri o trattini bassi.
data[].namestringNome valuta del fornitore, oppure codice se manca il nome.

GET /v1/quotes

Simbolo base; USD per impostazione predefinita. È accettato qualsiasi simbolo attuale del fornitore.

ParametroTipoObbligatorioPredefinitoDescrizione
anchorstringFacoltativoUSDSimbolo base; USD per impostazione predefinita. È accettato qualsiasi simbolo attuale del fornitore.
targetsstringFacoltativotutteSimboli di destinazione separati da virgole. Ometti per restituire tutti i simboli disponibili.
cURL
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.

JSON
{
  "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.

ParametroTipoDescrizione
anchorstringSimbolo base; USD per impostazione predefinita. È accettato qualsiasi simbolo attuale del fornitore.
data[].currencystringA
data[].valuenumberrates[currency] / rates[anchor]

GET /v1/exchange

Importo numerico non negativo da convertire.

ParametroTipoObbligatorioPredefinitoDescrizione
fromstringFacoltativoUSDSimbolo della valuta di origine; USD per impostazione predefinita.
tostringFacoltativoKRWSimbolo della valuta di destinazione; KRW per impostazione predefinita.
quantitynumberFacoltativo1Importo numerico non negativo da convertire.
cURL
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.

JSON
{
  "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.

ParametroTipoDescrizione
data.ratenumberrates[to] / rates[from]
data.resultnumberquantity × rate

GET /api/rates/latest

Ultimo tasso pubblicato

Parametro: —

cURL
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.

JSON
{
  "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
    }
  }
}
ParametroTipoDescrizione
data.basestringUSD
data.ratesobjectTutti i tassi disponibili relativi a USD; verifica i codici nell’ultima risposta.
meta.provider_timestampintegerUTC · UNIX seconds
meta.published_atstringISO 8601 · UTC
meta.fetched_atstringOra di recupero del server, distinta dalla pubblicazione del fornitore.
meta.expected_interval_secondsintegerseconds
meta.stalebooleantrue quando l’età supera max(3 × intervallo previsto, 900 secondi).
meta.lag_secondsintegerSecondi dalla pubblicazione del fornitore.
meta.persistent_storagebooleanIndica se il servizio di raccolta persistente è collegato.
meta.kindstringlatest_published | utc_daily

GET /api/currencies

Valuta

ParametroTipoObbligatorioPredefinitoDescrizione
langstringFacoltativoenen / 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'

Valori e date sono esempi, non tassi attuali; gli elenchi possono essere abbreviati. Usa l’esploratore API per dati reali.

JSON
{
  "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.

ParametroTipoObbligatorioPredefinitoDescrizione
fromstringFacoltativoUSDDa
tostringFacoltativoEURA
periodenumFacoltativo1M1D | 1W | 1M | 3M | 1Y
cURL
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.

JSON
{
  "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.

ParametroTipoDescrizione
data[].timestring | integerGiornaliero: YYYY-MM-DD (UTC). Intraday: secondi UNIX.
data[].valuenumberrates[to] / rates[from]
meta.kindstringutc_daily | intraday
JSON
{
  "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

ParametroTipoObbligatorioPredefinitoDescrizione
fromstringFacoltativoUSDDa
tostringFacoltativoEURA
cURL
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.

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
    }
  }
}

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

ParametroTipoObbligatorioPredefinitoDescrizione
Content-TypeheaderObbligatorioapplication/jsonapplication/json
amountnumberObbligatorio—0 ≤ amount ≤ 1e15; finite
fromstringObbligatorio—Da
tostringObbligatorio—A
cURL
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.

JSON
{
  "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.

ParametroTipoObbligatorioPredefinitoDescrizione
dateYYYY-MM-DDObbligatorio—1999-01-01 ≤ date ≤ UTC today
anchorstringFacoltativoUSDDa
targetsCSVFacoltativoallA
cURL
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.

JSON
{
  "meta": {
    "date": "2026-01-01",
    "published_at": "2026-01-01T23:00:00Z",
    "partial_day": false
  },
  "anchor": "EUR",
  "data": [
    {
      "currency": "USD",
      "value": 1.1
    }
  ]
}
ParametroTipoDescrizione
meta.partial_daybooleanRiferimento giornaliero UTC
meta.published_atISO 8601 UTCUltimo tasso pubblicato

GET /v1/series

Consulta una data con /v1/history e un intervallo con /v1/series.

ParametroTipoObbligatorioPredefinitoDescrizione
start / endYYYY-MM-DDObbligatorio—1999-01-01 ≤ start ≤ end < UTC today; ≤ 366 days inclusive
anchor / targetsstring / CSVFacoltativoUSD / 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'

Valori e date sono esempi, non tassi attuali; gli elenchi possono essere abbreviati. Usa l’esploratore API per dati reali.

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 tramite /v1/candles richiede i diritti del fornitore. Consulta /v1/capabilities; la disponibilità dipende dal piano configurato.

JSON
{
  "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.

ParametroTipoObbligatorioPredefinitoDescrizione
startYYYY-MM-DDTHH:mm:00ZObbligatorio—UTC; completed period only; ≥ 2016-12-19
periodenumObbligatorio—1m | 5m | 15m | 30m | 1h | 12h | 1d | 1w | 1mo
anchor / targetsstring / CSVFacoltativoUSD / allprovider base / symbols
cURL
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.

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à

Parametro: —

cURL
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.

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 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.

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

I 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.

ParametroTipoDescrizione
/v1 meta.as_ofISO 8601 | YYYY-MM-DDData e ora del fornitore
/v1 meta.refresh_interval_secondsintegerCache
/v1 meta.currency_countinteger… valute disponibili
/v1 meta.modeprovider | dailyFonte dei dati
/api meta.published_atISO 8601 UTCUltimo tasso pubblicato
history data[].timeYYYY-MM-DD UTC | UNIX secondsRiferimento giornaliero UTC

Errori

HTTPcodeDescrizione
400INVALID_CURRENCY / INVALID_INPUT / INVALID_CONVERSION / INVALID_JSON / INVALID_PERIODInserisci un importo non negativo
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_PERIODInserisci un importo non negativo
503PROVIDER_UNAVAILABLE / DATA_UNAVAILABLE / SERVICE_UNAVAILABLETassi non disponibili. Riprova tra poco.
JSON
{
  "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.

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 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.

RICHIESTA / cURL
RISPOSTA / JSON
Esegui la richiesta per visualizzare la risposta JSON reale.
WELCOME TO LUME EXCHANGE RATES

Inizia a creare con Lume Exchange Rates

Esplora tassi reali senza carta. L’accesso gratuito all’API è un’anteprima: non vengono creati acquisti o addebiti.

Tassi reali · Nessun pagamento richiesto

SUBSCRIPTION / USD

Controlla il tuo abbonamento

Abbonamento ricorrente in USD. Prima di confermare, controlla le imposte finali e il totale nella finestra di pagamento sicura.

Le imposte applicabili vengono mostrate al pagamento. Puoi gestire il rinnovo e annullare dal portale di fatturazione.

Paddle

ACCOUNT / BILLING

Il tuo abbonamento