Karibu
Sign up
Karibu

Data API · v1

Programmatic access to Karibu's listings, sold transactions, agent profiles, parcel data, and the Online Pricing Index. Built for banks, fintechs, insurers and developers who need cited, source-traceable Kenyan property data inside their own systems.

Pricing tiers

Trial
$0/mo
  • · 10,000 calls/month
  • · 30 req/min burst
  • · All v1 read endpoints
  • · Email support
Pro
MOST POPULAR
$499/mo
  • · 250,000 calls/month
  • · 240 req/min burst
  • · All v1 read endpoints
  • · Priority email support
  • · 99.5% monthly SLA target
Enterprise
$2,500+/mo
  • · 5M calls/month
  • · 1,200 req/min burst
  • · Bulk JSON exports
  • · Co-branded reporting
  • · Named Karibu engineer
  • · Custom SLA

KD-033 consortium counterparties receive complimentary Consortium-tier access — talk to Hassan directly.

Authentication

Every request must include your API token as a Bearer header.

curl https://karibu-peach.vercel.app/api/v1/listings?neighborhood=Karen \
  -H "Authorization: Bearer kapi_<key_id>_<secret>"

Karibu stores only a SHA-256 hash of your secret. The full token is shown ONCE at issuance — store it in your secret manager immediately. Lost tokens cannot be recovered; we revoke and reissue.

Endpoints

GET/api/v1/listings

Active listings across all KD-033 sources. Filters: country, city, neighborhood, asset_class, deal_type, min, max, bedrooms, pricing_source_class. Paginated.

GET /api/v1/listings?country=Kenya&neighborhood=Karen&bedrooms=4&page=1&size=50
GET/api/v1/transactions

Verified sold transactions. Returns recent comps + aggregate (count, median, mean, min, max). Filters: country, city, neighborhood, asset_class, bedrooms, limit.

GET /api/v1/transactions?country=Kenya&neighborhood=Karen&limit=10
GET/api/v1/online-pricing-index

Per-neighborhood asking-price aggregate from the major KE portals — and the spread (in %) versus the Karibu Index midpoint. The Karibu signature metric. See it rendered at /online-pricing-index.

GET /api/v1/online-pricing-index?country=Kenya
GET/api/v1/agents

Agent / developer / contractor profiles with EARB / NCA licence numbers where available. Filters: country, type, county, q (name), karibu_verified.

GET /api/v1/agents?country=Kenya&type=developer&county=Nairobi
GET/api/v1/parcels

Lands Ministry / NLC parcel data. Lookup by LR number, or filter by county / sub_county / use / area. Proprietor names are not exposed (PII boundary, per KE Data Protection Act 2019).

GET /api/v1/parcels?lr=Nairobi/Block/123/456
GET /api/v1/parcels?county=Nairobi&sub_county=Westlands&use=residential
GET/api/v1/me

Your key tier + month-to-date usage breakdown.

GET /api/v1/me

Sample code

curl

curl 'https://karibu-peach.vercel.app/api/v1/online-pricing-index?country=Kenya' \
  -H "Authorization: Bearer $KARIBU_API_KEY"

Python

import os, requests

r = requests.get(
    'https://karibu-peach.vercel.app/api/v1/listings',
    params={'country': 'Kenya', 'neighborhood': 'Karen', 'bedrooms': 4},
    headers={'Authorization': f"Bearer {os.environ['KARIBU_API_KEY']}"},
    timeout=30,
)
r.raise_for_status()
data = r.json()
print(f"{data['total']} listings; first: {data['listings'][0]['title']}")

Node.js

const r = await fetch(
  'https://karibu-peach.vercel.app/api/v1/transactions?neighborhood=Karen&limit=10',
  { headers: { 'Authorization': `Bearer ${process.env.KARIBU_API_KEY}` } }
);
const data = await r.json();
console.log(`Median sold: KES ${data.aggregate.median.toLocaleString()}`);

Rate limits + headers

Every response carries:

429 responses include Retry-After in seconds. We don't drop requests during the warning band — only at the burst cap.

Source provenance — every record

Each record returns:

You are required to honour the per-source attribution text when redisplaying. Karibu retains audit logs of every API call for compliance under the KE Data Protection Act 2019.

Request an API key

We review every request manually — typically within 2 business days.

© 2026 Karibu — A Provecta Group product. Data licensed under the KD-033 country-data deal. Privacy · How we verify