Theyutes Logistics · v1 live
One API. Every Nigerian carrier.
Quote, dispatch, and track shipments across Uber Direct, Fez Delivery, inDrive, DHL, and your own fleet — with auto-failover when one provider rejects.
Request
bash
curl -X POST https://theyutes.com/api/v1/logistics/quote \
-H 'Authorization: Bearer tyk_••••••••••••••••••••••••••••••••' \
-H 'Content-Type: application/json' \
-d '{
"pickup": { "lat": 6.5244, "lng": 3.3792,
"address": "12 Adeola Odeku, Victoria Island" },
"dropoff": { "lat": 6.4396, "lng": 3.4860,
"address": "8 Admiralty Way, Lekki Phase 1" },
"parcels": [{ "weightKg": 2, "valueKobo": 1500000,
"category": "electronics" }]
}'Response · 200 OK
json
{
"data": {
"quotes": [
{
"carrier": "uber",
"carrierName": "Uber Direct",
"priceKobo": 285000,
"etaMinutes": 38,
"quoteId": "qte_01HXR…"
},
{
"carrier": "fez",
"carrierName": "Fez Delivery",
"priceKobo": 240000,
"etaMinutes": 52,
"quoteId": "qte_01HXR…"
},
{
"carrier": "indrive",
"carrierName": "inDrive",
"priceKobo": 215000,
"etaMinutes": 61,
"quoteId": "qte_01HXR…"
}
],
"failures": [],
"excluded": []
}
}Why this exists
The Nigerian last-mile, in three honest lines.
5 → 1
Five carriers, five integrations, five ways to fail.
Each provider has its own auth, its own status codes, its own webhook shape. We replace them with one HTTP surface that speaks every dialect.
3% downtime
When a provider's API goes down, your checkout goes down.
If the winning carrier rejects the booking, we silently walk down the quote list and book the next-best. Your customer never sees the failure.
Per-parcel
Cold chain. Signed delivery. Bulky cargo.
Every quote runs parcel-aware filtering — carriers that can't handle the temperature, value, or dimensions drop out before they ever see the request.
Built for your stack
Five industries, one orchestrator.
The same endpoint. The carriers, filters, and proof-of-delivery defaults change based on what you ship.
Electronics
Phones, laptops, and small appliances need signed delivery and insurance — not a courier who leaves it at the gate.
- Signed-delivery enforced by default
- Auto-insured up to declared value
Pharmacy
A patient's prescription can't ride with a stranger and can't sit in the sun for three hours.
- Cold-chain ready (chilled + frozen tiers)
- Photo proof + recipient signature
Restaurants
Forty-five minutes from kitchen to doorstep, or it's cold food and a refund.
- Sub-45-min carrier pool
- Auto-failover on queue overflow
Marketplaces
Sellers want one ETA at checkout, finance wants one invoice, and ops wants one tracking screen.
- Bulk quote across many dropoffs
- Webhook every state change per seller
ERPs
Your back office wants every dispatch as a GL entry, not a portal login your accountant has to remember.
- Signed webhooks land in your ERP
- Audit log on every shipment mutation
Anything else
Custom rules, custom carriers, custom proof. We expose the primitives — you write the policy.
- Bring your own carrier credentials
- Per-merchant assignment rules
How it works
Three calls. One integration.
01
Quote every carrier in parallel.
POST /api/v1/logistics/quote with pickup, dropoff, and parcels. We fan out to every enabled carrier and return a sorted list with price, ETA, and a quoteId — usually inside 800ms.
POST /api/v1/logistics/quote
02
Dispatch the winner.
POST /api/v1/logistics/dispatch with the quoteId. Auto-pick by cheapest or fastest, or pass your own preference. If the booking fails, we try the next-best — your call doesn't return an error.
POST /api/v1/logistics/dispatch
03
Listen to webhooks.
shipment.created, shipment.assigned, shipment.picked_up, shipment.in_transit, shipment.delivered, shipment.exception. HMAC-SHA256 signed, 6-step retry curve.
POST {your-webhook-url}
Idempotency keys
Retry safely — duplicate dispatches with the same key return the original shipment, never a new one.
Auto-failover
Every dispatch records the carrier chain we tried. You see exactly why the winning carrier won.
Lagos-first SLAs
Quotes return in <1s p95. Bookings confirm in <3s p95. Webhooks fire within 2s of state change.
Try it
Quote a sample shipment.
Type a route. Get a synthetic quote across three carriers. Sign up to run this against the real API with your own pickup addresses.
Sample output — sign up to run real quotes
Pick a pickup + dropoff address, then click Quote to see how the orchestrator ranks carriers.
Pricing
Start free. Pay when you ship.
You pay the carrier's published rate plus our markup. No per-API-call charges. No setup fees.
Starter
Free
Up to 50 shipments/month
- All connected carriers
- Standard markup (10%)
- Webhooks + retry queue
- Community support
Most popular
Growth
₦25,000
/ month · up to 1,000 shipments
- Reduced markup (6%)
- Priority support, 4h response
- Custom assignment rules
- Signed-delivery + insurance
Scale
Custom
From 2,000 shipments/month
- Bring your own carrier credentials
- 99.9% uptime SLA
- Dedicated CSM
- Volume-based pricing
Launch partners — coming soon
Pharmacy chain
ERP integrator
Electronics retailer
Marketplace
Questions
Things people ask before they integrate.
Which carriers do you support today?
Uber Direct, Fez Delivery, and inDrive are live in Lagos, Abuja, and Port Harcourt. DHL, UPS, and Aramex are live for international parcels. Custom and in-house carriers (your own riders) can be added via the dashboard at any time.
What's the auto-failover behavior?
We quote in parallel and rank by total minutes (pickup ETA + transit). On dispatch, we attempt the winning carrier first. If the booking fails — provider downtime, no riders available, parcel rejected — we walk down the list and book the next-best. The failoverAttemptsJson field on the resulting Shipment records every carrier we tried and why.
Do you support cold chain?
Parcels with temperature: "chilled" or "frozen" are filtered at quote time — carriers that can't handle the temperature are excluded with a per-carrier reason. Cold-chain-certified carriers are coming online through 2026; in the meantime, chilled parcels route to our in-house network plus signed-delivery-required modes on partner fleets.
Can I bring my own carrier credentials?
Yes — Scale-tier customers can attach their own Uber Direct, DHL, or Aramex accounts. Quotes pulled against your credentials hit your contracted rate card directly. Theyutes keeps the orchestration, retry queue, and audit log; you keep the carrier relationship.
What's the pricing model — markup or subscription?
Both, with a free tier. Starter is free up to 50 shipments/month with a 10% markup over the carrier's rate. Growth is ₦25,000/month, 6% markup, up to 1,000 shipments. Scale is volume-priced with reduced or zero markup if you bring your own credentials.
Where's your status page?
status.theyutes.com (coming soon). Until then, the in-dashboard /merchant/dashboard/developers panel shows live 24-hour delivery success rates, per-carrier health, and webhook retry queues — same data we use internally.
Ready to ship?
Mint a key in sixty seconds. Hit the API before your coffee gets cold.