Build on Makazi.io
Unganisha mfumo wako wa mali na soko la Makazi.io. Upload properties in bulk, auto-tag photos with AI, and access real-time market analytics.
API Capabilities
Uwezo wa API
Bulk Listing Upload
Upakiaji wa Nyumba Nyingi
Upload up to 100 properties per API call. Perfect for agencies managing large portfolios.
AI Photo Tagging
Uwekaji Alama kwa Picha za AI
Gemini 1.5 Flash automatically labels your property images in English and Swahili.
Market Analytics
Uchambuzi wa Soko
Access real-time pricing trends, demand heatmaps, and rental velocity data.
Secure Key Vault
Hifadhi Salama ya Funguo
SHA-256 hashed keys with one-time reveal. Roll keys without downtime.
Test & Live Modes
Hali ya Majaribio na Moja kwa Moja
Use mkz_test_ keys for sandbox development. Switch to mkz_live_ for production.
REST API
API ya REST
Standard JSON REST interface. Works with any language — Node.js, Python, Go, cURL.
Quickstart Guide
Mwongozo wa Kuanza Haraka
Generate an API Key
Go to your API Management page and generate a new key. Copy the key immediately — it's shown only once.
Make Your First Request
Tuma ombi lako la kwanza — Send your first request using cURL:
curl -X POST https://makazi.io/api/v1/listings/bulk \
-H "Content-Type: application/json" \
-H "X-API-Key: mkz_live_YOUR_KEY_HERE" \
-d '{
"listings": [
{
"title": "Penthouse ya Kisasa Masaki",
"description": "3BR penthouse with ocean views...",
"property_type": "apartment",
"price": 4500000,
"currency": "TZS",
"bedrooms": 3,
"bathrooms": 2,
"amenities": ["pool", "gym", "parking"],
"images": ["https://example.com/img1.jpg"]
}
]
}'Check the Response
Each listing returns a success/failure result with the listing ID:
{
"summary": {
"total": 1,
"succeeded": 1,
"failed": 0,
"test_mode": false
},
"results": [
{
"index": 0,
"success": true,
"listing_id": "a1b2c3d4-e5f6-..."
}
]
}API Reference
Rejea ya API
Endpoints
/api/v1/listings/bulkCreate up to 100 listings in a single request
/api/v1/listings/bulkCheck API key status and usage statistics
Authentication — Uthibitishaji
All API requests must include an X-API-Key header with your enterprise API key.
| Header | Type | Description |
|---|---|---|
| X-API-Key | string | Your mkz_live_ or mkz_test_ key |
| Content-Type | string | Must be application/json |
Listing Object Schema
| Field | Type | Required | Description |
|---|---|---|---|
| title | string | Required | Listing title |
| description | string | Required | Full description |
| property_type | enum | Required | apartment, house, studio, room, commercial, land |
| price | number | Required | Monthly rent amount |
| currency | string | Optional | TZS (default) or USD |
| bedrooms | integer | Optional | Number of bedrooms |
| bathrooms | integer | Optional | Number of bathrooms |
| area_sqm | number | Optional | Property size in square meters |
| address | string | Optional | Street address |
| latitude | number | Optional | GPS latitude |
| longitude | number | Optional | GPS longitude |
| amenities | string[] | Optional | List of amenities (e.g., pool, gym) |
| images | string[] | Optional | Array of image URLs |
| video_url | string | Optional | Video tour URL |
| whatsapp_number | string | Optional | Contact WhatsApp number |
| location_id | uuid | Optional | Reference to locations table |
Rate Limits & Errors — Mipaka na Makosa
100 listings per request — Split larger batches into multiple calls
60 requests per minute — Per API key rate limit
| Status | Meaning |
|---|---|
| 201 | Created — All or some listings succeeded |
| 400 | Bad Request — Invalid body or all listings failed |
| 401 | Unauthorized — Missing or malformed API key |
| 403 | Forbidden — Key revoked or insufficient tier |
| 429 | Rate Limited — Too many requests |
Code Examples
Mifano ya Msimbo
JSNode.js / JavaScript
import axios from 'axios';
const MAKAZI_API = 'https://makazi.io/api/v1';
const API_KEY = process.env.MAKAZI_API_KEY;
async function uploadListings(listings) {
const { data } = await axios.post(
`${MAKAZI_API}/listings/bulk`,
{ listings },
{ headers: { 'X-API-Key': API_KEY } }
);
console.log(`✅ ${data.summary.succeeded} uploaded`);
console.log(`❌ ${data.summary.failed} failed`);
return data;
}PYPython
import requests
API_KEY = "mkz_live_YOUR_KEY_HERE"
BASE_URL = "https://makazi.io/api/v1"
response = requests.post(
f"{BASE_URL}/listings/bulk",
headers={"X-API-Key": API_KEY},
json={
"listings": [
{
"title": "Studio Apartment Mikocheni",
"description": "Modern studio...",
"property_type": "studio",
"price": 800000,
"bedrooms": 1,
"bathrooms": 1,
}
]
}
)
data = response.json()
print(f"Uploaded: {data['summary']['succeeded']}")Tenant Safety Guide
Mwongozo wa Usalama wa Mpangaji
Verify Before You Pay
Thibitisha Kabla ya Kulipa
Always visit the property in person. Never send money before seeing the unit and meeting the landlord face-to-face.
Use Official Receipts
Tumia Risiti Rasmi
Request a signed rental agreement and official receipt for all payments. Keep copies of everything.
Report Suspicious Listings
Ripoti Tangazo Tata
If a deal seems too good to be true, report it. Use the flag button on any listing or contact support.
Know Your Rights
Jua Haki Zako
Under Tanzanian law, landlords must provide a written tenancy agreement. You have the right to a habitable dwelling.
Ready to Build? — Uko Tayari Kujenga?
Get your Enterprise API key and start uploading properties to the largest rental marketplace in Tanzania.
Get Started