API de cambio de divisas para desarrolladores

CurrencyRateAPI proporciona acceso ultrarrápido a tipos de cambio históricos y actualizados obtenidos directamente de bancos centrales confiables, incluido el Banco Central Europeo.

Diseñada para desarrolladores, nuestra API RESTful ofrece respuestas JSON limpias y admite una fácil integración en sitios web, aplicaciones o sistemas internos en minutos, sin complejidad innecesaria.

GET https://currencyrateapi.com/api/latest?
    base=USD HTTP/1.1

{
    "success": true,
    "base": "usd",
    "date": "2026-01-18",
    "rates": {
        "GBP": 0.8820,
        "JPY": 132.36,
        "EUR": 0.8133
    },
    "last_update_unix": 1737214206
}

Uso de la API

Utilice esta solicitud para recuperar la lista completa de monedas admitidas con sus códigos de 3 letras correspondientes

GET https://currencyrateapi.com/api/codes HTTP/1.1

Utilice esta solicitud para obtener los últimos tipos de cambio de GBP y JPY en relación con el USD

GET https://currencyrateapi.com/api/latest?base=USD&codes=GBP,JPY HTTP/1.1

Utilice esta solicitud para obtener los tipos de cambio históricos de USD, EUR y CAD en relación con GBP el 25 de mayo de 2020

GET https://currencyrateapi.com/api/2020-05-25?base=GBP&codes=USD,EUR,CAD HTTP/1.1

Lenguajes de programación

CurrencyRateAPI se puede integrar en cualquier proyecto y es compatible con los principales lenguajes de programación.
Diseñada para brindar flexibilidad y facilidad de uso, nuestra API se adapta naturalmente a aplicaciones web, móviles y backend, independientemente de su pila tecnológica.
$baseCurrency = 'USD';
$codes = 'EUR,CAD,JPY';

$url = 'https://currencyrateapi.com/api/latest?codes=' . $codes .
       '&base=' . $baseCurrency;

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$jsonResponse = curl_exec($ch);
curl_close($ch);

$objResponse = json_decode($jsonResponse);
echo "1 " . $baseCurrency . " is " . $objResponse->rates->EUR . " Euros";
/* Outputs 1 USD is 0.8133 Euros */
base = 'USD'
codes = 'EUR,CAD,JPY'

url = (
    f'https://currencyrateapi.com/api/latest?codes={codes}'
    f'&base={base}'
)

response = requests.get(url)
data = response.json()

print(f"1 {base} is {data['rates']['EUR']} Euros")
const base = 'USD';
const codes = 'EUR,CAD,JPY';

const url = `https://currencyrateapi.com/api/latest?codes=${codes}` +
            `&base=${base}`;

(async () => {
  try {
    const res = await fetch(url);
    const data = await res.json();
    console.log(
      `1 ${base} is ${data.rates.EUR} Euros`
    );
  } catch (err) {
    console.error('Error:', err);
  }
})();
base = 'USD'
codes = 'EUR,CAD,JPY'

url = URI(
  "https://currencyrateapi.com/api/latest?codes=#{codes}" \
  "&base=#{base}"
)

response = Net::HTTP.get(url)
data = JSON.parse(response)

puts "1 #{base} is #{data['rates']['EUR']} Euros"
String base = "USD";
String codes = "EUR,CAD,JPY";
String url = "https://currencyrateapi.com/api/latest?codes=" +
             codes + "&base=" + base;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create(url))
    .build();

HttpResponse<String> response =
    client.send(request, HttpResponse.BodyHandlers.ofString());

JSONObject data = new JSONObject(response.body());
System.out.println(
    "1 " + base + " is " +
    data.getJSONObject("rates").getDouble("EUR") + " Euros"
);
base := "USD"
codes := "EUR,CAD,JPY"
url := "https://currencyrateapi.com/api/latest?codes=" +
       codes + "&base=" + base

resp, err := http.Get(url)
if err != nil {
    panic(err)
}
defer resp.Body.Close()

var data struct {
    Rates map[string]float64 `json:"rates"`
}

if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
    panic(err)
}

fmt.Printf(
    "1 %s is %.6f Euros\n",
    base, data.Rates["EUR"],
)
string base = "USD";
string codes = "EUR,CAD,JPY";

string url =
    $"https://currencyrateapi.com/api/latest?codes={codes}" +
    $"&base={base}";

using HttpClient client = new HttpClient();
string response = await client.GetStringAsync(url);

using JsonDocument doc = JsonDocument.Parse(response);
double eur = doc.RootElement
                .GetProperty("rates")
                .GetProperty("EUR")
                .GetDouble();

Console.WriteLine($"1 {base} is {eur} Euros");

Preguntas frecuentes

Las preguntas más frecuentes sobre CurrencyRateAPI, límites de uso, tiempo de actividad y cómo comenzar a usar su clave API
¿Qué es CurrencyRateAPI y cómo funciona?
La API de Tipos de Cambio es un servicio RESTful rápido y confiable que proporciona tipos de cambio precisos para 1131 monedas globales en formato JSON. Diseñada para desarrolladores, startups y empresas consolidadas, ofrece una interfaz sencilla y eficiente para acceder a datos financieros históricos y en tiempo real, tanto para crear herramientas internas, aplicaciones o plataformas orientadas al cliente.
¿Quién mantiene y opera el servicio API de tipo de cambio?
Nuestro equipo desarrolla, mantiene y opera la API de tipos de cambio, con el objetivo de ofrecer una interfaz de datos estable y fácil de usar para desarrolladores. El servicio está diseñado para satisfacer las necesidades de startups, pequeñas empresas y aplicaciones empresariales que requieren acceso confiable a datos de cambio de divisas.
¿Cuál es el tiempo de actividad y disponibilidad típicos de la API?
La API de tipos de cambio mantiene un tiempo de actividad constante del 99,9 %, basado en un promedio móvil de 12 meses. El servicio se supervisa 24/7 para garantizar alta disponibilidad, fiabilidad y acceso ininterrumpido a los datos de cambio de divisas.
¿Puedo recuperar los tipos de cambio para una fecha específica?
Sí, puede solicitar tipos de cambio históricos para cualquier fecha específica a partir del 04/01/1999 mediante el punto de acceso de historial. Si faltan datos de la fecha solicitada, la API devolverá automáticamente los tipos de cambio de la fecha anterior más cercana (dentro de un período de 8 días).