Theyutes Logistics · Marketplaces
One basket. Many sellers. One ETA.
Multi-vendor marketplaces have a hard problem: buyer's cart has items from 4 sellers in 3 cities. Standard logistics APIs make you stitch the ETA, the invoice, and the tracking page yourself. We split the pickups, return the slowest leg as the buyer ETA, and webhook each seller independently.
What breaks today
Marketplaces, in three honest lines.
N pickups
Buyer wants one ETA. Your sellers are in three cities.
POST /api/v1/logistics/quote with an array of pickups + one dropoff. We return per-leg quotes plus a max(etaMinutes) you can put on the cart page as the buyer-facing promise.
Per-seller
Each vendor needs their own tracking.
Sellers can't see each other's shipments. Mint per-seller API tokens; webhooks scope to the seller's own shipments only. The buyer-facing tracking page joins them — the seller dashboards don't.
One invoice
Finance wants one shipping line, not forty.
Logistics costs roll up to the marketplace account per billing period. Per-seller breakdowns ship as a CSV export so you can charge sellers back inside your existing payouts pipeline.
What we built for marketplaces
Four primitives. One API.
Bulk quote across pickups.
Pass pickups: [...] and the orchestrator runs one parallel fan-out per pickup. Response carries per-leg quotes + a combinedEtaMinutes that's the slowest leg. The cart page renders one number.
Per-seller webhook scope.
Seller tokens get a sellerId claim. Webhooks fire only for shipments their pickup originated from. The marketplace account sees all of them on the platform webhook.
Live zone coverage.
GET /api/v1/logistics/zones lists every city we currently have rider supply in, with surge + supply + demand. Power your 'will we deliver to X?' check without hardcoding a coverage list.
Stacked-pickup pricing.
When two sellers ship from the same compound (mall, market, ghost-kitchen building), the orchestrator detects the shared pickup and waives the second base fare. Margin on the second leg improves automatically.
Sample call
The shortest path from your stack to a dispatched rider.
Zones — power your 'will we deliver?' check
bash
curl https://theyutes.com/api/v1/logistics/zones \
-H 'Authorization: Bearer tyk_••••••••••••••••••••••••••••••••'Response · 200 OK
json
{
"data": {
"zones": [
{
"city": "Lagos",
"country": "NG",
"availableRiders": 47,
"pendingShipments": 12,
"surgeMultiplier": 1.32,
"coverage": "live"
},
{
"city": "Abuja",
"country": "NG",
"availableRiders": 18,
"pendingShipments": 3,
"surgeMultiplier": 1.0,
"coverage": "live"
},
{
"city": "Ibadan",
"country": "NG",
"availableRiders": 6,
"pendingShipments": 1,
"surgeMultiplier": 1.0,
"coverage": "live"
}
],
"generatedAt": "2026-05-29T07:33:21.000Z"
}
}Render coverage maps and gate seller signup by city using the live zones endpoint. coverage="live" means ≥5 active riders in the city right now; surgeMultiplier>1.0 means demand is outpacing supply and you may want to surface a 'high demand' badge before checkout.
Pilot partners — coming soon
Marketplaces partner
Launching Q3 2026
Marketplaces partner
Other verticals
Same orchestrator. Different defaults.
Restaurants
Predictive dispatch so the rider arrives the moment the food is ready.
See restaurants
Pharmacy
Cold-chain routing, signed delivery, and a ten-minute SLA on rescue prescriptions.
See pharmacy
Electronics
Insured, signed-for delivery for phones, laptops, and high-value parcels.
See electronics
ERPs
Webhook + audit-log surface that drops every shipment straight into your GL.
See erps
Questions
What marketplaces integrators ask first.
How do per-seller webhooks work?
Mint API tokens at /merchant/dashboard/developers under each seller's account. Tokens carry a sellerId claim; webhooks scope to shipments where shipment.merchantReference's seller equals the token's sellerId. The marketplace-level webhook still sees everything for unified ops.
Can the orchestrator pick the same rider for two sellers in one building?
Yes. When the rider already has an active leg from a pickup within ~50m, we stack the second pickup onto their route automatically. Both shipments end up with the same driverId and the second waives its base fare.
What's the largest order you've routed?
Internally we route Yutes baskets with up to 12 sellers in one buyer order. The quote endpoint accepts an array of pickups in a single call and returns leg-by-leg quotes. There's no documented ceiling — we'd love to be your stress test.
Built for marketplaces. Ready in five minutes.
Mint a key, run one sample call, ship your first parcel.