One currency
GET
/v1/fx/{currency}The daily history of one currency, with monthly and annual averages ready to join to tourism series.
On every plan, Free includedKey requiredJSON or CSVCached until the next release
Parameters
| Name | Type | Description |
|---|---|---|
| currencyrequired | string path | ISO 4217 currency code e.g. THB |
| fromoptional | period query | First period to return e.g. 2025-01 |
| tooptional | period query | Last period to return e.g. 2026-08 |
Request
# One currency's rate history
curl "https://api.tourismapi.com/v1/fx/THB" \
-H "X-API-Key: $TOURISM_API_KEY"const res = await fetch("https://api.tourismapi.com/v1/fx/THB", {
headers: { "X-API-Key": process.env.TOURISM_API_KEY }
});
if (!res.ok) throw new Error(`Tourism API ${res.status}`);
const { meta, data } = await res.json();
console.log(meta.data_as_of, data);import os, requests
r = requests.get(
"https://api.tourismapi.com/v1/fx/THB",
headers={"X-API-Key": os.environ["TOURISM_API_KEY"]},
timeout=10,
)
r.raise_for_status()
body = r.json()
print(body["meta"]["data_as_of"], body["data"])$ch = curl_init("https://api.tourismapi.com/v1/fx/THB");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["X-API-Key: " . getenv("TOURISM_API_KEY")],
]);
$body = json_decode(curl_exec($ch), true);
print_r($body["data"]);
Example response
{
"meta": {
"request_id": "req_23f59bcc31",
"data_as_of": "2026-10-20T04:48:19Z",
"count": 255,
"base": "EUR",
"quoted": "units of the currency per 1 EUR"
},
"data": [
{
"quote": "THB",
"base": "EUR",
"date": "2025-10-20",
"rate": 38.106
},
{
"quote": "THB",
"base": "EUR",
"date": "2025-10-21",
"rate": 38.071
},
{
"quote": "THB",
"base": "EUR",
"date": "2025-10-22",
"rate": 38.107
}
]
}Response fields
| Field | Type | Example |
|---|---|---|
| quote | string | THB |
| base | string | EUR |
| date | string | 2025-10-20 |
| rate | number | 38.106 |