{
    "openapi": "3.0.1",
    "info": {
        "title": "Xe Currency Data API",
        "description": "Xe Currency Data - Integrate your application with our globally trusted currency data.</br></br> Get your free API credentials for 7 days <a href=\"https://xecd-account-api.xe.com/v2/newuser?type=freetrial/\">here</a>",
        "version": "1.0"
    },
    "servers": [
        {
            "url": "https://xecdapi.xe.com"
        }
    ],
    "security": [
        {
            "basicAuth": []
        }
    ],
    "paths": {
        "/v1/account_info": {
            "get": {
                "tags": [
                    "Account Information"
                ],
                "summary": "This endpoint will return basic information for a specific account.",
                "description": "Requires Headers \"username\" and \"password\"</br>",
                "responses": {
                    "200": {
                        "description": "Success",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AccountInfoResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Too Many Requests",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/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.</br></br>If 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.</br></br> 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.</br></br> A list of acceptable ISO 4217 currency codes can be found here: http://www.xe.com/iso4217.php",
                        "schema": {
                            "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",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "language",
                        "in": "query",
                        "description": "OPTIONAL – Default is en. Specified as an RFC-1766-compliant language tag.</br></br>Languages available: ar, de, en, es, fr, it, ja, pt, sv, zh-CN, zh-HK.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "additionalInfo",
                        "in": "query",
                        "description": "OPTIONAL - If 'symbol' then returns 'currency_symbol' and 'currency_symbol_on_right' in response",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "crypto",
                        "in": "query",
                        "description": "OPTIONAL – If 'true' then this endpoint will return data for the following crypto currencies: ADA, ARB, AVAX, BCH, BNB, BTC, DAI, DOGE, DOT, ETH, EURC, LINK, LTC, LUNA, POL, SOL, TRX, UNI, USDC, USDP, USDT, XLM and XRP.",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "ETag": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "Last-Modified": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CurrencyInfoResponse"
                                }
                            }
                        }
                    },
                    "304": {
                        "description": "Not Modified",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "ETag": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "Last-Modified": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Too Many Requests",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v2/currencies": {
            "get": {
                "tags": [
                    "Currency Information"
                ],
                "summary": "Access currency lifecycle metadata.",
                "description": "This endpoint returns lifecycle metadata for every currency the API carries - when the currency was introduced and withdrawn, the first and last date rates are available for it, the currency that replaced it, the peg used to convert between the two, and whether the code belongs to ISO 4217.</br></br>Use it to map a date to the correct code before requesting a rate.</br></br>This endpoint takes no parameters, and always includes obsolete currencies - unlike <code>/v1/currencies</code>, it needs no <code>obsolete</code> parameter.</br></br>Also available as XML and CSV by appending <code>.xml</code> or <code>.csv</code> to the path.</br></br>A peg exists to keep a long series continuous across a currency transition. Values derived from one are arithmetic, not observed market rates - see <b>Historic Rates & Obsolete Currencies</b>.",
                "responses": {
                    "200": {
                        "description": "OK",
                        "headers": {
                            "ETag": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "Last-Modified": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/V2CurrencyInfoResponse"
                                },
                                "example": {
                                    "terms": "string",
                                    "privacy": "string",
                                    "currencies": [
                                        {
                                            "currency_code": "string",
                                            "currency_name": "string",
                                            "is_iso_4217": true,
                                            "asset_class": "string",
                                            "status": "string",
                                            "introduced_on": "string",
                                            "withdrawn_on": "string",
                                            "rates_from": "string",
                                            "rates_until": "string",
                                            "replaces": [
                                                "string"
                                            ],
                                            "successor": "string",
                                            "peg": {
                                                "type": "string",
                                                "from": {
                                                    "amount": 0,
                                                    "currency": "string"
                                                },
                                                "to": {
                                                    "amount": 0,
                                                    "currency": "string"
                                                }
                                            },
                                            "currency_symbol": "string",
                                            "currency_symbol_on_right": true
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "304": {
                        "description": "Not Modified",
                        "headers": {
                            "ETag": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "Last-Modified": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Too Many Requests",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/bid_ask": {
            "get": {
                "tags": [
                    "Bid & Ask Rates (Beta)"
                ],
                "summary": "Convert from one base currency to one or multiple counter currencies.",
                "description": "<p>\n<b>This feature is in beta.</b> Access and functionality may evolve. If you’d like to participate, please sign up for our free trial.\n</p>\n<p>\nThis endpoint provides <b>indicative spot bid-ask pricing</b>, updated <b>every 10 seconds</b> and sourced \nfrom aggregated institutional liquidity. Data is <b>informational only</b> and may contain inaccuracies \nduring the beta phase. \n</p>\n<h2>Endpoint Example</h2>\n<p>\n<a href=\"https://xecdapi.xe.com//v1/bid_ask?from=GBP&to=EUR,USD\">https://xecdapi.xe.com/v1/bid_ask?from=GBP&to=EUR,USD</a> \n</p>\n<h2>Supported Currencies</h2>\n<p>\nThe Bid &amp; Ask (Beta) endpoint supports the following currencies: <b>AUD, BRL, CAD, CHF, CNH, DKK, EUR, GBP, JPY, NOK, NZD, PLN, SEK, USD</b>\n</p>\n<p>\nAny pair can be requested in either direction (as <b>from</b> or <b>to</b>), with the following exceptions involving <b>CNH</b> (offshore Chinese yuan):\n</p>\n<ul>\n  <li>CNH is not available with <b>BRL</b>, <b>DKK</b>, or <b>PLN</b> in either direction.</li>\n  <li>CNH is supported only as the target currency for <b>NOK</b> and <b>SEK</b>:\n  <b>from=NOK&amp;to=CNH</b> and <b>from=SEK&amp;to=CNH</b> are available,\n  but <b>from=CNH&amp;to=NOK</b> and <b>from=CNH&amp;to=SEK</b> are not.</li>\n</ul>\n<p>\nThe rates provided are indicative spot bid-ask prices derived from aggregated institutional \nliquidity sources and refreshed every 10 seconds. As this feature is in beta, behaviour and \ncoverage may change, and occasional inaccuracies or inconsistencies may occur. These rates are \nintended for informational use only and should not be relied upon for financial reporting or \ndecision-making.\n</p>",
                "parameters": [
                    {
                        "name": "from",
                        "in": "query",
                        "description": "Currency to convert from (ISO code).",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "description": "Comma separated list of currencies to convert to (ISO codes).",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "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",
                        "schema": {
                            "type": "number"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful retrieval of bid/ask rates",
                        "headers": {
                            "X-Request-Id": {
                                "description": "Unique request identifier",
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "description": "Total requests allowed in current window",
                                "schema": {
                                    "type": "integer"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "description": "Requests remaining in current window",
                                "schema": {
                                    "type": "integer"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "description": "Unix timestamp when rate limit resets",
                                "schema": {
                                    "type": "integer"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "description": "Total rate requests allowed",
                                "schema": {
                                    "type": "integer"
                                }
                            },
                            "X-RateRequest-Remaining": {
                                "description": "Remaining rate requests",
                                "schema": {
                                    "type": "integer"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "description": "Unix timestamp when rate request quota resets",
                                "schema": {
                                    "type": "integer"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "terms": {
                                            "type": "string"
                                        },
                                        "privacy": {
                                            "type": "string"
                                        },
                                        "rates": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/BidAskRate"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Invalid request parameters or BidAskException. May include field-specific validation errors.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "integer",
                                            "description": "Error code (e.g., 17 for validation errors)"
                                        },
                                        "message": {
                                            "type": "string",
                                            "description": "Error message describing what went wrong"
                                        },
                                        "documentation_url": {
                                            "type": "string",
                                            "description": "Link to API documentation"
                                        },
                                        "fieldErrors": {
                                            "type": "object",
                                            "additionalProperties": {
                                                "type": "string"
                                            },
                                            "description": "Map of field names to validation error messages (present only for validation errors)"
                                        }
                                    }
                                },
                                "example": {
                                    "code": 17,
                                    "message": "Invalid request parameters",
                                    "documentation_url": "https://xecdapi.xe.com/docs/v1/",
                                    "fieldErrors": {
                                        "to": "At least one valid currency is required"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "integer",
                                            "description": "Error code (e.g., 1 for authentication errors)"
                                        },
                                        "message": {
                                            "type": "string",
                                            "description": "Error message describing what went wrong"
                                        },
                                        "documentation_url": {
                                            "type": "string",
                                            "description": "Link to API documentation"
                                        }
                                    }
                                },
                                "example": {
                                    "code": 1,
                                    "message": "Bad credentials",
                                    "documentation_url": "https://xecdapi.xe.com/docs/v1/"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "integer",
                                            "description": "Error code"
                                        },
                                        "message": {
                                            "type": "string",
                                            "description": "Error message describing the issue"
                                        },
                                        "documentation_url": {
                                            "type": "string",
                                            "description": "Link to API documentation"
                                        }
                                    }
                                },
                                "example": {
                                    "code": 0,
                                    "message": "No static resource direct/v1/bid-ask",
                                    "documentation_url": "https://xecdapi.xe.com/docs/v1/"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/BidAskErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/convert_from": {
            "get": {
                "tags": [
                    "Mid-market Rates"
                ],
                "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).</br><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, default is USD.</br>",
                        "schema": {
                            "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.</br> Note: Obsolete currencies are replaced by their successor currency.</br>",
                        "required": true,
                        "schema": {
                            "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.</br>",
                        "schema": {
                            "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.",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "interval",
                        "in": "query",
                        "description": "OPTIONAL – Using one of the interval values below in your call request will return rates for that specific interval.</br></br>\"daily\" - Returns the latest daily rate at your pre-chosen daily lock-in time</br>\"hourly\" - Returns rates for the most recent hour</br>\"15minutes\" - Returns rates for the most recent 15 minute period</br>\"minutely\" - Returns rates for the most recent minute</br></br>If omitted, we’ll default to your fastest rate frequency (i.e. live, 15-min, hourly, then daily) as per your subscription plan.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "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.",
                        "schema": {
                            "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",
                        "schema": {
                            "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.",
                        "schema": {
                            "type": "number"
                        }
                    },
                    {
                        "name": "crypto",
                        "in": "query",
                        "description": "OPTIONAL – If 'true' then this endpoint will return data for the following crypto currencies: ADA, ARB, AVAX, BCH, BNB, BTC, DAI, DOGE, DOT, ETH, EURC, LINK, LTC, LUNA, POL, SOL, TRX, UNI, USDC, USDP, USDT, XLM and XRP.",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "skip_weekends",
                        "in": "query",
                        "description": "OPTIONAL - Applicable to queries with rate intervals faster than daily. If 'true' then requests during the weekend will respond with the rate as of market close (Friday, 5pm America/New_York).",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "ETag": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "Last-Modified": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConvertFromResponse"
                                }
                            }
                        }
                    },
                    "304": {
                        "description": "Not Modified",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "ETag": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "Last-Modified": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Too Many Requests",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/convert_to": {
            "get": {
                "tags": [
                    "Mid-market Rates"
                ],
                "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).</br><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.</br> Note: Obsolete currencies are replaced by their successor currency.</br>",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "description": "OPTIONAL - Currency you want to convert to ISO code.  Note if this parameter is omitted, default is USD.</br>",
                        "schema": {
                            "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.</br>",
                        "schema": {
                            "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.",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "interval",
                        "in": "query",
                        "description": "OPTIONAL – Using one of the interval values below in your call request will return rates for that specific interval.</br></br>\"daily\" - Returns the latest daily rate at your pre-chosen daily lock-in time</br>\"hourly\" - Returns rates for the most recent hour</br>\"15minutes\" - Returns rates for the most recent 15 minute period</br>\"minutely\" - Returns rates for the most recent minute</br></br>If omitted, we’ll default to your fastest rate frequency (i.e. live, 15-min, hourly, then daily) as per your subscription plan.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "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.",
                        "schema": {
                            "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",
                        "schema": {
                            "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.",
                        "schema": {
                            "type": "number"
                        }
                    },
                    {
                        "name": "crypto",
                        "in": "query",
                        "description": "OPTIONAL – If 'true' then this endpoint will return data for the following crypto currencies: ADA, ARB, AVAX, BCH, BNB, BTC, DAI, DOGE, DOT, ETH, EURC, LINK, LTC, LUNA, POL, SOL, TRX, UNI, USDC, USDP, USDT, XLM and XRP.",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "skip_weekends",
                        "in": "query",
                        "description": "OPTIONAL - Applicable to queries with rate intervals faster than daily. If 'true' then requests during the weekend will respond with the rate as of market close (Friday, 5pm America/New_York).",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "ETag": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "Last-Modified": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ConvertToResponse"
                                }
                            }
                        }
                    },
                    "304": {
                        "description": "Not Modified",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "ETag": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "Last-Modified": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Too Many Requests",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/historic_rate": {
            "get": {
                "tags": [
                    "Mid-market 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). Minutely and 15 minute rates are available for the past 7 days. 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) is applicable only for packages with access to rate updates faster than daily.</br>The endpoint returns the historic rate for a single base currency and one or more counter currencies.</br></br><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></br>",
                "parameters": [
                    {
                        "name": "from",
                        "in": "query",
                        "description": "OPTIONAL – Currency you want to convert from ISO code.</br>Note if this parameter is omitted, default is USD.</br>",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "description": "Comma separated list of to currencies ISO 4217 codes.</br>This will limit the data returned to only those currencies you are interested in. Use an asterisk * to specify all currencies.</br> Note: Obsolete currencies are replaced by their precursor or successor currency.</br>",
                        "required": true,
                        "schema": {
                            "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.</br>",
                        "schema": {
                            "type": "number"
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "description": "OPTIONAL - UTC date should be in the form of YYYY-MM-DD, back to 1995-11-16.</br></br>If your account is registered to receive daily rates only, the default time value used is 00:00 UTC, or your daily lock-in time if one is set.</br></br>Otherwise the endpoint will return the latest rates for your chosen date.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "time",
                        "in": "query",
                        "description": "OPTIONAL – *Time parameter is only applicable to packages with access to rate frequencies faster than daily.*</br></br>UTC time is in format of HH:MM",
                        "schema": {
                            "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.",
                        "schema": {
                            "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.",
                        "schema": {
                            "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",
                        "schema": {
                            "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.",
                        "schema": {
                            "type": "number"
                        }
                    },
                    {
                        "name": "crypto",
                        "in": "query",
                        "description": "OPTIONAL – If 'true' then this endpoint will return data for the following crypto currencies: ADA, ARB, AVAX, BCH, BNB, BTC, DAI, DOGE, DOT, ETH, EURC, LINK, LTC, LUNA, POL, SOL, TRX, UNI, USDC, USDP, USDT, XLM and XRP.\n\n<i>Note: Historical crypto data varies by currency. Most start from May 2022 onward.</i>",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "use_lock_in_time",
                        "in": "query",
                        "description": "OPTIONAL - If ‘true’ then this endpoint will display rates using your daily lock in rate time (any value set for the time will be ignored).",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HistoricRateResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                },
                                "example": {
                                    "code": 1,
                                    "message": "Bad credentials",
                                    "documentation_url": "https://xecdapi.xe.com/docs/v1/"
                                }
                            },
                            "text/plain": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "Endpoint not authorized. Feature missing: HISTORIC_RATES"
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Too Many Requests",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/historic_rate/period": {
            "get": {
                "tags": [
                    "Mid-market 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.</br></br><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=30\">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=30</a></br>",
                "parameters": [
                    {
                        "name": "from",
                        "in": "query",
                        "description": "OPTIONAL – Currency you want to convert from ISO code. Note if this parameter is omitted, default is USD.</br>",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "description": "Comma separated list of to currencies based on ISO 4217 codes.</br>This will limit the data returned to only those currencies you are interested in.</br> Note: Obsolete currencies are replaced by their precursor or successor currency.</br>",
                        "required": true,
                        "schema": {
                            "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.</br>",
                        "schema": {
                            "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.</br></br>If you’re querying using a daily interval, the time value will be ignored & the 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.</br>If you’re querying using a faster rate interval than daily rate interval, your endpoint will return rates starting at 00:00 UTC if no time portion is specified.</br>",
                        "schema": {
                            "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\" parameter will also be used for the \"end_timestamp\".</br>If your query is using a daily rate interval, 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.</br>If your query is using a faster rate interval than daily, your endpoint will return daily rates at your specified lock-in time or 00:00 UTC by default, unless you specify a time parameter in your rate request.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "interval",
                        "in": "query",
                        "description": "OPTIONAL – Using one of the interval values below in your call request will return rates for that specific interval.</br></br>\"daily\" - Returns one rate for the days specified in your time period</br>\"hourly\" - Returns rates for every hour in the time period you specify</br>\"15minutes\" - Returns rates for each 15 minute interval in the time period you specify, available for 7 days from current date</br>”minutely” - Returns minutely rates for the time period, available for 7 days from current date</br></br>If omitted, \"daily\" is used. This parameter is only used if both the \"start_timestamp\" and \"end_timestamp\" parameters have been specified.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "OPTIONAL – You can specify the page number you want to request.</br>Note: that page numbering is 1-based (the first page being page 1).</br>Omitting this parameter will return the first page.</br>",
                        "schema": {
                            "type": "number"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "OPTIONAL – You can specify the number of days per page. The default is 30 days of rates per page with a maximum of 500 days of rates per page.</br>",
                        "schema": {
                            "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.",
                        "schema": {
                            "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.",
                        "schema": {
                            "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",
                        "schema": {
                            "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.",
                        "schema": {
                            "type": "number"
                        }
                    },
                    {
                        "name": "crypto",
                        "in": "query",
                        "description": "OPTIONAL – If 'true' then this endpoint will return data for the following crypto currencies: ADA, ARB, AVAX, BCH, BNB, BTC, DAI, DOGE, DOT, ETH, EURC, LINK, LTC, LUNA, POL, SOL, TRX, UNI, USDC, USDP, USDT, XLM and XRP.\n\n<i>Note: Historical crypto data varies by currency. Most start from May 2022 onward.</i>",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HistoricRatePeriodResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                },
                                "example": {
                                    "code": 1,
                                    "message": "Bad credentials",
                                    "documentation_url": "https://xecdapi.xe.com/docs/v1/"
                                }
                            },
                            "text/plain": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "Endpoint not authorized. Feature missing: HISTORIC_RATES"
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Too Many Requests",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/monthly_average": {
            "get": {
                "tags": [
                    "Mid-market Rates"
                ],
                "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.</br>",
                "parameters": [
                    {
                        "name": "from",
                        "in": "query",
                        "description": "OPTIONAL – Currency you want to convert from ISO code. Note if this parameter is omitted, default is USD.</br>",
                        "schema": {
                            "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.</br>",
                        "required": true,
                        "schema": {
                            "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.</br>",
                        "schema": {
                            "type": "number"
                        }
                    },
                    {
                        "name": "year",
                        "in": "query",
                        "description": "OPTIONAL – This parameter specifies the year to calculate average monthly rates.</br>",
                        "schema": {
                            "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.</br>",
                        "schema": {
                            "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.",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "inverse",
                        "in": "query",
                        "description": "OPTIONAL – If ‘true’ then endpoint will include inverse rates.",
                        "schema": {
                            "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",
                        "schema": {
                            "type": "number"
                        }
                    },
                    {
                        "name": "crypto",
                        "in": "query",
                        "description": "OPTIONAL – If 'true' then this endpoint will return data for the following crypto currencies: ADA, ARB, AVAX, BCH, BNB, BTC, DAI, DOGE, DOT, ETH, EURC, LINK, LTC, LUNA, POL, SOL, TRX, UNI, USDC, USDP, USDT, XLM and XRP.",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/MonthlyAverageResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Too Many Requests",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/stats": {
            "get": {
                "tags": [
                    "Mid-market Rates"
                ],
                "summary": "Gets an average rate over the specified time period, as well various additional statistics such as the standard deviation and volatility.",
                "description": "The stats endpoint returns average rates for a single base currency and one or more counter currencies over the time period you specify in your API query. Note that, unlike the monthly_average endpoint, you specify exact start and end dates, which provides a heightened level of control. This can be quite useful if you want statistics for bi-monthly averages or any other intervals of time. </br></br> This endpoint also provides several other statistics: the highest and lowest rate over the period (and their respective timestamps), the average rate, the standard deviation, volatility, and the number of data points over this period. </br></br> To provide some background to how we obtain our statistics, volatility is measured by applying the standard deviation of the logarithmic daily returns, expressed in a percentage score. We calculate daily returns using the values of two consecutive days and measure the gain or loss of a currency pair (<b>for live rate frequency packages this comparison is done at 00:00 UTC; daily rate frequency packages will compute stats based on the rate lock-in time specified on the account</b>). Then, we apply a logarithm to the ratio between those two values (Ex: ln (valueDay2 / valueDay1) is the logarithmic return between day2 and day1). As for the standard deviation, we apply it to the daily logarithmic returns we calculated during the given time period. When applicable, values are expressed as a percentage so they are already multiplied by 100.",
                "parameters": [
                    {
                        "name": "from",
                        "in": "query",
                        "description": "OPTIONAL – Currency you want to convert from ISO code. Note if this parameter is omitted, default is USD.</br>",
                        "schema": {
                            "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.</br>",
                        "required": true,
                        "schema": {
                            "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.</br>",
                        "schema": {
                            "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.</br>",
                        "schema": {
                            "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.",
                        "schema": {
                            "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",
                        "schema": {
                            "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.",
                        "schema": {
                            "type": "number"
                        }
                    },
                    {
                        "name": "crypto",
                        "in": "query",
                        "description": "OPTIONAL – If 'true' then this endpoint will return data for the following crypto currencies: ADA, ARB, AVAX, BCH, BNB, BTC, DAI, DOGE, DOT, ETH, EURC, LINK, LTC, LUNA, POL, SOL, TRX, UNI, USDC, USDP, USDT, XLM and XRP.",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/StatsResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Too Many Requests",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/central_bank_rate": {
            "get": {
                "tags": [
                    "Central Bank Exchange Rates"
                ],
                "summary": "Central bank exchange rates from currency of central bank to one or multiple counter currencies, provided by specified central bank.",
                "description": "In the example below, the endpoint converts from CAD to all available currencies for the Bank of Canada (the asterisk * represents ALL currencies).</br><a href=\"https://xecdapi.xe.com/v1/central_bank_rate.csv/?central_bank=CAN&to=*&amount=1\">https://xecdapi.xe.com/v1/central_bank_rate.csv/?central_bank=CAN&to=*&amount=1</a>\n\n<i>Note on Central Bank Data Coverage: Some Central Banks may experience temporary data gaps due to source website changes or access restrictions. For these banks, we continue to provide historical data and are working to restore full coverage.</i>",
                "parameters": [
                    {
                        "name": "central_bank",
                        "in": "query",
                        "description": "REQUIRED – Three letter codes representing the specific central bank you are querying for. The time(s) specified below highlights the time rates published by each respective central bank updates within the API service.</br>\n| Code | Country | Name | Posts | Available at (UTC) | Effective for | Bid/Ask\n|:---: |:---: |:---: |:---: |:---: |:---: |:---: |\n| AFG | Afghanistan | The Afghanistan Bank | Daily | 13:00 | Same day | ✓\n| AGO | Angola | National Bank of Angola | Daily | 14:00 | Same day | \n| ALB | Albania | Bank of Albania | Daily | 13:00 | Same day | ✓\n| ALBB | Albania | Bank of Albania (Bi-Weekly) | Monthly | Mid and End of Month | Previous Week | \n| ARM | Armenia | Central Bank of Armenia | Daily | 13:00 | Same day | \n| AUS | Australia | Reserve Bank of Australia | Daily | 08:00 | Same day | \n| AZE | Azerbaijan | The Central Bank of the Republic of Azerbaijan | Daily | 07:00 | Same day | \n| BEAC | Central African States | [The Bank Of Central African States (Banque des États de l'Afrique Centrale)](https://en.wikipedia.org/wiki/Bank_of_Central_African_States) | Daily | 09:00 | Same day | ✓\n| BGD | Bangladesh | Central Bank of Bangladesh | Daily | 06:00 | Same day | ✓\n| BGR | Bulgaria | Bulgarian National Bank | Daily | 17:00 | Same day | \n| BHR | Bahrain | Central Bank of Bahrain | Daily | 05:00 | Same day | \n| BHS | Bahamas | Central Bank of The Bahamas | Daily | 06:00 | Same day | ✓\n| BIH | Bosnia and Herzegovina | The Central Bank of Bosnia and Herzegovina | Daily | 02:00 | Same day | ✓\n| BLZ | Belize | Central Bank of Belize | Daily | 17:00 | Same day | ✓\n| BOL | Bolivia | Central Bank of Bolivia | Daily | 22:00 | Same day | \n| BRA | Brazil | Central Bank of Brazil | Daily | 18:00 | Same day | ✓\n| CAN | Canada | Bank of Canada | Daily | 23:00 | Same day | \n| CAR | Eastern Caribbean States | [Eastern Caribbean Central Bank](https://en.wikipedia.org/wiki/Eastern_Caribbean_Central_Bank) | Daily | 13:00 | Same day | \n| CHE | Switzerland | Swiss National Bank | Daily | 13:00 | Same day | \n| CHL | Chile | Central Bank of Chile | Daily | 04:00 | Same day | \n| CHN | China | China Foreign Exchange Trade System | Hourly | Hourly | Same day | ✓\n| COL | Colombia | Bank of the Colombian Republic (Banco de la República) | Daily | 17:00 | Same day | \n| CRI | Costa Rica | Central Bank of Costa Rica (Banco Central de Costa Rica) | Daily | 01:00 | Same day | ✓\n| CZE | Czechia | Czech National Bank | Daily | 15:00 | Same day | \n| DNK | Denmark | National Bank of Denmark (Danmarks Nationalbank) | Daily | 16:00 | Same day | \n| DOM | Dominican Republic | Central Bank of the Dominican Republic (Banco Central de la República Dominicana) | Daily | 22:00 | Same day | \n| DZA | Algeria | Bank of Algeria | Daily | 10:00 | Same day | ✓\n| ECB | European Union | [European Central Bank](https://en.wikipedia.org/wiki/European_Central_Bank) | Daily | 16:00 | Same day | \n| EGY | Egypt | Central Bank of Egypt | Daily | 14:00 | Same day | ✓\n| FJI | Fiji | Reserve Bank of Fiji | Daily | 22:00 | Same day | \n| GBR | United Kingdom of Great Britain and Northern Ireland | Bank of England | Daily | 11:00 | Same day | \n| GEO | Georgia | National Bank of Georgia | Daily | 14:00 | Same day | \n| GHA | Ghana | Bank of Ghana | Daily | 18:00 | Same day | ✓\n| GTM | Guatemala | Bank of Guatemala | Daily | 16:00 | Same day | \n| GUY | Guyana | Bank of Guyana | Daily | 17:00 | Same day | ✓\n| HKG | Hong Kong | Hong Kong Monetary Authority | Daily | 01:00 | Same day | ✓\n| HND | Honduras | Central Bank of Honduras | Daily | 01:00 | Same day | ✓\n| HUN | Hungary | Hungarian National Bank (Magyar Nemzeti Bank) | Daily | 12:00 | Same day | \n| IDN | Indonesia | Bank Indonesia | Daily | 02:00 | Same day | ✓\n| IND | India | Reserve Bank of India | Daily | 09:00 | Same day | \n| IRQ | Iraq | Central Bank of Iraq | Daily | 08:00 | Same day | \n| ISL | Iceland | Central Bank of Iceland | Daily | 17:00 | Same day | \n| ISR | Israel | Bank of Israel | Daily | 00:00 | Same day | \n| JAM | Jamaica | Bank of Jamaica | Daily | 18:00 | Same day | \n| JPN | Japan | Bank of Japan | Daily | 09:00 | Same day | ✓\n| KAZ | Kazakhstan | National Bank of Kazakhstan | Daily | 16:00 | Same day | \n| KEN | Kenya | Central Bank of Kenya | Daily | 08:00 | Same day | \n| KOR | Korea | Seoul Money Brokerage Services | Daily | 01:00 | Same day | \n| LAO | Lao People's Democratic Republic | Bank of the Lao P.D.R | Daily | 03:00 | Same day | ✓\n| LBN | Lebanon | Bank of Lebanon (Banque du Liban) (Last seen 2024-10-21) | Every 6 weeks |  | Same day | \n| LKA | Sri Lanka | The Central Bank of Sri Lanka | Daily | 04:00 | Same day | \n| MAR | Morocco | Central Bank of the Kingdom of Morocco (Bank Al-Maghrib) | Daily | 17:00 | Same day | \n| MDA | Moldova | National Bank of Moldova | Daily | 02:00 | Same day | \n| MEX | Mexico | Bank of Mexico | Daily | 20:00 | Same day | \n| MEXM | Mexico | Bank of Mexico (Monthly) | Monthly | End of Month | Same Month | \n| MMR | Myanmar | Central Bank of Myanmar | Daily | 14:00 | Same day | \n| MNG | Mongolia | Central Bank of Mongolia | Daily | 11:00 | Same day | \n| MOZ | Mozambique | Bank of Mozambique (Banco de Moçambique) | Daily | 14:00 | Same day | ✓\n| MRT | Mauritania | Central Bank of Mauritania (Banque Centrale de Mauritanie) | Weekly | 13:00 | Same day | \n| MYS | Malaysia | Bank Negara Malaysia | Daily | 10:00 | Same day | \n| NAM | Namibia | Bank of Namibia | Daily | 08:00 | Same day | \n| NGA | Nigeria | Central Bank of Nigeria | Daily | 18:00 | Previous Day | ✓\n| NIC | Nicaragua | Central Bank of Nicaragua (Banco Central De Nicaragua) | Daily | 16:00 | Same day | ✓\n| NOR | Norway | Central Bank of Norway (Norges Bank) | Daily | 16:00 | Same day | \n| NZL | New Zealand | Reserve Bank of New Zealand | Daily | 03:00 | Same day | \n| OMN | Oman | Central Bank of Oman | Daily | 07:00 | Same day | ✓\n| PAK | Pakistan | State Bank of Pakistan (Last seen 2026-08-05) | Daily |  | Same day | \n| PER | Peru | Central Reserve Bank of Peru (Banco Central de Reserva del Perú) | Daily | 20:00 | Previous Day | ✓\n| PHL | Philippines | Central Bank of the Philippines (Bangko Sentral ng Pilipinas) | Daily | 02:00 | Same day | \n| PNG | Papua New Guinea | Bank of Papua New Guinea (Last seen 2025-10-23) | Daily |  | Same day | \n| POL | Poland | National Bank of Poland | Daily | 12:00 | Same day | \n| POLW | Poland | National Bank of Poland (Table B) | Weekly | Wednesday | Same Week | \n| PRY | Paraguay | Central Bank of Paraguay (Last seen 2025-05-26) | Daily |  | Same day | \n| QAT | Qatar | Qatar Central Bank | Daily | 09:00 | Same day | \n| ROU | Romania | National Bank of Romania | Daily | 12:00 | Same day | \n| RUS | Russian Federation | Central Bank of the Russian Federation | Daily | 16:00 | Previous Day | \n| SAU | Saudi Arabia | Saudi Central Bank | Daily | 22:00 | Same day | \n| SGP | Singapore | Monetary Authority of Singapore | Daily | 10:00 | Same day | \n| SRB | Serbia | National Bank of Serbia | Daily | 08:00 | Same day | ✓\n| SSD | South Sudan | Bank of South Sudan (Last seen 2025-11-12) | Daily |  | Same day | ✓\n| SVN | Slovenia | Bank of Slovenia | Daily | 16:00 | Same day | \n| SWE | Sweden | Sweden's Central Bank (Sveriges Riksbank) | Daily | 17:00 | Same day | \n| SYC | Seychelles | Central Bank of Seychelles | Daily | 14:00 | Same day | ✓\n| SYR | Syrian Arab Republic | Central Bank of Syria (Last seen 2025-02-05) | Daily |  | Same day | ✓\n| THA | Thailand | Bank of Thailand | Daily | 12:00 | Same day | ✓\n| TJK | Tajikistan | National Bank of Tajikistan | Daily | 13:00 | Same day | \n| TKM | Turkmenistan | Central Bank of Turkmenistan (Last seen 2026-08-11) | Daily |  | Same day | \n| TUN | Tunisia | Central Bank of Tunisia | Daily | 10:00 | Same day | \n| TUR | Turkey | Central Bank of the Republic of Turkey | Daily | 13:00 | Same day | ✓\n| TWN | Taiwan | Central Bank of the Republic of China (Taiwan) | Daily | 10:00 | Same day | \n| TZA | Tanzania, United Republic of | Bank of Tanzania | Daily | 22:00 | Same day | ✓\n| UAE | United Arab Emirates | Central Bank of the UAE | Daily | 16:00 | Same day | \n| UGA | Uganda | Bank of Uganda | Daily | 08:00 | Same day | ✓\n| UKR | Ukraine | National Bank of Ukraine | Daily | 02:00 | Same day | \n| URY | Uruguay | Central Bank of Uruguay | Daily | 22:00 | Same day | \n| USA | United States of America | US Federal Reserve Bank of New York | Weekly | Monday | Previous Week | \n| UZB | Uzbekistan | The Central Bank of the Republic of Uzbekistan | Daily | 13:00 | Same day | \n| VEN | Venezuela | Central Bank of Venezuela (Banco Central de Venezuela) | Daily | 22:00 | Same day | ✓\n| VNM | Vietnam | State Bank of Vietnam | Daily | 17:00 | Same day | ✓\n| YEM | Yemen | Central Bank of Yemen (Last seen 2025-04-29) | Daily |  | Same day | ✓\n| ZAF | South Africa | South African Reserve Bank | Daily | 10:00 | Same day | \n| ZMB | Zambia | Bank of Zambia | Daily | 09:00 | Same day | ✓\n| ZWE | Zimbabwe | Reserve Bank of Zimbabwe | Daily | 01:00 | Same day | ✓\n",
                        "required": true,
                        "schema": {
                            "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.",
                        "required": true,
                        "schema": {
                            "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.</br>",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "default": 1
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "description": "OPTIONAL – YYYY-MM-DD format - request rates for a particular past date.  Rates are often not posted on weekends and holidays.  bid and ask are not available yet for past rates",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "use_bank_date",
                        "in": "query",
                        "description": "OPTIONAL – If ‘true’, the timestamp field of a current rate is the issuing bank’s own local calendar date in YYYY-MM-DD format, rather than a UTC instant that reads as the previous day west of the bank. Example: a European Central Bank rate returned as 2026-08-26T22:00:00Z is dated 2026-08-27 by the bank; requests that specify a date already return YYYY-MM-DD, so the parameter has no effect there.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "inverse",
                        "in": "query",
                        "description": "OPTIONAL – If ‘true’, the 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,
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "decimal_places",
                        "in": "query",
                        "description": "OPTIONAL – This parameter can be used to specify the number of decimal places included in the output. Example: if 1 USD to EUR = 0.874852, adding decimal_places=3 to the query will result in the endpoint returning EUR = 0.875",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "default": 20
                        }
                    },
                    {
                        "name": "margin",
                        "in": "query",
                        "description": "OPTIONAL – This parameter can be used to add a margin (+/-) to the exchange rate. Example: adding margin=2.05 to the query will result in the endpoint returning the current exchange rates with a +2.05% margin",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "default": 0
                        }
                    },
                    {
                        "name": "fields",
                        "in": "query",
                        "description": "Comma separated list of fields.  One or more of \"mid\", \"bid\" or \"ask\".  Bid and ask are only available when requesting the current bank rate.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "mid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "ETag": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "Last-Modified": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CentralBankExchangeRateResponse"
                                }
                            }
                        }
                    },
                    "304": {
                        "description": "Not Modified",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "ETag": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "Last-Modified": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                },
                                "example": {
                                    "code": 1,
                                    "message": "Bad credentials",
                                    "documentation_url": "https://xecdapi.xe.com/docs/v1/"
                                }
                            },
                            "text/plain": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "Endpoint not authorized. Feature missing: CENTRAL_BANK_RATES"
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Too Many Requests",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/alternative_source_rate": {
            "get": {
                "tags": [
                    "Alternative Source Exchange Rates"
                ],
                "summary": "Foreign exchange rates posted by private banks, exchange markets, government entities & more.",
                "description": "<p>\nIn the example below, the endpoint will display all exchange ratesvreported by Maybank (the asterisk * represents ALL currencies).\n</p>\n<p>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"https://xecdapi.xe.com/v1/alternative_source_rate?source=maybank&iso=*\">https://xecdapi.xe.com/v1/alternative_source_rate?source=maybank&iso=*</a>\n</p>\n<p>\n<i>Note on Alternative Source Rate Coverage: Some sources may experience temporary\ndata gaps due to source website changes or access restrictions. For these\nsources, we continue to provide historical data and are working to restore\nfull coverage.</i>\n</p>\n",
                "parameters": [
                    {
                        "name": "source",
                        "in": "query",
                        "description": "REQUIRED – Use the following source codes to represent the specific source you are querying for. The time(s) specified below highlights the time rates are published by each respective source within the API service.</br>\n| Source | Country | Name | Posts | Available at (UTC) | Effective for | Bid/Ask\n|:---: |:---: |:---: |:---: |:---: |:---: |:---: |\n| anz | Australia | ANZ Investment Bank | Daily | 16:00 | Same day | ✓\n| anz-fj | Fiji | ANZ Investment Bank (Fiji Markets) | Daily | 23:00 | Same day | ✓\n| bazg | Switzerland | Federal Office for Customs and Border Security | Daily | 07:00 | Same day | \n| belarus_republic | Belarus | Republic of Belarus Official Website | Daily | 08:00 | Same day | \n| bmf | Germany | Federal Ministry of Finance | Monthly | 1st of month | Previous Month | \n| BNA | Argentina | Bank of the Argentine Nation (Banco de la Nación Argentina) | Daily | 17:00 | Same day | ✓\n| brazil_ptax | Brazil | Central Bank of Brazil PTAX | Daily | 18:00 | Same day | \n| citibank-vn | Vietnam | Citibank Vietnam Markets | Daily | 11:00 | Same day | ✓\n| commerzbank | Germany | Commerzbank | Daily | 01:00 | Same day | ✓\n| cyprus_customs | Cyprus | Cyprus Customs & Excise Department | Monthly | End of Month | Same Month | \n| egypt | Egypt | Central Bank of Egypt (Market Rate) | Daily | 14:00 | Same day | ✓\n| HKAB | Hong Kong | Hong Kong Association of Banks | Daily | 01:00 | Same day | ✓\n| indonesia_treasury | Indonesia | Indonesia Treasury (Badan Kebijakan Fiskal) | Daily | 01:00 | Same day | \n| ireland_revenue | Ireland | Revenue - Irish Tax and Customs | Monthly | Monthly | Same Month | \n| maybank | Malaysia | Maybank | Daily | 06:00 | Same day | ✓\n| mitsubishi_ufg | Japan | Mitsubishi UFJ Financial Group (Mitsubishi UFJ Financial Group) | Daily | 03:00 | Same day | ✓\n| NatWest | United Kingdom of Great Britain and Northern Ireland | National Westminster Bank | Daily | 09:00 | Same day | ✓\n| nzfma | New Zealand | New Zealand Financial Markets Association | Daily | 03:00 | Same day | \n| peru-sbs | Peru | Superintendency of Banking, Insurance and Private Pension Fund Administrators (Superintendencia de Banca, Seguros y AFP (República del Perú)) | Daily | 19:00 | Same day | ✓\n| SFC | Colombia | Financial Superintendence of Colombia | Daily | 22:00 | Same day | \n| taiwan_customs | Taiwan | Customs Administration, Ministry of Finance (Taiwan Customs Administration) | Monthly | On days 1, 11, 21 of each month | Same Month | ✓\n| uganda_ra | Uganda | Uganda Revenue Authority | Monthly | 1st of month | Same Month | \n| vietcom | Vietcombank | Joint Stock Commercial Bank for Foreign Trade of Vietnam | Daily | 17:00 | Same day | ✓\n",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "iso",
                        "in": "query",
                        "description": "OPTIONAL - Comma separated list of to currencies ISO 4217 codes. This will limit the data returned to only those currencies you are interested in.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "*"
                        }
                    },
                    {
                        "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.</br>",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "default": 1
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "description": "OPTIONAL – YYYY-MM-DD format - request latest rates on, or before given date. Rates are often not posted on weekends and holidays.  For sources that provide rates multiple times a day, use YYYY-MM-DDTHH:MM format to request rates at, or before, a time.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "inverse",
                        "in": "query",
                        "description": "OPTIONAL – If ‘true’, the endpoint will respond with the inverse of the exchange rates.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "decimal_places",
                        "in": "query",
                        "description": "OPTIONAL – is parameter can be used to specify the number of decimal places included in the output. Example: if 1 USD to EUR = 0.874852, adding decimal_places=3 to the query will result in the endpoint returning EUR = 0.875",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "default": 20
                        }
                    },
                    {
                        "name": "margin",
                        "in": "query",
                        "description": "OPTIONAL – This parameter can be used to add a margin (+/-) to the exchange rate. Example: adding margin=2.05 to the query will result in the endpoint returning the current exchange rates with a +2.05% margin.  ",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "default": 0
                        }
                    },
                    {
                        "name": "fields",
                        "in": "query",
                        "description": "OPTIONAL - Comma separated list of fields. One or more of \"mid\", \"bid\" or \"ask\".",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "mid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "ETag": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "Last-Modified": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AlternativeSourceExchangeRateResponse"
                                }
                            }
                        }
                    },
                    "304": {
                        "description": "Not Modified",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "ETag": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "Last-Modified": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "headers": {
                            "X-RateRequest-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Remaining": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Reset": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateLimit-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            },
                            "X-RateRequest-Limit": {
                                "schema": {
                                    "type": "number"
                                }
                            }
                        },
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                },
                                "example": {
                                    "code": 1,
                                    "message": "Bad credentials",
                                    "documentation_url": "https://xecdapi.xe.com/docs/v1/"
                                }
                            },
                            "text/plain": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "Endpoint not authorized. Feature missing: ALT_SOURCE_RATES"
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Too Many Requests",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "BidAskRate": {
                "type": "object",
                "properties": {
                    "from": {
                        "type": "string",
                        "description": "base currency ISO code"
                    },
                    "to": {
                        "type": "string",
                        "description": "quote currency ISO code"
                    },
                    "bid": {
                        "type": "number",
                        "description": "bid price"
                    },
                    "ask": {
                        "type": "number",
                        "description": "ask price"
                    },
                    "timestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The time the rate was valid for."
                    }
                }
            },
            "BidAskErrorResponse": {
                "type": "object",
                "properties": {
                    "code": {
                        "type": "integer",
                        "description": "Error code"
                    },
                    "message": {
                        "type": "string",
                        "description": "Error message describing the issue"
                    },
                    "documentation_url": {
                        "type": "string",
                        "description": "Link to API documentation"
                    }
                }
            },
            "AccountInfoResponse": {
                "type": "object",
                "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": {
                "type": "object",
                "properties": {
                    "terms": {
                        "type": "string"
                    },
                    "privacy": {
                        "type": "string"
                    },
                    "currencies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/CurrencyInfo"
                        }
                    }
                }
            },
            "ConvertToResponse": {
                "type": "object",
                "properties": {
                    "terms": {
                        "type": "string"
                    },
                    "privacy": {
                        "type": "string"
                    },
                    "to": {
                        "type": "string"
                    },
                    "amount": {
                        "type": "number"
                    },
                    "timestamp": {
                        "type": "string"
                    },
                    "from": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Rate"
                        }
                    }
                }
            },
            "ConvertFromResponse": {
                "type": "object",
                "properties": {
                    "terms": {
                        "type": "string"
                    },
                    "privacy": {
                        "type": "string"
                    },
                    "from": {
                        "type": "string"
                    },
                    "amount": {
                        "type": "number"
                    },
                    "timestamp": {
                        "type": "string"
                    },
                    "to": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Rate"
                        }
                    }
                }
            },
            "CentralBankExchangeRateResponse": {
                "type": "object",
                "properties": {
                    "terms": {
                        "type": "string"
                    },
                    "privacy": {
                        "type": "string"
                    },
                    "from": {
                        "type": "string"
                    },
                    "amount": {
                        "type": "number"
                    },
                    "timestamp": {
                        "type": "string"
                    },
                    "to": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/CentralBankRate"
                        }
                    }
                }
            },
            "AlternativeSourceExchangeRateResponse": {
                "type": "object",
                "properties": {
                    "terms": {
                        "type": "string"
                    },
                    "privacy": {
                        "type": "string"
                    },
                    "source": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "amount": {
                        "type": "number"
                    },
                    "timestamp": {
                        "type": "string"
                    },
                    "rates": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/AlternativeSourceRate"
                        }
                    }
                }
            },
            "HistoricRateResponse": {
                "type": "object",
                "properties": {
                    "terms": {
                        "type": "string"
                    },
                    "privacy": {
                        "type": "string"
                    },
                    "from": {
                        "type": "string"
                    },
                    "amount": {
                        "type": "number"
                    },
                    "timestamp": {
                        "type": "string"
                    },
                    "to": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Rate"
                        }
                    }
                }
            },
            "HistoricRatePeriodResponse": {
                "type": "object",
                "properties": {
                    "terms": {
                        "type": "string"
                    },
                    "privacy": {
                        "type": "string"
                    },
                    "from": {
                        "type": "string"
                    },
                    "amount": {
                        "type": "number"
                    },
                    "to": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "array",
                            "items": {
                                "$ref": "#/components/schemas/RatePeriod"
                            }
                        }
                    }
                }
            },
            "MonthlyAverageResponse": {
                "type": "object",
                "properties": {
                    "terms": {
                        "type": "string"
                    },
                    "privacy": {
                        "type": "string"
                    },
                    "from": {
                        "type": "string"
                    },
                    "amount": {
                        "type": "number"
                    },
                    "year": {
                        "type": "number"
                    },
                    "to": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "array",
                            "items": {
                                "$ref": "#/components/schemas/TOCurrencyISO"
                            }
                        }
                    }
                }
            },
            "Rate": {
                "type": "object",
                "properties": {
                    "quotecurrency": {
                        "type": "string"
                    },
                    "mid": {
                        "type": "number"
                    }
                }
            },
            "CentralBankRate": {
                "type": "object",
                "properties": {
                    "quotecurrency": {
                        "type": "string"
                    },
                    "mid": {
                        "type": "number"
                    },
                    "inverse": {
                        "type": "number"
                    },
                    "bid": {
                        "type": "number"
                    },
                    "ask": {
                        "type": "number"
                    }
                }
            },
            "AlternativeSourceRate": {
                "type": "object",
                "properties": {
                    "fromCurrency": {
                        "type": "string"
                    },
                    "toCurrency": {
                        "type": "string"
                    },
                    "mid": {
                        "type": "number"
                    },
                    "bid": {
                        "type": "number"
                    },
                    "ask": {
                        "type": "number"
                    }
                }
            },
            "RatePeriod": {
                "type": "object",
                "properties": {
                    "mid": {
                        "type": "number"
                    },
                    "timestamp": {
                        "type": "string"
                    }
                }
            },
            "TOCurrencyISO": {
                "type": "object",
                "properties": {
                    "monthlyAverage": {
                        "type": "number"
                    },
                    "month": {
                        "type": "number"
                    },
                    "daysInMonth": {
                        "type": "number"
                    }
                }
            },
            "CurrencyInfo": {
                "type": "object",
                "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"
                    }
                }
            },
            "V2CurrencyInfoResponse": {
                "type": "object",
                "properties": {
                    "terms": {
                        "type": "string"
                    },
                    "privacy": {
                        "type": "string"
                    },
                    "currencies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/V2CurrencyInfo"
                        }
                    }
                }
            },
            "V2CurrencyInfo": {
                "type": "object",
                "description": "Optional members are absent where they do not apply - an active currency carries no withdrawn_on, rates_until or successor, and only a redenominated or pegged currency carries a peg.",
                "properties": {
                    "currency_code": {
                        "type": "string",
                        "description": "ISO 4217 code, or an Xe extension where is_iso_4217 is false."
                    },
                    "currency_name": {
                        "type": "string"
                    },
                    "is_iso_4217": {
                        "type": "boolean",
                        "description": "False for the Xe extensions - the offshore code CNH and the cryptocurrencies. Precious metals, XDR and XEU are ISO 4217 codes, so filtering on this flag keeps them."
                    },
                    "asset_class": {
                        "type": "string",
                        "description": "One of: fiat, crypto, metal, basket, inflation_indexed."
                    },
                    "status": {
                        "type": "string",
                        "description": "One of: active, obsolete."
                    },
                    "introduced_on": {
                        "type": "string",
                        "format": "date",
                        "description": "Date the currency entered circulation."
                    },
                    "withdrawn_on": {
                        "type": "string",
                        "format": "date",
                        "description": "Date the currency left circulation."
                    },
                    "rates_from": {
                        "type": "string",
                        "format": "date",
                        "description": "First date a rate is available. This can precede introduced_on where the series continues a predecessor currency - euro coverage starts in 1995 because it continues the ECU. Reading that earlier span requires obsolete=true."
                    },
                    "rates_until": {
                        "type": "string",
                        "format": "date",
                        "description": "Last date a rate is available."
                    },
                    "replaces": {
                        "type": "array",
                        "description": "Codes this currency replaced.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "successor": {
                        "type": "string",
                        "description": "Code that replaced this currency."
                    },
                    "peg": {
                        "$ref": "#/components/schemas/V2CurrencyPeg"
                    },
                    "currency_symbol": {
                        "type": "string"
                    },
                    "currency_symbol_on_right": {
                        "type": "boolean"
                    }
                }
            },
            "V2CurrencyPeg": {
                "type": "object",
                "description": "Fixed conversion between this currency and its successor. A value produced by applying a peg is continuity only, not an observed market rate.",
                "properties": {
                    "type": {
                        "type": "string",
                        "description": "redenomination for a rescaling of the same currency, hard_peg for a fixed rate against a different one."
                    },
                    "from": {
                        "$ref": "#/components/schemas/V2CurrencyPegSide"
                    },
                    "to": {
                        "$ref": "#/components/schemas/V2CurrencyPegSide"
                    }
                }
            },
            "V2CurrencyPegSide": {
                "type": "object",
                "properties": {
                    "amount": {
                        "type": "number"
                    },
                    "currency": {
                        "type": "string"
                    }
                }
            },
            "StatsResponse": {
                "type": "object",
                "properties": {
                    "terms": {
                        "type": "string"
                    },
                    "privacy": {
                        "type": "string"
                    },
                    "from": {
                        "type": "string"
                    },
                    "stats": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Stats"
                        }
                    }
                }
            },
            "Stats": {
                "type": "object",
                "properties": {
                    "to": {
                        "type": "string"
                    },
                    "high": {
                        "type": "number"
                    },
                    "low": {
                        "type": "number"
                    },
                    "average": {
                        "type": "number"
                    },
                    "standardDeviation": {
                        "type": "number"
                    },
                    "volatility": {
                        "type": "number"
                    },
                    "highTimestamp": {
                        "type": "string"
                    },
                    "lowTimestamp": {
                        "type": "string"
                    },
                    "dataPoints": {
                        "type": "integer"
                    }
                }
            },
            "ErrorResponse": {
                "type": "object",
                "properties": {
                    "code": {
                        "type": "number"
                    },
                    "message": {
                        "type": "string"
                    },
                    "documentationUrl": {
                        "type": "string"
                    }
                }
            }
        },
        "securitySchemes": {
            "basicAuth": {
                "type": "http",
                "scheme": "basic"
            }
        }
    }
}