Fluctuation

On this page, we’ll dive into the fluctuation endpoint you can use to see how exchange rates changed between two dates, in absolute terms and in percent.

Instead of requesting two historical days and computing the difference yourself, one request returns each currency’s rate at the end of both days and the change in between. Typical uses are “biggest movers” lists, price-adjustment triggers and month-over-month reporting.


GET/v3/fluctuation

Fluctuation

Returns, for every requested currency, its rate at the end of date_from and of date_to (UTC) and how much it changed.

Required attributes

  • Name
    date_from
    Type
    string
    Description

    First day, format YYYY-MM-DD. Data are available back to 1999-01-01.

  • Name
    date_to
    Type
    string
    Description

    Last day, format YYYY-MM-DD, on or after date_from. The newest allowed day is yesterday.

Optional attributes

  • Name
    base_currency
    Type
    string
    Description

    The base currency all rates are expressed in. Defaults to USD.

  • Name
    currencies
    Type
    string
    Description

    A list of comma separated currency codes you want to get (EUR,GBP,JPY). By default all currencies are returned.

  • Name
    type
    Type
    string
    Description

    Limit the result to fiat, metal or crypto.

  • Name
    format
    Type
    string
    Description

    json (default) or csv. The CSV has one row per currency: date_from,date_to,base_currency,currency,start_rate,end_rate,change,change_pct.

Response Properties

  • Name
    start_rate
    Type
    float
    Description

    The rate at the end of date_from.

  • Name
    end_rate
    Type
    float
    Description

    The rate at the end of date_to.

  • Name
    change
    Type
    float
    Description

    end_rate - start_rate.

  • Name
    change_pct
    Type
    float
    Description

    The change in percent of start_rate, rounded to 4 decimals. Negative when the currency got cheaper against the base currency.

A request costs one request of your quota. If no rates are stored for one of the two days, the endpoint returns a 404.

Request

GET
/v3/fluctuation
curl -G https://api.currencyapi.com/v3/fluctuation \
    -d date_from=2026-01-01 \
    -d date_to=2026-06-30 \
    -d currencies=EUR,GBP,JPY \
    -H "apikey: YOUR-API-KEY"

Response

{
    "meta": {
        "base_currency": "USD",
        "date_from": "2026-01-01",
        "date_to": "2026-06-30"
    },
    "data": {
        "EUR": {
            "code": "EUR",
            "start_rate": 0.9654,
            "end_rate": 0.8771,
            "change": -0.0883,
            "change_pct": -9.1465
        },
        "GBP": {
            "code": "GBP",
            "start_rate": 0.7988,
            "end_rate": 0.7302,
            "change": -0.0686,
            "change_pct": -8.5879
        },
        "JPY": {
            "code": "JPY",
            "start_rate": 157.21,
            "end_rate": 144.12,
            "change": -13.09,
            "change_pct": -8.3264
        }
    }
}