curl --request GET \
--url https://avraapi.com/api/v1/utility/currency/latest/{base} \
--header 'X-API-KEY: <api-key>' \
--header 'X-API-SECRET: <api-key>'const options = {
method: 'GET',
headers: {'X-API-KEY': '<api-key>', 'X-API-SECRET': '<api-key>'}
};
fetch('https://avraapi.com/api/v1/utility/currency/latest/{base}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://avraapi.com/api/v1/utility/currency/latest/{base}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>",
"X-API-SECRET: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"success": true,
"request_id": "01f00000-0000-4000-8000-000000000002",
"data": {
"base": "USD",
"last_updated": "2026-01-15 09:30:00",
"rates": {
"AUD": 1.5,
"EUR": 0.9,
"LKR": 300
}
}
}{
"success": false,
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "invalid_currency_code",
"message": "<string>",
"details": {}
},
"meta": {}
}{
"success": false,
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "unauthorized",
"message": "<string>",
"details": {}
},
"meta": {}
}{
"success": false,
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "provider_selection_failed",
"message": "<string>",
"details": {}
},
"meta": {}
}{
"success": false,
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "rate_limit_exceeded",
"message": "<string>",
"details": {}
},
"meta": {}
}{
"success": false,
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "project_paused",
"message": "<string>",
"details": {}
},
"meta": {}
}Get latest rates
Retrieve the available rate map from one active base currency.
curl --request GET \
--url https://avraapi.com/api/v1/utility/currency/latest/{base} \
--header 'X-API-KEY: <api-key>' \
--header 'X-API-SECRET: <api-key>'const options = {
method: 'GET',
headers: {'X-API-KEY': '<api-key>', 'X-API-SECRET': '<api-key>'}
};
fetch('https://avraapi.com/api/v1/utility/currency/latest/{base}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://avraapi.com/api/v1/utility/currency/latest/{base}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>",
"X-API-SECRET: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"success": true,
"request_id": "01f00000-0000-4000-8000-000000000002",
"data": {
"base": "USD",
"last_updated": "2026-01-15 09:30:00",
"rates": {
"AUD": 1.5,
"EUR": 0.9,
"LKR": 300
}
}
}{
"success": false,
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "invalid_currency_code",
"message": "<string>",
"details": {}
},
"meta": {}
}{
"success": false,
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "unauthorized",
"message": "<string>",
"details": {}
},
"meta": {}
}{
"success": false,
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "provider_selection_failed",
"message": "<string>",
"details": {}
},
"meta": {}
}{
"success": false,
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "rate_limit_exceeded",
"message": "<string>",
"details": {}
},
"meta": {}
}{
"success": false,
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"error": {
"code": "project_paused",
"message": "<string>",
"details": {}
},
"meta": {}
}data.rates.
API endpoint
https://avraapi.com/api/v1/utility/currency/latest/{base}
Request
curl "https://avraapi.com/api/v1/utility/currency/latest/USD" \
-H "X-API-KEY: YOUR_PROJECT_CLIENT_ID" \
-H "X-API-SECRET: YOUR_PROJECT_CLIENT_SECRET" \
-H "X-ENV: development" \
-H "Accept: application/json"
Response
The rate map below is shortened for readability.data.rates contains the full set of rates available for the requested base currency.
{
"success": true,
"request_id": "882bc900-bd42-4286-a828-2594636245e6",
"data": {
"base": "USD",
"last_updated": "2026-05-06T00:00:01.000000Z",
"rates": {
"AED": 3.6725,
"AFN": 63.9347,
"ALL": 82.0532
}
}
}
Error codes
| HTTP | error.code | When it happens |
|---|---|---|
400 | invalid_currency_code | {base} is unknown, inactive, or not a valid currency code. Retrieve the active list from List supported currency codes. |
401 | unauthorized | The Project Client ID or Client Secret is missing, invalid, inactive, or does not match the selected environment. |
422 | provider_selection_failed | The Currency provider cannot be selected for the project environment. |
429 | rate_limit_exceeded | The project has exceeded the Currency service request limit. Wait for Retry-After before retrying. |
503 | project_paused | The project is paused and cannot make API requests. |
request_id when contacting support; see the REST API guide for the shared response format.
base must be an active three-letter currency code. AvraAPI accepts lower-case input and normalises it before validation, but use uppercase codes in your application for clarity. An unknown or inactive value returns 400 with error.code: invalid_currency_code.
Read last_updated correctly
data.last_updated is the current source-update value held by AvraAPI. It is useful for freshness checks, but its exact string format is not a versioned contract. Do not use this endpoint as a financial quote or settlement source without your own validation.
Use Get one currency-pair rate when you only need one target rate.
Playground resources
The generated reference below lists this endpoint’s API standard details: request fields, authorizations, and response schema. The complete integration guide, request and response examples, and endpoint-specific error handling are above.Authorizations
Your Development project's Client ID. Enter your own value in the Documentation Playground.
Your Development project's Client Secret. Mintlify does not proxy these requests; the browser sends them directly to AvraAPI. Never enter a Production secret in the Documentation Playground.
Headers
Selects the Development credential environment. The Documentation Playground exposes Development values only; normal backend integrations may use their documented Production credentials outside this tool.
dev, development Requests a JSON response where the selected operation supports JSON.
"application/json"
Optional privacy override. Turn this on to request that AvraAPI suppress request-payload storage in observability logs for this request.
true
Path Parameters
An active three-letter currency code. Input is normalised to uppercase before it is checked against the active Currency code list.
^[A-Za-z]{3}$"USD"
Was this page helpful?
