Skip to content

Reference

REST API

Base URL: https://api.imibare.org
All endpoints are versioned under /v1/.
Responses are JSON unless a download endpoint is used.

GET /v1/datasets

Returns all datasets in the catalog.

Request

GET /v1/datasets

Query parameters

ParameterTypeDescription
countrystringFilter by ISO 3166-1 alpha-2 code (e.g., RW, KE). Case-insensitive.
institutionstringFilter by institution slug (e.g., nisr).
topicstringFilter by topic slug (e.g., prices).
frequencystringFilter by frequency slug (e.g., monthly).
pipelinestringFilter by pipeline status: automated, curated, or stale.

Response 200 OK

{
"datasets": [
{
"id": "rw.nisr.cpi.monthly",
"country": "RW",
"country_name": "Rwanda",
"name": "Consumer Price Index (monthly)",
"institution": "National Institute of Statistics of Rwanda",
"institution_slug": "nisr",
"topic": "prices",
"frequency": "monthly",
"coverage_start": "2009-01",
"coverage_end": "present",
"pipeline": "automated",
"last_updated": "2026-05-15",
"version": "2026-05-15",
"formats": ["csv", "json", "parquet"],
"license": "CC-BY-4.0",
"license_basis": "publisher-terms",
"license_url": "https://statistics.gov.rw/terms-use"
}
],
"total": 5
}

Examples

Terminal window
# All datasets
curl https://api.imibare.org/v1/datasets
# Rwanda only
curl "https://api.imibare.org/v1/datasets?country=RW"
# Monthly price datasets
curl "https://api.imibare.org/v1/datasets?topic=prices&frequency=monthly"

GET /v1/datasets/{id}

Returns full metadata for a single dataset, including column specifications.

Request

GET /v1/datasets/{id}

Path parameters

ParameterTypeDescription
idstringDataset ID (e.g., rw.nisr.cpi.monthly)

Response 200 OK

{
"id": "rw.nisr.cpi.monthly",
"country": "RW",
"country_name": "Rwanda",
"name": "Consumer Price Index (monthly)",
"institution": "National Institute of Statistics of Rwanda",
"institution_slug": "nisr",
"topic": "prices",
"frequency": "monthly",
"coverage_start": "2009-01",
"coverage_end": "present",
"pipeline": "automated",
"source_url": "https://statistics.gov.rw/statistical-publications/price-indices-cpi-ppi/",
"source_format": "excel",
"last_updated": "2026-05-15",
"version": "2026-05-15",
"formats": ["csv", "json", "parquet"],
"license": "CC-BY-4.0",
"license_basis": "publisher-terms",
"license_url": "https://statistics.gov.rw/terms-use",
"columns": [
{
"name": "date",
"type": "date",
"description": "First day of reference month",
"unit": null
},
{
"name": "category",
"type": "string",
"description": "CPI category (overall, food, housing, transport, …)",
"unit": null
},
{
"name": "value",
"type": "float64",
"description": "Index value (base year 2014=100)",
"unit": "index"
}
],
"notes": "Base year changed from 2009 to 2014 in the January 2015 release."
}

Response 404 Not Found

{
"error": "Dataset not found",
"id": "rw.nisr.cpi.monthly"
}

Example

Terminal window
curl https://api.imibare.org/v1/datasets/rw.nisr.cpi.monthly

GET /v1/data/{id}/download

Returns the dataset file as a download.

Request

GET /v1/data/{id}/download

Path parameters

ParameterTypeDescription
idstringDataset ID

Query parameters

ParameterTypeDefaultDescription
formatstringparquetFile format: parquet, csv, or json
versionstringlatestVersion date YYYY-MM-DD. Returns the Parquet snapshot for that date.

Response 200 OK
Binary file stream with Content-Type set to the format’s MIME type:

  • application/octet-stream for Parquet
  • text/csv for CSV
  • application/json for JSON

Examples

Terminal window
# Download CPI as Parquet
curl -O "https://api.imibare.org/v1/data/rw.nisr.cpi.monthly/download"
# Download as CSV
curl -o cpi.csv "https://api.imibare.org/v1/data/rw.nisr.cpi.monthly/download?format=csv"
# Download a specific version
curl -O "https://api.imibare.org/v1/data/rw.nisr.cpi.monthly/download?version=2025-06-01"

GET /v1/search

Full-text search across dataset names and descriptions.

Request

GET /v1/search?q={query}

Query parameters

ParameterTypeRequiredDescription
qstringYesSearch query

Response 200 OK

{
"query": "exchange rate",
"results": [
{
"id": "rw.bnr.fx.daily",
"name": "Official exchange rates (daily)",
"country": "RW",
"country_name": "Rwanda",
"institution": "National Bank of Rwanda",
"institution_slug": "bnr",
"topic": "exchange-rates",
"frequency": "daily",
"pipeline": "automated"
}
],
"total": 1
}

Search matches on id, name, country code and name, institution, topic, notes and tags, so q=kenya finds Kenyan datasets whose names never say Kenya.

Example

Terminal window
curl "https://api.imibare.org/v1/search?q=exchange+rate"

Error responses

All errors return JSON with an error field.

StatusMeaning
400 Bad RequestInvalid query parameter or format value
404 Not FoundDataset ID not found
500 Internal Server ErrorR2 read failure or upstream error

Rate limits

No authentication is required, and no formal rate limits are enforced. Treat the API as a public service and avoid automated bulk downloads. Use the Parquet files directly from R2 instead.