Referencia de la API

API de RateExchanger

Tipos de cambio de más de 170 divisas frente a cualquier divisa base. Cada endpoint es una petición HTTPS GET normal que devuelve JSON, así que puedes llamarla desde cualquier lenguaje sin SDK.

URL base https://rateexchanger.io/api
Formato JSON, UTF-8 Autenticación Token Bearer Códigos de divisa ISO 4217 Base por defecto USD Actualización de tipos Cada 30 minutos

Inicio rápido

  1. Consigue tu token de API. Todos los planes, incluido el gratuito, pueden usar la API.
  2. Envía una petición a /exchange con tu token en la cabecera Authorization. En un plan de pago, añade ?base=EUR para expresar todos los tipos frente a otra divisa.
  3. Lee los tipos del array data. Cada rate indica cuánto de esa divisa compra una unidad de base.

Endpoints

EndpointDevuelveToken
GET /exchangeLos tipos actuales de todas las divisas frente a una divisa base.Obligatorio
GET /convertUna cantidad convertida de una moneda a otra.Obligatorio
GET /collectionTus colecciones de divisas guardadas, con sus tipos.Obligatorio
GET /collection/{id}Una de tus colecciones.Obligatorio
GET /currencyLas divisas disponibles, paginadas con page y per_page.Obligatorio
GET /countryLos países disponibles, paginados con page y per_page.Obligatorio
curl "https://rateexchanger.io/api/exchange" \
  -H "Authorization: Bearer $RATEX_API_TOKEN"
Respuesta (recortada) 200 OK
{
    "base": "USD",
    "data": [
        {
            "id": "01a131b5-0c2e-7d4f-9b1a-3e8f6a2c4d71",
            "currency": {
                "id": "01a131b4-9ad1-7a3e-8c55-1f2b3c4d5e6f",
                "name": "Euro",
                "code": "EUR"
            },
            "rate": 0.896555,
            "updated_at": "2026-10-12T16:01:26.000000Z"
        },
        {
            "id": "01a131b5-0c2f-71b8-a6d2-7c9e0f1a2b3c",
            "currency": {
                "id": "01a131b4-9ad3-7e10-b2c4-5d6e7f8a9b0c",
                "name": "British Pound Sterling",
                "code": "GBP"
            },
            "rate": 0.757241,
            "updated_at": "2026-10-12T16:01:26.000000Z"
        }
    ]
}

Primeros pasos

Autenticación

Envía tu token de API como token bearer en la cabecera Authorization. Una petición sin token o con un token no válido recibe 401 con el mensaje Unauthenticated.

Tu token identifica tu cuenta, así que cada petición se comprueba frente a tu suscripción y tu cupo de solicitudes. Los tokens no caducan; siguen siendo válidos hasta que se revocan.

No hace falta enviar la cabecera Accept. La API siempre responde en JSON, también en los errores.

Guarda tu token en tu servidor. Cualquiera que lo tenga puede agotar las solicitudes de tu plan, así que nunca lo incluyas en JavaScript del navegador ni en una app móvil. Llama a la API desde tu backend y pasa los resultados a tus clientes.
curl "https://rateexchanger.io/api/exchange" \
  -H "Authorization: Bearer $RATEX_API_TOKEN"
Token ausente o no válido 401 Unauthorized
{
    "message": "Unauthenticated."
}

Primeros pasos

Límites de uso

Cada plan incluye un número fijo de solicitudes al mes, y cada petición a cualquier endpoint cuenta para ese límite, incluidas las que fallan con un error como 404 o 422. Las peticiones rechazadas porque tu plan está agotado o tu suscripción ha caducado no cuentan. Todos los planes reciben los mismos tipos, actualizados cada 30 minutos.

PlanSolicitudes incluidasActualización de tipos
Gratis500Cada 30 minutos
Básico20,000Cada 30 minutos
Pro700,000Cada 30 minutos
Elite1,800,000Cada 30 minutos

Cuando llegas al límite

Cuando se agotan las solicitudes de tu plan, todos los endpoints devuelven 429 hasta que empiece tu siguiente cupo mensual o mejores tu plan. Si tu suscripción caduca, todos los endpoints devuelven 403.

Cada cuenta puede enviar además hasta 50 solicitudes por segundo, compartidas entre todas sus claves. Si vas más rápido, recibes 429 con una cabecera Retry-After, y esas solicitudes no cuentan para tu plan. Cada respuesta incluye las cabeceras X-RateLimit-Limit y X-RateLimit-Remaining, y tu panel muestra cuántas solicitudes has usado este mes.

Límite del plan alcanzado 429 Too Many Requests
{
    "success": false,
    "error": "You have used up the allowed API requests (500) within your plan!",
    "code": 429
}

Primeros pasos

Errores

Las peticiones fallidas devuelven un código de estado HTTP estándar con un cuerpo JSON. Los errores 401, 422 y 500 incluyen un message; los parámetros no válidos además se detallan en errors, agrupados por nombre de parámetro.

Los errores 403, 404 y 429 tienen otro formato: success es false, el motivo está en error y code repite el código de estado. Comprueba primero el código HTTP y luego lee el campo que esté presente.

EstadoQué ha pasado
401Falta el token o no es válido.
403Tu correo aún no está verificado, tu suscripción ha caducado, tu plan no incluye la función que has pedido (colecciones, una divisa base personalizada o la conversión de moneda) o has pedido una colección que no es tuya.
404La colección o el endpoint no existe.
422Un parámetro no es válido, como una divisa base no admitida o un page no numérico.
429Estás enviando más de 50 solicitudes por segundo (espera los segundos de Retry-After) o se han agotado las solicitudes de tu plan (se renuevan cuando empieza tu siguiente cupo mensual, o puedes mejorar tu plan).
500Algo ha fallado por nuestra parte. Vuelve a intentarlo en unos momentos.
curl "https://rateexchanger.io/api/exchange?base=XYZ" \
  -H "Authorization: Bearer $RATEX_API_TOKEN"
Respuesta 422 Unprocessable Content
{
    "message": "Invalid base currency.",
    "errors": {
        "base": [
            "Invalid base currency."
        ]
    }
}

Endpoints

Tipos de cambio

GET/exchangeCuenta para tu plan

Devuelve el tipo actual de cada divisa disponible frente a una divisa base, actualizado cada 30 minutos. La propia divisa base no se incluye en data.

Cada rate indica cuánto de esa divisa compra una unidad de base, y updated_at indica cuándo se actualizó por última vez. Los tipos frente a una base personalizada se convierten a partir de los tipos en USD y no se redondean.

Parámetros de consulta

  • base string opcional

    Solo en planes de pago. Código de tres letras frente al que se expresan los tipos, como EUR. Por defecto, USD. En el plan gratuito, enviar base, aunque sea USD, devuelve 403. Un código no admitido devuelve 422.

curl "https://rateexchanger.io/api/exchange" \
  -H "Authorization: Bearer $RATEX_API_TOKEN"
Respuesta (recortada) 200 OK
{
    "base": "USD",
    "data": [
        {
            "id": "01a131b5-0c2e-7d4f-9b1a-3e8f6a2c4d71",
            "currency": {
                "id": "01a131b4-9ad1-7a3e-8c55-1f2b3c4d5e6f",
                "name": "Euro",
                "code": "EUR"
            },
            "rate": 0.896555,
            "updated_at": "2026-10-12T16:01:26.000000Z"
        },
        {
            "id": "01a131b5-0c2f-71b8-a6d2-7c9e0f1a2b3c",
            "currency": {
                "id": "01a131b4-9ad3-7e10-b2c4-5d6e7f8a9b0c",
                "name": "British Pound Sterling",
                "code": "GBP"
            },
            "rate": 0.757241,
            "updated_at": "2026-10-12T16:01:26.000000Z"
        }
    ]
}

Endpoints

Convertir moneda

GET/convertCuenta para tu planPlanes de pago

Convierte una cantidad de una moneda a otra al tipo de cambio actual, que se actualiza cada 30 minutos, para que no tengas que hacer las cuentas tú.

rate es cuánto de to compra una unidad de from, redondeado a 6 decimales, y result es amount convertido, también redondeado a 6 decimales. updated_at es cuándo se actualizó por última vez el más antiguo de los dos tipos, y es null cuando ambos lados son USD.

La conversión de moneda está disponible en los planes de pago que la incluyen. En los demás planes, este endpoint devuelve 403 con el error Your plan does not include currency conversion!

Parámetros de consulta

  • from string obligatorio

    Código de tres letras de la moneda de origen, como EUR. Da igual si va en mayúsculas o minúsculas. Un código no admitido devuelve 422.

  • to string obligatorio

    Código de tres letras de la moneda de destino, como GBP.

  • amount number obligatorio

    Cantidad que quieres convertir, mayor que 0, como 99 o 12.50.

  • collection string opcional

    Solo planes de pago. El id de una de tus colecciones, para añadir su porcentaje de markup al tipo, igual que se aplica a los tipos de la colección. Una colección que no es tuya devuelve 403.

curl "https://rateexchanger.io/api/convert?from=EUR&to=GBP&amount=99" \
  -H "Authorization: Bearer $RATEX_API_TOKEN"
Respuesta 200 OK
{
    "data": {
        "from": {
            "id": "01a131b4-9ad1-7a3e-8c55-1f2b3c4d5e6f",
            "name": "Euro",
            "code": "EUR"
        },
        "to": {
            "id": "01a131b4-9ad3-7e10-b2c4-5d6e7f8a9b0c",
            "name": "British Pound Sterling",
            "code": "GBP"
        },
        "amount": 99,
        "rate": 0.844612,
        "markup": 0,
        "collection": null,
        "result": 83.616576,
        "updated_at": "2026-10-12T16:01:26.000000Z"
    }
}

Endpoints

Listar colecciones

GET/collectionCuenta para tu planPlanes de pago

Devuelve todas las colecciones de divisas guardadas en tu cuenta, cada una con su nombre, su divisa base, su markup y el último tipo de las divisas que contiene. Usa las colecciones para obtener solo las divisas que te interesan en una sola llamada.

El rate de cada elemento indica cuánto de esa divisa compra una unidad de la base de la colección, con el porcentaje de markup de la colección añadido. Los tipos se redondean a 6 decimales. El updated_at de un elemento indica cuándo se actualizó su tipo por última vez, y es null para el USD, la divisa frente a la que se guardan todos los tipos.

Las colecciones están disponibles en los planes de pago. En el plan gratuito este endpoint devuelve 403 con el error Your plan does not include API collections!

Parámetros de consulta

Ninguno. Todas tus colecciones se devuelven en una sola respuesta.

curl "https://rateexchanger.io/api/collection" \
  -H "Authorization: Bearer $RATEX_API_TOKEN"
Respuesta 200 OK
{
    "data": [
        {
            "id": "01a2f7c3-4b5d-7e6f-8a9b-0c1d2e3f4a5b",
            "name": "Checkout currencies",
            "base": {
                "id": "01a131b4-9b52-7c1d-a3e4-6f7a8b9c0d1e",
                "name": "United States Dollar",
                "code": "USD"
            },
            "markup": 0,
            "items": [
                {
                    "id": "01a2f7c3-5c6d-7e8f-9a0b-1c2d3e4f5a6b",
                    "currency": {
                        "id": "01a131b4-9ad1-7a3e-8c55-1f2b3c4d5e6f",
                        "name": "Euro",
                        "code": "EUR"
                    },
                    "rate": 0.896555,
                    "updated_at": "2026-10-12T16:01:26.000000Z"
                },
                {
                    "id": "01a2f7c3-5c6e-7f90-a1b2-c3d4e5f6a7b8",
                    "currency": {
                        "id": "01a131b4-9ad3-7e10-b2c4-5d6e7f8a9b0c",
                        "name": "British Pound Sterling",
                        "code": "GBP"
                    },
                    "rate": 0.757241,
                    "updated_at": "2026-10-12T16:01:26.000000Z"
                }
            ],
            "created_at": "2026-09-02T14:22:10.000000Z",
            "updated_at": "2026-09-02T14:22:10.000000Z"
        }
    ]
}

Endpoints

Obtener una colección

GET/collection/{id}Cuenta para tu planPlanes de pago

Devuelve una de tus colecciones con el último tipo de cada divisa que contiene. La respuesta tiene los mismos campos que un elemento de Listar colecciones.

Parámetros de ruta

  • id string obligatorio

    El id de la colección. Una colección de otra cuenta devuelve 403; una que no existe devuelve 404.

curl "https://rateexchanger.io/api/collection/01a2f7c3-4b5d-7e6f-8a9b-0c1d2e3f4a5b" \
  -H "Authorization: Bearer $RATEX_API_TOKEN"
Respuesta 200 OK
{
    "data": {
        "id": "01a2f7c3-4b5d-7e6f-8a9b-0c1d2e3f4a5b",
        "name": "Checkout currencies",
        "base": {
            "id": "01a131b4-9b52-7c1d-a3e4-6f7a8b9c0d1e",
            "name": "United States Dollar",
            "code": "USD"
        },
        "markup": 0,
        "items": [
            {
                "id": "01a2f7c3-5c6d-7e8f-9a0b-1c2d3e4f5a6b",
                "currency": {
                    "id": "01a131b4-9ad1-7a3e-8c55-1f2b3c4d5e6f",
                    "name": "Euro",
                    "code": "EUR"
                },
                "rate": 0.896555,
                "updated_at": "2026-10-12T16:01:26.000000Z"
            },
            {
                "id": "01a2f7c3-5c6e-7f90-a1b2-c3d4e5f6a7b8",
                "currency": {
                    "id": "01a131b4-9ad3-7e10-b2c4-5d6e7f8a9b0c",
                    "name": "British Pound Sterling",
                    "code": "GBP"
                },
                "rate": 0.757241,
                "updated_at": "2026-10-12T16:01:26.000000Z"
            }
        ],
        "created_at": "2026-09-02T14:22:10.000000Z",
        "updated_at": "2026-09-02T14:22:10.000000Z"
    }
}

Endpoints

Divisas

GET/currencyCuenta para tu plan

Lista todas las divisas disponibles con su nombre y su código ISO 4217 de tres letras. Usa estos códigos en el parámetro base.

Parámetros de consulta

  • per_page number opcional

    Resultados por página. Por defecto, 25. Usa -1 para obtener todas las divisas en una sola respuesta, sin paginación.

  • page number opcional

    Página que se devuelve. Por defecto, 1.

Las respuestas paginadas también incluyen links (URLs de la primera, última, anterior y siguiente página) y meta (página actual, total, etc.).

curl "https://rateexchanger.io/api/currency?per_page=2" \
  -H "Authorization: Bearer $RATEX_API_TOKEN"
Respuesta (recortada) 200 OK
{
    "data": [
        {
            "id": "01a131b4-9ac6-70cb-9522-fb389aa55357",
            "name": "United Arab Emirates Dirham",
            "code": "AED"
        },
        {
            "id": "01a131b4-9ac7-724c-abaf-93bac978e922",
            "name": "Afghan Afghani",
            "code": "AFN"
        }
    ],
    "meta": {
        "current_page": 1,
        "last_page": 87,
        "per_page": 2,
        "total": 173
    }
}

Endpoints

Países

GET/countryCuenta para tu plan

Lista todos los países disponibles con su nombre, un slug apto para URLs y su código ISO 3166 de dos letras.

Parámetros de consulta

  • per_page number opcional

    Resultados por página. Por defecto, 25. Usa -1 para obtener todos los países en una sola respuesta, sin paginación.

  • page number opcional

    Página que se devuelve. Por defecto, 1.

curl "https://rateexchanger.io/api/country?per_page=2" \
  -H "Authorization: Bearer $RATEX_API_TOKEN"
Respuesta (recortada) 200 OK
{
    "data": [
        {
            "id": "01a131b4-9196-71ca-95ca-22bf8c422cce",
            "name": "Afghanistan",
            "slug": "afghanistan",
            "code": "AF"
        },
        {
            "id": "01a131b4-9197-7036-bcfe-b9a41f75a308",
            "name": "Albania",
            "slug": "albania",
            "code": "AL"
        }
    ],
    "meta": {
        "current_page": 1,
        "last_page": 99,
        "per_page": 2,
        "total": 198
    }
}