API reference
Explore all BankFXApi endpoints, request parameters, response status codes and JSON examples in the API reference generated from the OpenAPI specification.
This reference is generated from the project’s OpenAPI specification. Examples illustrate response structure; they are not current exchange rates.
Use https://api.bankfxapi.com as the server. All /v1 endpoints require authentication.
API welcome
GET /
Returns a basic welcome response. This endpoint does not require authentication.
| HTTP status | Response |
|---|---|
200 |
API welcome response. |
Example response:
{
"code": 200,
"message": "Welcome to BankFXApi"
}
Get latest rates for a base currency
GET /v1/{base_currency}/latest
Returns the latest available blended rates for a base currency.
If amount is omitted, rates is a simple object keyed by currency code.
If amount is provided, rates contains per-currency rate and converted amount objects.
| Parameter | Location | Required | Description |
|---|---|---|---|
base_currency |
path | Yes | Three-letter ISO currency code used as the base currency. |
amount |
query | No | Positive numeric amount to convert. Defaults to 1 when omitted. |
| HTTP status | Response |
|---|---|
200 |
Latest rates for the requested base currency. |
401 |
Missing or invalid API key. |
402 |
Insufficient API points or expired plan. |
422 |
Invalid request parameters or body. |
Example response:
{
"code": 200,
"message": "success",
"rates": {
"AED": 3.6725,
"EUR": 0.859107,
"MYR": 4.018
}
}
Convert one currency to another
GET /v1/rate/{base_currency}/{target_currency}
Returns the latest fresh exchange rate from one currency to another.
If amount is omitted, the API uses 1.
| Parameter | Location | Required | Description |
|---|---|---|---|
base_currency |
path | Yes | Three-letter ISO currency code used as the base currency. |
target_currency |
path | Yes | Three-letter ISO currency code used as the target currency. |
amount |
query | No | Positive numeric amount to convert. Defaults to 1 when omitted. |
| HTTP status | Response |
|---|---|
200 |
Conversion response for the requested currency pair. |
401 |
Missing or invalid API key. |
402 |
Insufficient API points or expired plan. |
404 |
No fresh rate is available for the requested pair. |
422 |
Invalid request parameters or body. |
Example response:
{
"code": 200,
"message": "success",
"base": "USD",
"target": "EUR",
"rate": 0.859107,
"amount": 1,
"converted": 0.859107,
"last_update": "2026-06-04 15:26:44"
}
Bulk currency conversion
POST /v1/rates/convert
Converts one amount from a base currency into multiple target currencies in a single request.
If amount is omitted, the API uses 1.
Request body: application/json.
| Field | Type | Required | Description |
|---|---|---|---|
base |
string | Yes | |
amount |
number | No | |
targets |
array | Yes |
| HTTP status | Response |
|---|---|
200 |
Bulk conversion response. |
401 |
Missing or invalid API key. |
402 |
Insufficient API points or expired plan. |
422 |
Invalid request parameters or body. |
Example response:
{
"code": 200,
"message": "success",
"base": "USD",
"amount": 100,
"rates": {
"EUR": {
"rate": 0.859107,
"converted": 85.9107,
"last_update": "2026-06-04 15:26:44"
},
"AED": {
"rate": 3.6725,
"converted": 367.25,
"last_update": "2026-06-04 15:31:27"
},
"MYR": {
"rate": 4.018,
"converted": 401.8,
"last_update": "2026-06-04 16:42:29"
}
},
"missing": []
}
Get rates from a specific central bank
GET /v1/bank/{bank_code}
Returns rates published by a specific supported central bank or reference source. This endpoint is not available on the Starter plan.
| Parameter | Location | Required | Description |
|---|---|---|---|
bank_code |
path | Yes | Four-character BankFxApi bank code from the supported banks endpoint. |
reciprocal |
query | No | Whether to return reciprocal stored rates. |
format |
query | No | Use full for detailed row objects. Omit for a simple currency-to-rate map. |
| HTTP status | Response |
|---|---|
200 |
Rates for the requested central bank. |
401 |
Missing or invalid API key. |
402 |
Insufficient API points or expired plan. |
403 |
Endpoint is unavailable on the current plan. |
Example response:
{
"code": 200,
"message": "success",
"meta": {
"country_code": "AE",
"bank_name": "Central Bank of the U.A.E",
"base_currency": "AED",
"last_update": "2026-06-04 15:31:27"
},
"rates": [
{
"currency": "USD",
"rate": 0.272294,
"last_update": "2026-06-04 15:31:27",
"bank_update": "2026-06-04 15:31:27"
}
]
}
List supported banks
GET /v1/banks
Returns supported central banks and reference sources.
| HTTP status | Response |
|---|---|
200 |
Supported bank list. |
401 |
Missing or invalid API key. |
402 |
Insufficient API points or expired plan. |
Example response:
{
"code": 200,
"message": "success",
"banks": [
{
"country_code": "AE",
"country_name": "United Arab Emirates",
"bank_code": "AECB",
"currency": "AED",
"bank_name": "Central Bank of the U.A.E"
},
{
"country_code": "MY",
"country_name": "Malaysia",
"bank_code": "BNMY",
"currency": "MYR",
"bank_name": "Bank Negara Malaysia"
}
]
}
List supported currencies
GET /v1/currencies
Returns supported currencies with country metadata.
| HTTP status | Response |
|---|---|
200 |
Supported currency list. |
401 |
Missing or invalid API key. |
402 |
Insufficient API points or expired plan. |
Example response:
{
"code": 200,
"message": "success",
"currencies": [
{
"country_code": "AE",
"country_name": "United Arab Emirates",
"currency": "AED"
},
{
"country_code": "MY",
"country_name": "Malaysia",
"currency": "MYR"
}
]
}