Turn an MLIC into a point a rider can reach, verify a business or a customer's address, search the business directory and link your own records to the places they serve, across 25 countries.
curl "https://api.mzuzigroup.com/v1/delivery-points/TEST%20UG%201A" \ -H "Authorization: Bearer $MZUZI_KEY"
const res = await fetch(
"https://api.mzuzigroup.com/v1/delivery-points/" + encodeURIComponent("TEST UG 1A"),
{ headers: { Authorization: `Bearer ${process.env.MZUZI_KEY}` } }
);
const { data } = await res.json();
console.log(data.latitude, data.longitude, data.directions);
$res = Http::withToken(env('MZUZI_KEY'))
->get('https://api.mzuzigroup.com/v1/delivery-points/' . rawurlencode('TEST UG 1A'));
$point = $res->json('data');
echo $point['directions'];
import os, requests
r = requests.get(
"https://api.mzuzigroup.com/v1/delivery-points/TEST%20UG%201A",
headers={"Authorization": f"Bearer {os.environ['MZUZI_KEY']}"},
)
point = r.json()["data"]
print(point["latitude"], point["longitude"])
{
"data": {
"mlic": "TEST UG 1A",
"latitude": 0.3976,
"longitude": 32.6061,
"entrance": "Black gate facing the main road",
"landmark": "Opposite the fuel station",
"directions": "Second turn left after the market, third house",
"category": "domestic",
"verification": { "status": "field_verified" }
}
}
Where is this place, who runs this business, is this address real, and who should we send to fix it.
A customer gives you their MLIC at checkout; you get coordinates, entrance and directions. Homes share only with the owner's approval.
GET/delivery-points/{mlic}Countries down to villages, plus every MLIC place with its full area chain. Geocode and reverse-geocode included.
GET/locations/{mlic}Verified businesses and branches with MLIC, address, hours and contacts. Search by name, category or distance.
GET/search?q=pharmacyWhat each verified business sells, with categories and attributes, ready for marketplaces and comparison apps.
GET/productsConfirm a business at an MLIC, or a customer's private address, as a yes/no answer. No personal data leaves MZUZI.
POST/verify/mlicSigned events when businesses change, owners approve sharing, or customers apply for your services.
POST/webhooksSign in with your MZUZI account, describe what you are building and pick a trial country.
Test keys return sample data, never expire and are never billed. Restrict them by IP, domain or app ID.
Use the samples above, the Postman collection or the OpenAPI spec with your favourite client generator.
Switch to a live key when you are ready. Upgrade any time; usage and limits are in your dashboard.
Partnership tenants get their own workspace with named officer accounts, and the controls their security teams ask for.
curl -X POST https://api.mzuzigroup.com/oauth/token \ -u "$CLIENT_ID:$CLIENT_SECRET" \ -d grant_type=client_credentials \ -d scope="partner.links export.bulk"
curl "https://api.mzuzigroup.com/v1/links?status=active" \ -H "Authorization: Bearer mzat_..." \ -H "X-Purpose: Meter audit, Kampala north"
{
"access_token": "mzat_...",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "partner.links export.bulk"
}
Every plan includes test keys, the dashboard and webhooks where listed. Paid plans from $29 a month.
30 days free, no card. One country, locations, directory and delivery points.
One country. Locations, business directory and delivery points.
Up to 5 countries. Adds search, nearby and geocoding.
All countries. Adds MLIC and business verification, webhooks and area statistics.
The MZUZI Location Identification Code: a short, human-friendly code for a verified place (a home, shop, office or plot). People share it like a phone number; your app turns it into a point on the map with directions.
No. Home addresses resolve only after the owner approves your request in the MZUZI app, for a stated purpose and a limited time. Verification endpoints answer yes or no without revealing anything else.
Successful data calls with a live key. Status, usage and reference endpoints, test keys, refused calls and our own server errors are free. Bulk exports count as one call per 1,000 rows.
By default calls stop with a clear error until the next period. You can turn on overage in billing to keep working and pay per 1,000 calls.
Yes, on Enterprise and partnership plans, together with OAuth clients, IP allowlists, audit exports and named officer accounts.
Free for 30 days. Test keys forever. No card needed.