TLIG MOVE Shipping API v1
Create shipments, price deliveries, check your wallet and track parcels — the same engine that powers the TLIG Move app. Orders you create enter the live dispatch queue and are picked up by real riders.
https://tligmove.com/api/v1Quickstart
- Create a developer account at the developer portal.
- Create an API key (shown once) and fund your wallet.
- Price a shipment with
/quote, then create it with/orders. - Track with
/track/{reference-or-pickupCode}. The pickup code is revealed once a rider accepts.
Authentication
All endpoints except /ping require a secret key in the Authorization header. Keys are created in the portal, stored hashed, and can be revoked at any time.
Authorization: Bearer tlig_sk_xxxxxxxx...
Treat keys like passwords. If one leaks, revoke it in the portal immediately.
POST /quote
Live shipping cost using exact platform rates (₦300/km + 3.5% service fee). No wallet required.
| Field | Type | Notes |
|---|---|---|
deliveryType | string | FOOT · BIKE · CAR · VAN · INTERSTATE (default BIKE) |
distanceKm | number | or provide coordinates below (min 1 km billed) |
pickup.lat/lng | number | Nested form — or flat pickupLat/pickupLng |
dropoff.lat/lng | number | Nested form — or flat dropoffLat/dropoffLng |
POST /orders
Creates a real shipment and debits your wallet atomically. Status starts at PENDING; when a rider accepts, a 6-digit pickupCode is issued for hand-off confirmation.
| Field | Required | Notes |
|---|---|---|
category | ✔ | e.g. PARCEL · FOOD · GROCERY · DOCUMENTS (see /categories) |
deliveryType | ✔ | FOOT · BIKE · CAR · VAN · INTERSTATE |
pickupAddress / pickupLat / pickupLng | ✔ | Flat or nested (pickup:{address,lat,lng}) |
dropoffAddress / dropoffLat / dropoffLng | ✔ | Flat or nested |
receiverName / receiverPhone | ✔ | Who receives the parcel |
senderName / senderPhone | — | Defaults to your company name |
description / weightKg / distanceKm | — | distanceKm overrides computed distance |
# 201 Created { "ok": true, "order": { "reference": "TLG-DBBAF259", // save this — used to track & fetch "pickupCode": null, // appears after rider accepts "status": "PENDING", "total": 1124.01, "etaMinutes": 11, "walletBalanceAfter": 48875.99 } } # 402 Payment Required (wallet too low) {"error":{"code":"insufficient_balance","message":"Wallet balance too low…"}}
Status flow: PENDING → ACCEPTED → PICKED_UP → IN_TRANSIT → DELIVERED (or CANCELLED).
GET /orders/{reference}
Full current state of one of your orders. Only orders created by your own key's account are visible.
curl https://tligmove.com/api/v1/orders/TLG-DBBAF259 \
-H "Authorization: Bearer tlig_sk_..."
GET /orders
Your recent orders, newest first. Query params: ?limit= (max 50), ?status=PENDING|ACCEPTED|PICKED_UP|IN_TRANSIT|DELIVERED|CANCELLED.
curl "https://tligmove.com/api/v1/orders?limit=20&status=ACCEPTED" \
-H "Authorization: Bearer tlig_sk_..."
GET /track/{code}
Public endpoint (no key needed). Accepts either the full reference or the customer's 6-digit pickupCode — the same code printed on the tracking page. Returns status, rider first name and location history.
GET /balance
Returns your current API wallet. Also available: GET /categories (valid category + deliveryType values) and GET /ping (uptime probe).
Errors
Every error has the same shape: {"error":{"code":"...","message":"..."}}
| HTTP | code | Meaning |
|---|---|---|
| 401 | unauthorized | Missing, malformed, revoked or unknown key |
| 402 | insufficient_balance | Wallet too low for the computed total |
| 404 | not_found | Unknown order/reference/code |
| 422 | missing_field / missing_distance / invalid_category … | Fix the request and retry |
| 429 | rate_limited | Slow down — see limits below |
| 500 | server_error | Unexpected — retry with backoff, contact support if persistent |
Rate limits
| Scope | Limit |
|---|---|
| All keyed endpoints | 120 requests / 5 min / key |
| Order creation | 30 requests / 5 min / key |
Questions or top-ups: info@tligmove.com · Built with 💚 by TLIG Move, Nigeria.