Skip to content

GET /api/quantis/v3/rates/history/

Returns the most recent end-of-day closing rates — one entry per day, up to the last 30 days — newest first. A closing rate is the snapshot taken at the end of each day (America/Caracas timezone). Each entry is grouped exactly like the live endpoints: a bcv block (the official BCV rates, same shape as GET /rates/bcv/) and a markets block (the Binance P2P USDT rate plus the computed average and difference, same shape as GET /rates/markets/). All rates are quoted in Venezuelan Bolivar (VES).

MethodGET
URLhttps://app.vzla.io/api/quantis/v3/rates/history/
AuthenticationAuthorization: Bearer qapi_...
ParametersNone

Request

Terminal window
curl --request GET \
--url 'https://app.vzla.io/api/quantis/v3/rates/history/' \
--header 'Authorization: Bearer qapi_YOUR_KEY_HERE'

Response

data

An array of up to 30 closing-rate entries, ordered newest first.

FieldTypeDescription
datestring (ISO 8601 date)The Caracas date of this closing rate, e.g. "2026-06-17"
timestampstring (ISO 8601 datetime)When the closing rate was recorded
bcvobjectOfficial BCV rates — same shape as GET /rates/bcv/
marketsobjectBinance USDT rate plus computed reference rates — same shape as GET /rates/markets/
banksobjectBank buy/sell averages for USD across publishing banks — see below
badgesobject{ is_bank_holiday, is_weekend } flags for that date

Each entry reuses the labels and structure of the live endpoints, so the history reads with the same vocabulary a client already knows.

bcv

FieldTypeDescription
ratesobjectMap of currency code → rate object. Keys: USD, EUR

markets

FieldTypeDescription
usdtobjectBinance P2P USDT rate (rate object + market)
computed.averageobjectMidpoint between the BCV USD and USDT rates
computed.differenceobjectUSDT minus BCV USD (value under amount)

banks

USD buy/sell averages computed across the banks that published rates for the closing day (with a one-publishing-day grace window). Weekends and bank holidays carry the previous business day’s values forward.

FieldTypeDescription
USD.buy_averageobjectAverage BUY price across banks — { rate, indicator_pct, indicator_amount }
USD.sell_averageobjectAverage SELL price across banks — { rate, indicator_pct, indicator_amount }
USD.bank_namesstring[]Names of the banks included in the averages

Rate object (entries under bcv.rates, markets.usdt, and markets.computed.*)

FieldTypeDescription
ratestring | nullVES per 1 unit (difference uses amount instead)
indicator_pctstring | nullPercentage change versus the previous closing rate
indicator_amountstring | nullAbsolute change versus the previous closing rate
marketstringOnly on markets.usdt — always "Binance"

meta

FieldTypeDescription
sourcestringAlways "closing"
currency_quotestringAlways "VES" — all rates are quoted in Venezuelan Bolivar
countnumberNumber of entries returned (0–30)
window_daysnumberAlways 30 — the maximum window served

Example response

{
"data": [
{
"date": "2026-06-17",
"timestamp": "2026-06-17T23:59:01.482931+00:00",
"bcv": {
"rates": {
"USD": {
"rate": "493.37650000",
"indicator_pct": "0.78066864",
"indicator_amount": "3.82180000"
},
"EUR": {
"rate": "577.52186207",
"indicator_pct": "0.57960395",
"indicator_amount": "3.32804999"
}
}
},
"markets": {
"usdt": {
"rate": "612.10000000",
"indicator_pct": "0.67320000",
"indicator_amount": "4.10000000",
"market": "Binance"
},
"computed": {
"average": {
"rate": "552.73825000",
"indicator_pct": "0.71840000",
"indicator_amount": "3.96090000"
},
"difference": {
"amount": "118.72350000",
"indicator_pct": "0.23480000",
"indicator_amount": "0.27820000"
}
}
},
"banks": {
"USD": {
"buy_average": {
"rate": "612.10000000",
"indicator_pct": "0.67320000",
"indicator_amount": "4.10000000"
},
"sell_average": {
"rate": "618.40000000",
"indicator_pct": "0.71000000",
"indicator_amount": "4.36000000"
},
"bank_names": ["BBVA Provincial", "Banesco", "Mercantil"]
}
},
"badges": {
"is_bank_holiday": false,
"is_weekend": false
}
}
],
"meta": {
"source": "closing",
"currency_quote": "VES",
"count": 30,
"window_days": 30
}
}

HTTP status codes

CodeMeaning
200 OKSuccess.
401 UnauthorizedMissing, invalid or revoked key.
405 Method Not AllowedOnly GET is supported.
429 Too Many RequestsMonthly quota spent (quota_exceeded) or rate limit hit (throttled). See Tiers and limits.
500 Internal Server ErrorServer error. Retry after a short delay.

401: no Authorization header

{
"error": {
"code": "auth_missing",
"message": "Authentication credentials were not provided"
}
}

401: invalid key

{
"error": {
"code": "auth_token_unknown",
"message": "Invalid token format"
}
}

429: monthly quota spent

{
"error": {
"code": "quota_exceeded",
"message": "Monthly quota exceeded. It resets on the 1st of next month."
}
}

429: rate limit hit

{
"error": {
"code": "throttled",
"message": "Rate limit exceeded",
"details": {
"retry_after": 1
}
}
}
Complete documentation as plain text for AI tools (llms.txt)