| Method | Path | Summary |
|---|---|---|
| GET | /currency-exchanges/{currency} | Get exchange rates for one base currency |
Every endpoint needs currency-exchanges:read.
The CurrencyExchange object
baseCurrencystringrequiredtimestampstringdate-timerequiredratesRecord<string, number>requiredThe CurrencyExchange object
{
"baseCurrency": "string",
"timestamp": "2026-03-02T09:30:00.000Z",
"rates": {
"key": 0
}
}GET
/currency-exchanges/{currency}Get exchange rates for one base currency
The currency is an uppercase ISO 4217 code (e.g. CHF). Unknown currencies return a 404.
Scopecurrency-exchanges:read
Path parameters
currencystringrequiredBase currency, as an ISO 4217 code.
Query parameters
fieldsstringComma-separated property paths to include in the response, or in each item of a list. Use dots for nested paths.
Returns
200
Successful response
curl 'https://api.business.swayapp.io/v1/currency-exchanges/CHF' \
-H "Authorization: Bearer $SWAY_API_KEY"const response = await fetch('https://api.business.swayapp.io/v1/currency-exchanges/CHF', {
headers: {
Authorization: `Bearer ${process.env.SWAY_API_KEY}`,
},
});
console.log(await response.json());import os
import requests
response = requests.get(
"https://api.business.swayapp.io/v1/currency-exchanges/CHF",
headers={"Authorization": f"Bearer {os.environ['SWAY_API_KEY']}"},
)
print(response.json()){
"data": {
"baseCurrency": "string",
"timestamp": "2026-03-02T09:30:00.000Z",
"rates": {
"key": 0
}
}
}{
"error": {
"code": "invalid-argument",
"message": "Invalid request"
}
}{
"error": {
"code": "unauthenticated",
"message": "Invalid or expired credentials"
}
}{
"error": {
"code": "permission-denied",
"message": "Missing required scope: invoices:read"
}
}{
"error": {
"code": "not-found",
"message": "Resource not found"
}
}{
"error": {
"code": "internal",
"message": "An internal error occurred"
}
}