Xe Currency Data API

Xe (a Euronet Money Transfer brand) Currency Data API — a REST JSON API serving real-time and historical exchange rates for 170+ currencies from 100+ global sources. Documented Swagger 2.0 with HTTP Basic authentication (account id + API key). Endpoints cover account info, currencies, convert_from, convert_to, historic rates, historic period, monthly average, and usage stats.

OpenAPI Specification

xe-currency-data-api-openapi.json Raw ↑
{"swagger":"2.0","info":{"version":"1.0.2","title":"XE Currency Data API","description":"XE Currency Data - Integrate your application with our globally trusted currency data.\n\n Get your free API credentials for 7 days <a href=\"https://xecd.xe.com/account/signup.php?freetrial\">here</a>"},"host":"xecdapi.xe.com","basePath":"/v1","schemes":["https"],"produces":["application/json"],"security":[{"basicAuth":[]}],"paths":{"/account_info":{"get":{"tags":["Account Information"],"summary":"This endpoint will return basic information for a specific account.\n","description":"Requires Headers \"username\" and \"password\"\n","responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/AccountInfoResponse"},"headers":{"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/ErrorResponse"}},"429":{"description":"Too Many Requests","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/currencies":{"get":{"tags":["Currency Information"],"summary":"Access a list of all available currencies.","description":"This endpoint will return a list of all currencies, active and obsolete, available via the XE Currency Data Feed API.\n\nIf the obsolete optional parameter is included, then the list will contain both active and obsolete currencies.","parameters":[{"name":"iso","in":"query","description":"OPTIONAL – Comma separated list of ISO 4217 codes. This will limit the data returned to only those currencies that are specified. If this parameter is omitted, this endpoint will return results for all currencies. \n\n It is a prefix match; you can provide it with one, two, or three characters and it will return a list of all the currencies with ISO 4217 codes that match. \n\n A list of acceptable ISO 4217 currency codes can be found here:http://www.xe.com/iso4217.php","required":false,"type":"string"},{"name":"obsolete","in":"query","description":"OPTIONAL – If 'true' then endpoint will display currencies that are obsolete but for which historical data is available","required":false,"type":"boolean"},{"name":"language","in":"query","description":"OPTIONAL – Default is en. Specified as an RFC-1766-compliant language tag.\n\nLanguages available: ar, de, en, es, fr, it, ja, pt, sv, zh-CN, zh-HK.","required":false,"type":"string"},{"name":"additionalInfo","in":"query","description":"OPTIONAL - If 'symbol' then returns 'currency_symbol' and 'currency_symbol_on_right' in response","required":false,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/CurrencyInfoResponse"},"headers":{"ETag":{"type":"string"},"Last-Modified":{"type":"string"},"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"304":{"description":"Not Modified","schema":{},"headers":{"ETag":{"type":"string"},"Last-Modified":{"type":"string"},"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/ErrorResponse"}},"429":{"description":"Too Many Requests","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/convert_from":{"get":{"tags":["Conversions"],"summary":"Convert from one base currency to one or multiple counter currencies.","description":"In the example below, the Convert FROM API query endpoint is to convert from GBP to all available currencies (the asterisk * represents ALL currencies).\n<a href=\"https://xecdapi.xe.com/v1/convert_from.csv/?from=GBP&to=*&amount=1\">https://xecdapi.xe.com/v1/convert_from.csv/?from=GBP&to=*&amount=1</a>","parameters":[{"name":"from","in":"query","description":"OPTIONAL – Currency you want to convert from ISO code.  Note if this parameter is omitted, USD is assumed.\n","required":false,"type":"string"},{"name":"to","in":"query","description":"Comma separated list of to currencies ISO 4217 codes.  This will limit the data returned to only those currencies you are interested in. Use an asterisk * to convert all currencies.\n Note: Obsolete currencies are replaced by their successor currency. \n","required":true,"type":"string"},{"name":"amount","in":"query","description":"OPTIONAL – This parameter can be used to specify the amount you want to convert, if an amount is not specified then 1 is assumed.\n","required":false,"type":"number"},{"name":"obsolete","in":"query","description":"OPTIONAL – If ‘true’ then endpoint will display rates for currencies that are obsolete. If ‘false’ then obsolete currencies are replaced by their successor currency.","required":false,"type":"boolean"},{"name":"inverse","in":"query","description":"OPTIONAL – If ‘true’ then endpoint will include inverse rates. An inverse rate is a quote for which the base currency and counter currency are switched. An inverse is calculated by dividing one by the exchange rate. Example: If the exchange rate for $1 USD to EUR = 0.874852, then the inverse rate would be 1/0.874852 = 1.14305, meaning that US$1.14305 would buy 1 euro.","required":false,"type":"boolean"},{"name":"decimal_places","in":"query","description":"OPTIONAL – This parameter can be used to specify the number of decimal places included in the output. Example 1 USD to EUR = 0.874852 with decimal_places=3, the output returned will be EUR = 0.875","required":false,"type":"number"},{"name":"margin","in":"query","description":"OPTIONAL – This parameter can be used to add a margin (-/+)  to XE's mid-market rate. Example: add margin=2.05 parameter to the endpoint and the API will return our mid-market rates plus the margin of 2.05 percent","required":false,"type":"number"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ConvertFromResponse"},"headers":{"ETag":{"type":"string"},"Last-Modified":{"type":"string"},"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"304":{"description":"Not Modified","schema":{},"headers":{"ETag":{"type":"string"},"Last-Modified":{"type":"string"},"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/ErrorResponse"},"headers":{"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/ErrorResponse"}},"429":{"description":"Too Many Requests","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/convert_to":{"get":{"tags":["Conversions"],"summary":"Convert to a currency amount from one or multiple other currencies.","description":"In the example below, the Convert TO API query endpoint is to convert to GBP from all available currencies (the asterisk * represents ALL currencies).\n<a href=\"https://xecdapi.xe.com/v1/convert_to.csv/?to=GBP&from=*&amount=1\">https://xecdapi.xe.com/v1/convert_to.csv/?to=GBP&from=*&amount=1</a>","parameters":[{"name":"from","in":"query","description":"Comma separated list of to currencies ISO codes.  This will limit the data returned to only those currencies you are interested in. Use an asterisk * to convert all currencies.\n Note: Obsolete currencies are replaced by their successor currency. \n","required":true,"type":"string"},{"name":"to","in":"query","description":"OPTIONAL - Currency you want to convert to ISO code.  Note if this parameter is omitted, USD is assumed.\n","required":false,"type":"string"},{"name":"amount","in":"query","description":"OPTIONAL – This parameter can be used to specify the amount you want to convert, if an amount is not specified then 1 is assumed.\n","required":false,"type":"number"},{"name":"obsolete","in":"query","description":"OPTIONAL – If ‘true’ then endpoint will display rates for currencies that are obsolete. If ‘false’ then obsolete currencies are replaced by their successor currency.","required":false,"type":"boolean"},{"name":"inverse","in":"query","description":"OPTIONAL – If ‘true’ then endpoint will display the inverse of the converted value. If ‘false‘ then it will not be displayed.","required":false,"type":"boolean"},{"name":"decimal_places","in":"query","description":"OPTIONAL – This parameter can be used to specify the number of decimal places included in the output. Example 1 USD to EUR = 0.874852 with decimal_places=3, the output returned will be EUR = 0.875","required":false,"type":"number"},{"name":"margin","in":"query","description":"OPTIONAL – This parameter can be used to add a margin (-/+)  to XE's mid-market rate. Example: add margin=2.05 parameter to the endpoint and the API will return our mid-market rates plus the margin of 2.05 percent","required":false,"type":"number"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ConvertToResponse"},"headers":{"ETag":{"type":"string"},"Last-Modified":{"type":"string"},"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"304":{"description":"Not Modified","schema":{},"headers":{"ETag":{"type":"string"},"Last-Modified":{"type":"string"},"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/ErrorResponse"},"headers":{"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/ErrorResponse"}},"429":{"description":"Too Many Requests","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/historic_rate":{"get":{"tags":["Historic Rates"],"summary":"Get historic rates for one base currency against one or more counter currencies.","description":"The Currency Data API provides you with access to daily historical rates back to 1998. When retrieving historical rates through our Currency Data API, you would specify your requested currencies along with the date and/or date range and time (hh:mm). If your account is registered for a Live package then you have access to minutely rates for the past 7 days and outside of 7 days you have access to rates on the hour. Historical rates are available with all API packages. The time parameter (hh:mm) only applies to Live packages.\n The endpoint returns the historic rate for a single base currency and one or more counter currencies.\n\n<a href=\"https://xecdapi.xe.com/v1/historic_rate.csv/?from=USD&date=2011-03-05&to=CAD,EUR\">https://xecdapi.xe.com/v1/historic_rate.csv/?from=USD&date=2011-03-05&to=CAD,EUR</a>\n","parameters":[{"name":"from","in":"query","description":"OPTIONAL – Currency you want to convert from ISO code.\nNote if this parameter is omitted, USD is assumed.\n","required":false,"type":"string"},{"name":"to","in":"query","description":"Comma separated list of to currencies ISO 4217 codes.\nThis will limit the data returned to only those currencies you are interested in. Use an asterisk * to specify all currencies.\n Note: Obsolete currencies are replaced by their precursor or successor currency. \n","required":true,"type":"string"},{"name":"amount","in":"query","description":"OPTIONAL – This parameter can be used to specify the amount you want to convert, if an amount is not specified then 1.00 is assumed.\n","required":false,"type":"number"},{"name":"date","in":"query","description":"UTC date should be in the form of YYYY-MM-DD, up to 1995-11-16.\nIf your account is registered for a Daily package your endpoint will return rates at your preferred daily lock-in time.\nIf your account is registered for a Live package your endpoint will return XE mid-day rate unless you specify a time parameter in your call request.\n","required":true,"type":"string"},{"name":"time","in":"query","description":"OPTIONAL – *Time parameter is applicable to Live package only*.\nUTC time is in format of HH:MM Time option is only available for the last 24 hours, if time is not specified, only one table is returned using the XE mid-day rates (As returned in http://www.xe.com/currencytables/)\n","required":false,"type":"string"},{"name":"obsolete","in":"query","description":"OPTIONAL – If ‘true’ then endpoint will display rates for currencies that are obsolete. If ‘false’ then obsolete currencies are replaced by their successor currency.","required":false,"type":"boolean"},{"name":"inverse","in":"query","description":"OPTIONAL – If ‘true’ then endpoint will display the inverse of the converted value. If ‘false‘ then it will not be displayed.","required":false,"type":"boolean"},{"name":"decimal_places","in":"query","description":"OPTIONAL – This parameter can be used to specify the number of decimal places included in the output. Example 1 USD to EUR = 0.874852 with decimal_places=3, the output returned will be EUR = 0.875","required":false,"type":"number"},{"name":"margin","in":"query","description":"OPTIONAL – This parameter can be used to add a margin (-/+)  to XE's mid-market rate. Example: add margin=2.05 parameter to the endpoint and the API will return our mid-market rates plus the margin of 2.05 percent","required":false,"type":"number"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/HistoricRateResponse"},"headers":{"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/ErrorResponse"},"headers":{"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/ErrorResponse"}},"429":{"description":"Too Many Requests","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/historic_rate/period":{"get":{"tags":["Historic Rates"],"summary":"Get historic rates for one base currency against one or more counter currencies over a period of time.","description":"This endpoint returns a daily historic rate for a single base currency and one or more counter currencies over a period of time.\n\n<a href=\"https://xecdapi.xe.com/v1/historic_rate/period.csv/?from=USD&to=CAD&start_timestamp=2017-09-01&end_timestamp=2017-11-30&per_page=500\">https://xecdapi.xe.com/v1/historic_rate/period.csv/?from=USD&to=CAD&start_timestamp=2017-09-01&end_timestamp=2017-11-30&per_page=500</a>\n\nOptional parameters available with Live accounts:\n\n&interval=minutely\n&interval=hourly \n","parameters":[{"name":"from","in":"query","description":"OPTIONAL – Currency you want to convert from ISO code.  Note if this parameter is omitted, USD is assumed.\n","required":false,"type":"string"},{"name":"to","in":"query","description":"Comma separated list of to currencies based on ISO 4217 codes.\nThis will limit the data returned to only those currencies you are interested in.\n Note: Obsolete currencies are replaced by their precursor or successor currency. \n","required":true,"type":"string"},{"name":"amount","in":"query","description":"OPTIONAL – This parameter can be used to specify the amount you want to convert, if an amount is not specified then 1.00 is assumed.\n","required":false,"type":"number"},{"name":"start_timestamp","in":"query","description":"OPTIONAL - ISO 8601 timestamp in the format yyyy-mm-ddThh:mm giving the UTC date and time of the start of the period for which you would like rates returned.\n\nIf your account is registered for a Daily package your endpoint will return rates at your preferred daily lock-in time starting on the date specified in your request.  If your account does not have a preferred daily lock-in time then rates will return as of 00:00 UTC\nIf your account is registered for a Live package your endpoint will return rates starting at 00:00 UTC if no time portion is specified.\n","required":false,"type":"string"},{"name":"end_timestamp","in":"query","description":"OPTIONAL – ISO 8601 timestamp in the format yyyy-mm-ddThh:mm giving the UTC date and time of the end of the period for which you would like rates returned. If a time in the future is specified, the current time will be used. If no end_time is specified, the time specified in the  “start_timestamp” paramenter will also be used for the end_timestamp.”\nIf your account is registered for a Daily package your endpoint will return rates at your preferred daily lock-in time ending on the date specified in your request.  If your account does not have a preferred daily lock-in time then rates will return as of 00:00 UTC.\nIf your account is registered for a Live package your endpoint will return rates at 00:00 UTC unless you specify a time parameter in your rate request.\n","required":false,"type":"string"},{"name":"interval","in":"query","description":"OPTIONAL – Interval is applicable to Live packages only.  Using one of the interval values below in your call request will return rates for that specific interval within the time period specified.\n\nExample: adding the interval of \"hourly\" will return rates for every hour in the time period you specified.\n\n  \"daily\" - Returns one rate for the days specified in your time period, \n\"hourly\" - Returns rates for every hour in the time period you specify\n\nIf omitted, \"daily\" is used.  This parameter is only used if both the \"start_timestamp\" and \"end_timestamp\" parameters have been specified","required":false,"type":"string"},{"name":"page","in":"query","description":"OPTIONAL – You can specify the page number you want to request.\nNote: that page numbering is 1-based (the first page being page 1).\nOmitting this parameter will return the first page.\n","required":false,"type":"number"},{"name":"per_page","in":"query","description":"OPTIONAL – You can specify the number of results per page. The default is 30 results per page with a maximum of 500 results per page.\n","required":false,"type":"number"},{"name":"obsolete","in":"query","description":"OPTIONAL – If ‘true’ then endpoint will display rates for currencies that are obsolete. If ‘false’ then obsolete currencies are replaced by their successor currency.","required":false,"type":"boolean"},{"name":"inverse","in":"query","description":"OPTIONAL – If ‘true’ then endpoint will display the inverse of the converted value. If ‘false‘ then it will not be displayed.","required":false,"type":"boolean"},{"name":"decimal_places","in":"query","description":"OPTIONAL – This parameter can be used to specify the number of decimal places included in the output. Example 1 USD to EUR = 0.874852 with decimal_places=3, the output returned will be EUR = 0.875","required":false,"type":"number"},{"name":"margin","in":"query","description":"OPTIONAL – This parameter can be used to add a margin (-/+)  to XE's mid-market rate. Example: add margin=2.05 parameter to the endpoint and the API will return our mid-market rates plus the margin of 2.05 percent","required":false,"type":"number"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/HistoricRatePeriodResponse"},"headers":{"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/ErrorResponse"},"headers":{"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/ErrorResponse"}},"429":{"description":"Too Many Requests","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/monthly_average":{"get":{"tags":["Monthly Averages"],"summary":"Get monthly average rates for a single base currency and one or more counter currency for the month/year you specify in your API query. ","description":"The monthly average endpoint returns monthly average rates for a single base currency and one or more counter currency for the year you specify in your API query. The monthly average rate is calculated by taking the 00:00 UTC Daily rate for each day in the month/year you specify in your query. Months are returned as a numeric value from 1 to 12 where 1 is for January and 12 is for December. If no month is provided, then all months for the given year are returned.\n","parameters":[{"name":"from","in":"query","description":"OPTIONAL – Currency you want to convert from ISO code.  Note if this parameter is omitted, USD is assumed.\n","required":false,"type":"string"},{"name":"to","in":"query","description":"Comma separated list of to currencies based on ISO 4217 codes. This will limit the data returned to only those currencies that are specified. \n","required":true,"type":"string"},{"name":"amount","in":"query","description":"OPTIONAL – This parameter can be used to specify the amount you want to convert, if an amount is not specified then 1 is assumed.\n","required":false,"type":"number"},{"name":"year","in":"query","description":"OPTIONAL – This parameter specifies the year to calculate average monthly rates.\n","required":false,"type":"number"},{"name":"month","in":"query","description":"OPTIONAL – This parameter specifies the month in the given year to return average monthly rates. This is a numeric value from 1 to 12 where 1 is for January and 12 is for December. If no month is provided, then all months for the given year are returned.\n","required":false,"type":"number"},{"name":"obsolete","in":"query","description":"OPTIONAL – If ‘true’ then endpoint will display rates for currencies that are obsolete. If ‘false’ then obsolete currencies are replaced by their successor currency.","required":false,"type":"boolean"},{"name":"inverse","in":"query","description":"OPTIONAL – If ‘true’ then endpoint will include inverse rates.","required":false,"type":"boolean"},{"name":"decimal_places","in":"query","description":"OPTIONAL – This parameter can be used to specify the number of decimal places included in the output. Example 1 USD to EUR = 0.874852 with decimal_places=3, the output returned will be EUR = 0.875","required":false,"type":"number"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/MonthlyAverageResponse"},"headers":{"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/ErrorResponse"},"headers":{"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/ErrorResponse"}},"429":{"description":"Too Many Requests","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/stats":{"get":{"tags":["Stats"],"summary":"Volatility measures the fluctuation in the exchange rate of a currency pair over a specific period, represented in a percentage.","description":"Volatility measures the fluctuation in the exchange rate of a currency pair over a specific period, represented in a percentage. At XE, volatility is measured by applying the standard deviation of the logarithmic daily returns, expressed in a percentage score.\n\nDaily returns are the gain or loss of a currency pair in a particular period. We take the values of two consecutive days at 00:00 UTC. That is why we call it daily return. Then, we apply a logarithm to the ratio between those two values. It is a common way to measure change in the financial industry.\n\nEx: ln (valueDay2 / valueDay1) is the logarithmic return between day2 and day1. We have a value that tells us if the currency pair has moved a lot or not.\n\nIn statistics, the standard deviation is a measure that is used to quantify the amount of variation of a set of data values. A low standard deviation indicates that the data points tend to be close to the mean of the set, while a high standard deviation indicates that the data points are spread out over a wider range of value. \n\nWe apply this standard deviation to the daily logarithmic returns we calculated during a given time period (30 days, 90 days etc.).\n\nExpressing a value in a percentage score means we multiply it by 100 before showing it to you.\n","parameters":[{"name":"from","in":"query","description":"OPTIONAL – Currency you want to convert from ISO code.  Note if this parameter is omitted, USD is assumed.\n","required":false,"type":"string"},{"name":"to","in":"query","description":"Comma separated list of to currencies based on ISO 4217 codes. This will limit the data returned to only those currencies that are specified. \n","required":true,"type":"string"},{"name":"start_date","in":"query","description":"OPTIONAL – ISO 8601 timestamp in the format yyyy-mm-dd giving the UTC date of the start of the period for which you would like to compute the volatility from. Note if this parameter is omitted, the start date will default to today.\n","required":false,"type":"string"},{"name":"end_date","in":"query","description":"OPTIONAL – ISO 8601 timestamp in the format yyyy-mm-dd giving the UTC date of the end of the period for which you would like to compute the volatility to. Note if this parameter is omitted, the end date will default to today.\n","required":false,"type":"string"},{"name":"obsolete","in":"query","description":"OPTIONAL – If ‘true’ then endpoint will display rates for currencies that are obsolete. If ‘false’ then obsolete currencies are replaced by their successor currency.","required":false,"type":"boolean"},{"name":"decimal_places","in":"query","description":"OPTIONAL – This parameter can be used to specify the number of decimal places included in the output. Example 1 USD to EUR = 0.874852 with decimal_places=3, the output returned will be EUR = 0.875","required":false,"type":"number"},{"name":"daysInPeriod","in":"query","description":"OPTIONAL – This parameter can be used to specify the number of days in the period that we are considering.","required":false,"type":"number"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/StatsResponse"},"headers":{"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/ErrorResponse"},"headers":{"X-RateRequest-Limit":{"type":"number"},"X-RateRequest-Remaining":{"type":"number"},"X-RateRequest-Reset":{"type":"number"},"X-RateLimit-Limit":{"type":"number"},"X-RateLimit-Remaining":{"type":"number"},"X-RateLimit-Reset":{"type":"number"}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/ErrorResponse"}},"429":{"description":"Too Many Requests","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Internal Server Error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}}},"securityDefinitions":{"basicAuth":{"type":"basic"}},"definitions":{"AccountInfoResponse":{"properties":{"id":{"type":"string"},"organization":{"type":"string"},"package":{"type":"string"},"service_start_timestamp":{"type":"string"},"package_limit_duration":{"type":"string"},"package_limit":{"type":"number"},"package_limit_remaining":{"type":"number"},"package_limit_reset":{"type":"string"}}},"CurrencyInfoResponse":{"properties":{"terms":{"type":"string"},"privacy":{"type":"string"},"currencies":{"type":"array","items":{"$ref":"#/definitions/CurrencyInfo"}}}},"ConvertToResponse":{"properties":{"terms":{"type":"string"},"privacy":{"type":"string"},"to":{"type":"string"},"amount":{"type":"number"},"timestamp":{"type":"string"},"from":{"type":"array","items":{"$ref":"#/definitions/Rate"}}}},"ConvertFromResponse":{"properties":{"terms":{"type":"string"},"privacy":{"type":"string"},"from":{"type":"string"},"amount":{"type":"number"},"timestamp":{"type":"string"},"to":{"type":"array","items":{"$ref":"#/definitions/Rate"}}}},"HistoricRateResponse":{"properties":{"terms":{"type":"string"},"privacy":{"type":"string"},"from":{"type":"string"},"amount":{"type":"number"},"timestamp":{"type":"string"},"to":{"type":"array","items":{"$ref":"#/definitions/Rate"}}}},"HistoricRatePeriodResponse":{"properties":{"terms":{"type":"string"},"privacy":{"type":"string"},"from":{"type":"string"},"amount":{"type":"number"},"to":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/definitions/RatePeriod"}}}}},"MonthlyAverageResponse":{"properties":{"terms":{"type":"string"},"privacy":{"type":"string"},"from":{"type":"string"},"amount":{"type":"number"},"year":{"type":"number"},"to":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/definitions/TOCurrencyISO"}}}}},"Rate":{"properties":{"quotecurrency":{"type":"string"},"mid":{"type":"number"}}},"RatePeriod":{"properties":{"mid":{"type":"number"},"timestamp":{"type":"string"}}},"TOCurrencyISO":{"properties":{"monthlyAverage":{"type":"number"},"month":{"type":"number"},"daysInMonth":{"type":"number"}}},"CurrencyInfo":{"properties":{"iso":{"type":"string"},"currency_name":{"type":"string"},"is_obsolete":{"type":"boolean"},"superseded_by":{"type":"string"},"currency_symbol":{"type":"string"},"currency_symbol_on_right":{"type":"boolean"}}},"ErrorResponse":

# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/euronet/refs/heads/main/openapi/xe-currency-data-api-openapi.json