Co APIrbz.co.zw ↗
Access daily interbank exchange rates from the Reserve Bank of Zimbabwe. Bid, ask, and mid rates for ~38 currencies against USD and ZWG.
What is the Co API?
The RBZ Exchange Rates API delivers official interbank exchange rates published by the Reserve Bank of Zimbabwe across 2 endpoints. The get_daily_rate endpoint returns bid, ask, and mid rates for approximately 38 currencies quoted against both USD and ZWG for any specified business day. The get_available_rates endpoint lets you discover which dates in a given month have published rate data before making date-specific requests.
curl -X GET 'https://api.parse.bot/scraper/37c9e101-7eef-4e78-8ee6-539d0aa2e68d/get_daily_rate?date=2026-08-27' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace rbz-co-zw-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: RBZ Exchange Rates — discover available dates, then fetch rates."""
from parse_apis.rbz_co_zw_api import RBZ, InputNotFound
client = RBZ()
# List available rate dates for a month, capped to 5 items.
for rate_date in client.rate_dates.list(year=2026, month=8, limit=5):
print(rate_date.date, "pdf:", rate_date.pdf_available)
# Drill into the first available date to get full exchange rates.
first_date = client.rate_dates.list(year=2026, month=8, limit=1).first()
if first_date is not None:
daily = first_date.details()
print(daily.date_label)
for rate in daily.rates[:5]:
print(f" {rate.currency} mid_zwg={rate.mid_rate_zwg}")
# Direct point-lookup by a known date.
try:
daily = client.daily_rates.get(date="2026-08-04")
print(daily.date_label, f"({len(daily.rates)} currencies)")
except InputNotFound:
print("No rates published on that date (weekend/holiday).")
print("exercised: rate_dates.list / rate_date.details / daily_rates.get")
Retrieve the RBZ interbank exchange rates for a specific date. Returns bid, ask, and mid rates for approximately 38 currencies quoted against both USD and ZWG. Rates are published on business days only (Mon-Fri, excluding Zimbabwean public holidays). Requesting a weekend or holiday date returns a not-found error. One upstream PDF request per call.
| Param | Type | Description |
|---|---|---|
| daterequired | string | Date in ISO format YYYY-MM-DD (e.g. 2026-08-28). Must be a business day when RBZ publishes rates. |
{
"type": "object",
"fields": {
"date": "ISO date string for the requested date",
"rates": "Array of exchange rate objects, one per currency",
"date_label": "Human-readable date label from the published rate sheet (e.g. 'August 28, 2026')"
},
"sample": {
"data": {
"date": "2026-08-28",
"rates": [
{
"ask_usd": 1,
"ask_zwg": 27.1612,
"bid_usd": 1,
"bid_zwg": 25.8362,
"currency": "USD",
"mid_rate_usd": 1,
"mid_rate_zwg": 26.4987
},
{
"ask_usd": 16.0075,
"ask_zwg": 0.6195,
"bid_usd": 16.0012,
"bid_zwg": 0.5891,
"currency": "ZAR",
"mid_rate_usd": 16.00435,
"mid_rate_zwg": 0.6043
},
{
"ask_usd": 1.3592,
"ask_zwg": 36.9175,
"bid_usd": 1.3584,
"bid_zwg": 35.0958,
"currency": "GBP",
"mid_rate_usd": 1.3588,
"mid_rate_zwg": 36.0067
}
],
"date_label": "August 28, 2026"
},
"status": "success"
}
}About the Co API
What the API Returns
The get_daily_rate endpoint accepts a single date parameter in ISO format (YYYY-MM-DD) and returns a rates array containing one object per currency. Each rate object includes bid, ask, and mid values for both the USD-paired and ZWG-paired quotes. The response also includes the date field as an ISO string and a date_label field — the human-readable form as it appears on the published rate sheet (e.g. August 28, 2026).
Discovering Available Dates
Rates are published on Zimbabwean business days only — Monday through Friday, excluding public holidays. Calling get_daily_rate with a weekend or holiday date will not return rate data. To avoid this, use get_available_rates first. Pass a year (four-digit integer) and month (1–12), and the endpoint returns a dates array where each entry contains an ISO date, a day number, and a boolean PDF availability flag indicating whether rates were published on that date.
Coverage and Freshness
The API covers approximately 38 currencies per rate sheet, all quoted against both USD and ZWG. Data reflects the official rate sheet published by the Reserve Bank of Zimbabwe, so freshness is tied to RBZ's own publication schedule. Rates are not intraday — one set of bid/ask/mid values is published per business day. Historical data is accessible by date as far back as the RBZ's archive extends, discoverable month by month via get_available_rates.
The Co API is a managed, monitored endpoint for rbz.co.zw — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when rbz.co.zw changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official rbz.co.zw API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Convert ZWG-denominated figures to USD using official RBZ mid rates for financial reporting
- Back-fill historical exchange rate data by iterating
get_available_ratesacross past months - Alert systems that detect when the RBZ bid/ask spread widens beyond a threshold for a specific currency
- Compliance workflows that require recording the official interbank rate on the transaction date
- Cross-currency comparison dashboards tracking ZWG appreciation or depreciation against a basket of ~38 currencies
- Academic or economic research using RBZ-published rates as a consistent official benchmark
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does the Reserve Bank of Zimbabwe offer an official developer API for its exchange rate data?+
What does the `rates` array in `get_daily_rate` contain for each currency?+
rates array covers one currency and includes bid, ask, and mid rate values quoted against both USD and ZWG. The response covers approximately 38 currencies per business day.What happens if I request a date when no rates were published?+
get_daily_rate will not return rate data for those dates. Use get_available_rates with the target year and month to check the PDF availability flag for each date before making a date-specific request.