Skip to content

Open data

Mukoko is not building to conceal. The shape of the knowledge graph — how many venues, where they are, how far verification has spread — is a commons, open to everyone with no account and no key. I am because we are.

The same snapshot (recomputed roughly every five minutes) is served three ways:

SurfaceWhereAudience
Pagekweli.mukoko.com/en/analyticsHumans — no sign-in
JSON APIGET https://kweli.mukoko.com/api/open/statsPrograms — anonymous, CORS-open (*), cached 5 min, rate-limited
MCPget_open_stats tool on https://kweli.mukoko.com/mcpAI agents — authentication: none
{
"totalVenues": 15316,
"byCountry": [{ "name": "Zimbabwe", "isoCode": "zw", "count": 2534 }, ...],
"topCities": [{ "city": "Harare", "count": ... }, ...],
"verifiedByTier": [{ "tier": 1, "label": "community", "count": ... }, ...],
"trust": {
"totalEntities": 12292,
"entitiesByTier": [{ "tier": 3, "label": "government", "count": 2 }, ...],
"totalVouches": 0,
"verificationEvents": 0
},
"generatedAt": "..."
}
  • verifiedByTier counts venues at their effective tier — the max of the place’s own tier and its owning entity’s tier, the same answer venue pages give.
  • trust is the verification commons: organizations in the graph, how many hold each tier, community vouches recorded, and events on the platform’s verification audit trail. As the verification ladder gets climbed, these numbers are the public proof.
Terminal window
curl https://kweli.mukoko.com/api/open/stats

No key, no origin restriction — the endpoint sends Access-Control-Allow-Origin: *, so browser apps on any domain can fetch it directly. Heavy consumers should respect the 5-minute cache (s-maxage=300); the numbers do not move faster than that.