Units, timestamps and sources
buy_bob_per_usd and sell_bob_per_usd, and historical buy, sell and mid, express BOB per reference USD. The source is the USDT/BOB P2P market; this is not a cash offer or a guarantee of USDT/USD parity. official_buy, official_sell and official_mid are a separate comparison in BOB per USD. Current quotes only publish values backed by verified official_observation; unavailable or unverified returns null. An official_status of stale retains the last verified BCB, with its original official_source_date and official_observed_at.
updated_at_iso is the observation timestamp; historical points use t. generated_at_iso and metadata.generated_at indicate response or export generation time, not a new observation. Check is_stale and the observation time: updates can be delayed.
Older rows without source_observation do not establish which platforms participated. New records can store a snapshot of sources, quotes, schema version and method identifier; it is published only when it matches the observation. Different methods operated in the past; we do not relabel those rows as a homogeneous series. When sources_used is empty, that observation’s source composition is unknown. Updating the collector does not correct or modify past observations.
source_provenance: persisted_observation identifies a valid source_observation: its version, method, assets and sources are valid, and its timestamp and medians match the stored row. If it is invalid or missing, source_observation is null and sources_used is empty; do not infer participating platforms.
In JSON, each point includes its provenance. metadata.source_provenance can be persisted_observation, unavailable_for_historical_rows or mixed; provenance_rows_recorded and provenance_rows_unavailable count each group. CSV retains its seven columns and does not include source snapshots; use JSON for per-row provenance. Historical official_* fields retain stored values, including legacy records of unverified source; do not attribute them to the BCB without checking official_observation and official_status. metadata.official_provenance is per_row_in_json; legacy_values_unverified. In historical data, stale retains validated BCB evidence: it reflects age at export generation or a fallback already marked stale, not missing provenance. Cite official_source_date and official_observed_at rather than the P2P timestamp t.
Public downloads are capped at 4,000 recent rows. Check coverage dates and truncated in JSON or the CSV headers before citing a full period. The existing exclusion of rows identified as interpolation during a 2026 outage is preserved. Downloaded official_* fields retain stored values, including values from unverified sources. CSV does not include per-row official status: use JSON and check official_observation and official_status before attributing a value to the BCB; unverified does not establish that source.
Available Endpoints
GET /api/blue-rate
Current USD/BOB quote. Source composition may be unavailable for the stored row.
Documented response fields
{
"buy_bob_per_usd": "number",
"sell_bob_per_usd": "number",
"updated_at_iso": "ISO 8601 observation time",
"generated_at_iso": "ISO 8601 response generation time",
"is_stale": "boolean",
"sources_used": "array (empty when provenance is unknown)",
"source_count": "number",
"source_provenance": "persisted_observation | unavailable_for_stored_row",
"source_observation": "validated snapshot or null",
"quote_kind": "usdt_p2p_median",
"official_buy": "number or null",
"official_sell": "number or null",
"official_mid": "number or null",
"official_observation": "validated BCB evidence or an empty unavailable/unverified record; fields: version, status, source, source_url, source_date, observed_at, buy, sell, mid",
"official_status": "verified | stale | unavailable | unverified",
"official_source": "bcb or null",
"official_source_date": "BCB board YYYY-MM-DD or null",
"official_observed_at": "original BCB retrieval ISO 8601 or null"
}
https://www.boliviablue.com/api/blue-rate
GET /api/historical-data.csv
Up to 4,000 recent observations in ascending date order. 30d limits the period; all selects the latest available rows, not the entire archive. 90d and 1y return 400. These public samples do not require a token.
Parameters
range (string): Default: 30d (30d, all)limit (integer): 1–4000; default 4000. Larger values are capped at 4000.
Documented response fields
CSV columns: t,buy,sell,mid,official_buy,official_sell,official_mid. Coverage headers: X-Data-Range, X-Data-Rows, X-Data-Limit, X-Data-Truncated, X-Data-Start, X-Data-End, X-Data-Provenance. Official provenance header: X-Official-Provenance: legacy-values-unverified; per-row-status-in-json. Legacy official values have unverified provenance; use JSON for per-row official_status and official_observation.
https://www.boliviablue.com/api/historical-data.csv?range=30d
GET /api/historical-data.json
Up to 4,000 recent observations in ascending date order. 30d limits the period; all selects the latest available rows, not the entire archive. 90d and 1y return 400. These public samples do not require a token.
Parameters
range (string): Default: 30d (30d, all)limit (integer): 1–4000; default 4000. Larger values are capped at 4000.
Documented response fields
JSON: { range, count, points: [{ t, buy, sell, mid, official_buy, official_sell, official_mid, official_observation, official_status, official_source, official_source_date, official_observed_at, source, sources_used, source_count, source_provenance, source_observation, quote_kind }], metadata: { range_requested, requested_start, requested_end, returned_start, returned_end, rows_returned, limit, truncated, selection, order, source, source_provenance, provenance_rows_recorded, provenance_rows_unavailable, csv_provenance, official_provenance, excluded_interpolated_gap, attribution, generated_at } }
https://www.boliviablue.com/api/historical-data.json?range=30d
GET /api/health
Archive status and latest observation time.
Documented response fields
{
"ok": "boolean",
"updated_at_iso": "ISO 8601 or null",
"history_points": "number",
"host": "vercel"
}
https://www.boliviablue.com/api/health