LUME EXCHANGE RATES / API REFERENCE

Documentação da API

A fonte configurada é Fornecedor externo de taxas de câmbio. As respostas identificam a fonte e a hora de publicação. As moedas disponíveis dependem dos dados reais.

Base URLhttps://lumeexchangerates.com

Visão geral

O Lume Exchange Rates reúne comparação, conversão e histórico para viagens, preços internacionais e produtos.

A fonte configurada é Fornecedor externo de taxas de câmbio. As respostas identificam a fonte e a hora de publicação. As moedas disponíveis dependem dos dados reais.

HTTPSJSONUTF-8GET / POSTUTC

Início rápido

Consulte as moedas e escolha anchor e targets. Campos e códigos são iguais em todos os idiomas.

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);

O exemplo do navegador usa a mesma origem. Sites privados exigem autorização; o URL não evita o início de sessão.

Acesso e autenticação

O acesso segue as permissões do site e a sessão do navegador. Ainda não existem chaves API de cliente, autenticação Bearer de cliente ou API pública entre origens. Guarde o App ID no servidor.

ParâmetroTipoDescrição
Base URLURLhttps://lumeexchangerates.com
Content-Typeheaderapplication/json
Customer API key—Esta prévia alojada utiliza a sessão iniciada no navegador. Ainda não emite chaves API individuais para clientes.
Provider App IDserver secretOPEN_EXCHANGE_RATES_APP_ID
CORSsame-originNão são fornecidos cabeçalhos de acesso entre origens.

Authorization: Token serve apenas a ligação do servidor a Fornecedor externo de taxas de câmbio, não autentica clientes. Verifique HTTP e Content-Type: o acesso pode devolver HTML ou redirecionamentos.

Endpoints

MethodPathDescrição
GET/v1/currenciesTodos os símbolos com taxas atuais e nomes do fornecedor. Inclui moedas alternativas e metais disponíveis.
GET/v1/quotesSímbolo base; USD por defeito. Aceita qualquer símbolo atual do fornecedor.
GET/v1/exchangeMontante numérico não negativo a converter.
GET/v1/historyConsulte uma data em /v1/history e um intervalo em /v1/series.
GET/v1/seriesConsulte uma data em /v1/history e um intervalo em /v1/series.
GET/v1/candlesOHLC
GET/v1/capabilitiesDisponibilidade
GET/api/rates/latestÚltima taxa publicada
GET/api/currenciesMoeda
GET/api/rates/historyGráficos
GET/api/rates/previousDia UTC anterior
POST/api/convertConversor

/v1 oferece consultas compactas; /api fornece taxas, histórico e conversão do site. Os valores predefinidos e formatos diferem.

GET /v1/currencies

Todos os símbolos com taxas atuais e nomes do fornecedor. Inclui moedas alternativas e metais disponíveis.

Parâmetro: —

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

Valores e datas são exemplos, não taxas atuais; as listas podem estar abreviadas. Consulte dados reais no explorador API.

JSON
{
  "meta": {
    "mode": "provider",
    "source": "Fornecedor externo de taxas de câmbio",
    "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"
    }
  ]
}
ParâmetroTipoDescrição
data[].codestringCódigo em maiúsculas; ativos alternativos podem ter mais de três caracteres ou sublinhados.
data[].namestringNome fornecido pelo fornecedor ou, na sua ausência, o código.

GET /v1/quotes

Símbolo base; USD por defeito. Aceita qualquer símbolo atual do fornecedor.

ParâmetroTipoObrigatórioPredefiniçãoDescrição
anchorstringOpcionalUSDSímbolo base; USD por defeito. Aceita qualquer símbolo atual do fornecedor.
targetsstringOpcionaltodasSímbolos de destino separados por vírgulas. Omita para devolver todos os símbolos disponíveis.
cURL
curl --request GET 'https://lumeexchangerates.com/v1/quotes?anchor=USD&targets=EUR,JPY'

Valores e datas são exemplos, não taxas atuais; as listas podem estar abreviadas. Consulte dados reais no explorador API.

JSON
{
  "meta": {
    "mode": "provider",
    "source": "Fornecedor externo de taxas de câmbio",
    "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 devolve unidades de destino por unidade base. Remove duplicados; códigos vazios, minúsculos ou indisponíveis devolvem 400.

ParâmetroTipoDescrição
anchorstringSímbolo base; USD por defeito. Aceita qualquer símbolo atual do fornecedor.
data[].currencystringPara
data[].valuenumberrates[currency] / rates[anchor]

GET /v1/exchange

Montante numérico não negativo a converter.

ParâmetroTipoObrigatórioPredefiniçãoDescrição
fromstringOpcionalUSDSímbolo da moeda de origem; USD por defeito.
tostringOpcionalKRWSímbolo da moeda de destino; KRW por defeito.
quantitynumberOpcional1Montante numérico não negativo a converter.
cURL
curl --request GET 'https://lumeexchangerates.com/v1/exchange?from=USD&to=EUR&quantity=100'

Valores e datas são exemplos, não taxas atuais; as listas podem estar abreviadas. Consulte dados reais no explorador API.

JSON
{
  "meta": {
    "mode": "provider",
    "source": "Fornecedor externo de taxas de câmbio",
    "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. Especifique sempre from e to; esta rota GET antiga usa KRW por predefinição. Valores vazios, negativos, NaN, infinitos e resultados fora de alcance devolvem 400.

ParâmetroTipoDescrição
data.ratenumberrates[to] / rates[from]
data.resultnumberquantity × rate

GET /api/rates/latest

Última taxa publicada

Parâmetro: —

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

Valores e datas são exemplos, não taxas atuais; as listas podem estar abreviadas. Consulte dados reais no explorador API.

JSON
{
  "meta": {
    "provider": "Fornecedor externo de taxas de câmbio",
    "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
    }
  }
}
ParâmetroTipoDescrição
data.basestringUSD
data.ratesobjectTaxas disponíveis relativas a USD; confirme os códigos na resposta mais recente.
meta.provider_timestampintegerUTC · UNIX seconds
meta.published_atstringISO 8601 · UTC
meta.fetched_atstringHora de obtenção pelo servidor, distinta da publicação do fornecedor.
meta.expected_interval_secondsintegerseconds
meta.stalebooleantrue se a idade exceder max(3 × intervalo esperado, 900 segundos).
meta.lag_secondsintegerSegundos desde a publicação do fornecedor.
meta.persistent_storagebooleanIndica se o serviço de recolha persistente está ligado.
meta.kindstringlatest_published | utc_daily

GET /api/currencies

Moeda

ParâmetroTipoObrigatórioPredefiniçãoDescrição
langstringOpcionalenen / 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'

Valores e datas são exemplos, não taxas atuais; as listas podem estar abreviadas. Consulte dados reais no explorador API.

JSON
{
  "meta": {
    "provider": "Fornecedor externo de taxas de câmbio",
    "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 traduz nomes. Ativos desconhecidos mantêm o código. Só são devolvidos códigos dos dados atuais.

GET /api/rates/history

Consulte uma data em /v1/history e um intervalo em /v1/series.

ParâmetroTipoObrigatórioPredefiniçãoDescrição
fromstringOpcionalUSDDe
tostringOpcionalEURPara
periodenumOpcional1M1D | 1W | 1M | 3M | 1Y
cURL
curl --request GET 'https://lumeexchangerates.com/api/rates/history?from=USD&to=EUR&period=1W'

Valores e datas são exemplos, não taxas atuais; as listas podem estar abreviadas. Consulte dados reais no explorador API.

JSON
{
  "meta": {
    "kind": "utc_daily",
    "from": "USD",
    "to": "EUR",
    "period": "1W",
    "provider": "Fornecedor externo de taxas de câmbio",
    "persistent_storage": false
  },
  "data": [
    {
      "time": "2026-01-01",
      "value": 0.9
    },
    {
      "time": "2026-01-02",
      "value": 0.91
    }
  ]
}

1W começa há sete dias; 1M, 3M e 1Y usam períodos de calendário. Os dias terminam ontem. Ajustam-se fins de mês e anos bissextos. Períodos longos dividem-se por mês, ordenam-se e eliminam duplicados.

ParâmetroTipoDescrição
data[].timestring | integerDiário: YYYY-MM-DD (UTC). Intradiário: segundos UNIX.
data[].valuenumberrates[to] / rates[from]
meta.kindstringutc_daily | intraday
JSON
{
  "meta": {
    "kind": "intraday",
    "persistent_storage": false
  },
  "data": []
}

Sem recolha, 1D devolve HTTP 200 e lista vazia: não é erro nem dados por minuto. Moedas ausentes num período histórico podem falhar.

GET /api/rates/previous

Dia UTC anterior

ParâmetroTipoObrigatórioPredefiniçãoDescrição
fromstringOpcionalUSDDe
tostringOpcionalEURPara
cURL
curl --request GET 'https://lumeexchangerates.com/api/rates/previous?from=USD&to=EUR'

Valores e datas são exemplos, não taxas atuais; as listas podem estar abreviadas. Consulte dados reais no explorador API.

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

Compara com o dia UTC anterior. reference_timestamp é o fim lógico do dia, não a publicação real. Variação: (atual − referência) / referência × 100.

POST /api/convert

Conversor

ParâmetroTipoObrigatórioPredefiniçãoDescrição
Content-TypeheaderObrigatórioapplication/jsonapplication/json
amountnumberObrigatório—0 ≤ amount ≤ 1e15; finite
fromstringObrigatório—De
tostringObrigatório—Para
cURL
curl --request POST 'https://lumeexchangerates.com/api/convert' \
  --header 'Content-Type: application/json' \
  --data '{"amount":100,"from":"USD","to":"EUR"}'

Valores e datas são exemplos, não taxas atuais; as listas podem estar abreviadas. Consulte dados reais no explorador API.

JSON
{
  "meta": {
    "provider": "Fornecedor externo de taxas de câmbio",
    "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
  }
}

Envie amount como número JSON; a cadeia "100" devolve 400. Os códigos devem existir no snapshot atual. Não executa transferências nem transações.

GET /v1/history

Consulte uma data em /v1/history e um intervalo em /v1/series.

ParâmetroTipoObrigatórioPredefiniçãoDescrição
dateYYYY-MM-DDObrigatório—1999-01-01 ≤ date ≤ UTC today
anchorstringOpcionalUSDDe
targetsCSVOpcionalallPara
cURL
curl --request GET 'https://lumeexchangerates.com/v1/history?date=2026-01-01&anchor=EUR&targets=USD,JPY'

Valores e datas são exemplos, não taxas atuais; as listas podem estar abreviadas. Consulte dados reais no explorador API.

JSON
{
  "meta": {
    "date": "2026-01-01",
    "published_at": "2026-01-01T23:00:00Z",
    "partial_day": false
  },
  "anchor": "EUR",
  "data": [
    {
      "currency": "USD",
      "value": 1.1
    }
  ]
}
ParâmetroTipoDescrição
meta.partial_daybooleanReferência diária UTC
meta.published_atISO 8601 UTCÚltima taxa publicada

GET /v1/series

Consulte uma data em /v1/history e um intervalo em /v1/series.

ParâmetroTipoObrigatórioPredefiniçãoDescrição
start / endYYYY-MM-DDObrigatório—1999-01-01 ≤ start ≤ end < UTC today; ≤ 366 days inclusive
anchor / targetsstring / CSVOpcionalUSD / 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'

Valores e datas são exemplos, não taxas atuais; as listas podem estar abreviadas. Consulte dados reais no explorador API.

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 em /v1/candles exige permissão do fornecedor. Consulte /v1/capabilities; a disponibilidade depende do plano configurado.

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

GET /v1/candles

OHLC em /v1/candles exige permissão do fornecedor. Consulte /v1/capabilities; a disponibilidade depende do plano configurado.

ParâmetroTipoObrigatórioPredefiniçãoDescrição
startYYYY-MM-DDTHH:mm:00ZObrigatório—UTC; completed period only; ≥ 2016-12-19
periodenumObrigatório—1m | 5m | 15m | 30m | 1h | 12h | 1d | 1w | 1mo
anchor / targetsstring / CSVOpcionalUSD / allprovider base / symbols
cURL
curl --request GET 'https://lumeexchangerates.com/v1/candles?start=2026-01-01T00%3A00%3A00Z&period=1d&anchor=USD&targets=EUR'

Valores e datas são exemplos, não taxas atuais; as listas podem estar abreviadas. Consulte dados reais no explorador API.

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

Disponibilidade

Parâmetro: —

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

Valores e datas são exemplos, não taxas atuais; as listas podem estar abreviadas. Consulte dados reais no explorador API.

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 em /v1/candles exige permissão do fornecedor. Consulte /v1/capabilities; a disponibilidade depende do plano configurado.

Dados e precisão

As taxas são indicativas, não ofertas bancárias nem preços garantidos. A conversão usa o mesmo conjunto de taxas; arredonde apenas ao apresentar ou liquidar.

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

As taxas preservam a precisão de vírgula flutuante sem truncar para um número fixo de casas decimais. Arredonde apenas na apresentação ou segundo a política contabilística.

Uma unidade de origem, incluindo JPY. Multiplique por 100 apenas na apresentação, se necessário. Considere erros binários JavaScript e defina regras decimais e de arredondamento na liquidação.

Datas e horas

UNIX usa segundos UTC e ISO usa Z. Datas UTC podem diferir das locais. O site usa o fuso do navegador. meta.timezone é apenas uma indicação de apresentação.

ParâmetroTipoDescrição
/v1 meta.as_ofISO 8601 | YYYY-MM-DDData e hora do fornecedor
/v1 meta.refresh_interval_secondsintegerCache
/v1 meta.currency_countinteger… moedas disponíveis
/v1 meta.modeprovider | dailyFonte dos dados
/api meta.published_atISO 8601 UTCÚltima taxa publicada
history data[].timeYYYY-MM-DD UTC | UNIX secondsReferência diária UTC

Erros

HTTPcodeDescrição
400INVALID_CURRENCY / INVALID_INPUT / INVALID_CONVERSION / INVALID_JSON / INVALID_PERIODIntroduza um montante não negativo
405METHOD_NOT_ALLOWEDGET: /v1/*, /api/rates/*, /api/currencies; POST: /api/convert
404NOT_FOUND/api/rates/*
422HISTORY_NOT_IN_PLAN / DATA_UNAVAILABLEDisponibilidade
429RATE_LIMITED/api/* · 90 / IP / minute
404NOT_FOUNDUnknown /v1 endpoint
422FEATURE_NOT_IN_PLAN / HISTORY_NOT_IN_PLAN / OHLC_NOT_IN_PLANDisponibilidade
400INVALID_DATE / INVALID_DATE_RANGE / INVALID_PERIOD / INCOMPLETE_PERIODIntroduza um montante não negativo
503PROVIDER_UNAVAILABLE / DATA_UNAVAILABLE / SERVICE_UNAVAILABLEAs taxas estão indisponíveis. Tente novamente em breve.
JSON
{
  "error": {
    "code": "INVALID_CURRENCY",
    "message": "Symbol not available in latest provider data"
  }
}

message pode faltar. Use HTTP e error.code. Corrija a entrada; para 429 ou 503 temporário use tentativas limitadas com espera exponencial e aleatória. Retry-After não é garantido.

Limites e cache

Os dados usam cache; a configuração atual aponta para cinco minutos. /api: 90 pedidos por minuto por IP, por instância no modo direto e partilhados com Redis. /v1 ainda não aplica quotas futuras.

Cache-Control: no-store refere-se à resposta, não à cache do fornecedor no servidor. Reutilize snapshots pela publicação. Numa falha pode regressar o último valor válido; verifique stale ou as_of. A cache Worker não é 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
}

Disponibilidade

OHLC em /v1/candles exige permissão do fornecedor. Consulte /v1/capabilities; a disponibilidade depende do plano configurado.

OHLC em /v1/candles exige permissão do fornecedor. Consulte /v1/capabilities; a disponibilidade depende do plano configurado.

Explorador API

Utilize a API deste site. A chave do fornecedor permanece no servidor.

PEDIDO / cURL
RESPOSTA / JSON
Execute o pedido para ver a resposta JSON real.
WELCOME TO LUME EXCHANGE RATES

Comece a criar com a Lume Exchange Rates

Explore taxas reais sem cartão. O acesso gratuito à API é uma prévia; não é criada qualquer compra ou cobrança.

Taxas reais · Sem pagamento necessário

SUBSCRIPTION / USD

Rever a subscrição

Subscrição recorrente em USD. Antes de confirmar, consulte os impostos finais e o total na janela de pagamento seguro.

Os impostos aplicáveis são apresentados no pagamento. Pode gerir a renovação e cancelar no portal de faturação.

Paddle

ACCOUNT / BILLING

A sua subscrição