Skip to content
JumlaJumla

JumlaJumla

Moving Tanzania

Fleet API · v1

Put our ridersinside your app.

One clean integration moves food, parcels and stock for your business — quotes, dispatch, live tracking and proof of delivery against the fleet that already moves a city.

Base URL

https://mapi.jumlajumla.com/api/v1/fleet

Header pair auth

X-Api-Vendor-Key + X-Api-Vendor-Secret tied to a vendor account — or a Bearer token built from the pair.

120 requests / minute

Per vendor, every endpoint. A 429 means back off, not gone.

Signed webhooks

Lifecycle events push to you — configure and verify with your secret.

200 Success401 Invalid vendor credentials422 Validation error429 Rate limit — 120 req/min
fleet-api.ts
const res = await fetch(`${BASE}/quote`, {
  method: "POST",
  headers: {
    "X-Api-Vendor-Key": JJ_KEY,
    "X-Api-Vendor-Secret": JJ_SECRET,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    pickup:  { lat: -6.7924, lng: 39.2083 },
    dropoff: { lat: -6.7452, lng: 39.2746 },
    parcel_type: "parcel",
  }),
});

const { data } = await res.json();
Response200 OK
{
  "status": true,
  "message": "Quote calculated.",
  "data": {
    "price": 4500,
    "currency": "TZS",
    "distance_km": 4.8,
    "eta_minutes": 12
  }
}
Why businesses plug in

Built API-first for scrappy teams.

Quote before you commit

Road-accurate distance, duration and ETA from our routing engine — price with confidence, not guesses.

One dispatch pool

Your jobs ride the same fleet behind Msosi, Huduma and Jumla Shop. Utilisation you couldn't build alone.

Live tracking

Rider position, status transitions and ETAs streamed while the delivery unfolds — no polling hacks.

Proof of delivery

Delivered is delivered: signed webhooks with timestamps, rider identity and delivery evidence.

Endpoint reference

Every path, spelled out.

Account

GET
/account

Vendor account profile and delivery configuration

GET
/account/revenue

Revenue reporting tied to your vendor account

Quotes & serviceability

POST
/quote

Distance, duration and ETA before an order is placed

GET
/serviceable

Whether pickup and drop-off points are in live zones

GET
/parcel-types

Parcel categories available for your vendor account

Deliveries

POST
/deliveries

Create a delivery job with pickup, drop-off, parcel and contacts

GET
/deliveries

List and filter your deliveries

GET
/deliveries/{id}

Full object for one delivery

GET
/deliveries/{id}/tracking

Live rider position and status transitions

GET
/deliveries/{id}/eta

Real-time ETA while in transit

POST
/deliveries/{id}/cancel

Cancel at any stage per the lifecycle rules

Zones

GET
/zones

Delivery zones and shop coverage

GET
/zones/check

Serviceability check for a specific route

GET
/zones/shops

Shops covered by each zone

Routing engine

GET
/routing/route

Point-to-point route geometry

POST
/routing/matrix

Travel-time matrix across many points

POST
/routing/trip

Multi-stop trip optimisation

GET
/routing/nearest

Nearest-matching answers from the road graph

Webhooks

GET
/webhooks/config

Read your webhook configuration

PUT
/webhooks/config

Set endpoint URL and webhook secret

POST
/webhooks/test

Fire a signed test event at your endpoint

Delivery lifecycle

new

Created, awaiting assignment

accepted

Driver claimed the job

ready

Origin ready for pickup

on_a_way

En route to destination

delivered

Complete, with proof

canceled

Possible at any stage

1 · Tell us about your flow

Volumes, parcel types, areas and hours. We map you to the right vendor profile.

2 · Get credentials

A vendor account with its key, secret and revenue-share terms — usually within days.

3 · Ship with the sandbox

Integrate against live zones with test events, then flip to production dispatch.

Questions while you build? The same team running the fleet will answer them — this API is not outsourced.

Talk to the API team