Skip to main content

Overview

Retrieve detailed information about a specific delivery using either its id (UUID) or trackingId.
Required permission: delivery:read

Endpoint

GET /api/deliveries/get

Request

Headers

X-API-Key
string
required
Your Chidori API key

Query parameters

Provide either id OR trackingId:
id
string
The unique delivery ID (UUID)
trackingId
string
The human-readable tracking ID (e.g., CHI-ABC123)

Response

Success response

status
boolean
Always true for successful requests
data
object
Complete delivery object with all public fieldsSee the Field Reference for detailed descriptions of all fields.Key fields include:
  • Core identifiers (id, trackingId, userId, driverId)
  • Status and type (deliveryStatus, deliveryType)
  • Location data (pickupAddress, pickupLatLong, destinationAddress, destinationLatLong)
  • Route information (distance, duration, geometry)
  • Contact info (receiverPhoneNumber, senderPhoneNumber)
  • Payment details (deliveryAmount, isPaid, transactionId)
  • Timing (scheduledTime, pickedUpAt, arrivedTime, createdAt, updatedAt)
  • Bulk info (bulk, order)

Examples

curl "https://api.chidori.africa/enterprise-service/api/deliveries/get?id=abc123-def456-ghi789" \
  -H "X-API-Key: sk_live_xxx.yyy"
{
  "status": true,
  "data": {
    "id": "abc123-def456-ghi789",
    "userId": "user-uuid-123",
    "driverId": "driver-uuid-456",
    "trackingId": "CHI-ABC123",
    "deliveryStatus": "PICKED-UP",
    "deliveryName": "Office Supplies",
    "deliveryType": "SendDelivery",
    "deliveryAmount": 2500,
    "pickupAddress": "123 Main Street, Lagos",
    "pickupLatLong": {
      "lat": 6.5244,
      "lon": 3.3792
    },
    "destinationAddress": "456 Business Ave, Lagos",
    "destinationLatLong": {
      "lat": 6.4654,
      "lon": 3.4064
    },
    "route": {
      "distance": 5200,
      "duration": 900,
      "geometry": "encoded_polyline_string"
    },
    "receiverPhoneNumber": "2348012345678",
    "senderPhoneNumber": "2348087654321",
    "additionalNotes": "Please call before delivery",
    "packageImage": [],
    "isPaid": true,
    "transactionId": "txn_abc123",
    "hasArrived": false,
    "scheduledTime": null,
    "pickedUpAt": "2025-01-15T10:30:00.000Z",
    "arrivedAtPickupLocationTime": "2025-01-15T10:15:00.000Z",
    "arrivedTime": null,
    "bulk": null,
    "order": null,
    "orderCode": null,
    "createdAt": "2025-01-15T10:00:00.000Z",
    "updatedAt": "2025-01-15T10:45:00.000Z"
  }
}

Delivery statuses

StatusDescription
PENDINGDelivery created, awaiting payment or driver assignment
STARTEDDriver has accepted and started the delivery
PICKED-UPDriver has picked up the package
COMPLETEDPackage successfully delivered
CANCELLEDDelivery was cancelled

Use cases

Use the trackingId to let customers check their delivery status:
async function getDeliveryStatus(trackingId) {
  const response = await fetch(
    `https://api.chidori.africa/enterprise-service/api/deliveries/get?trackingId=${trackingId}`,
    { headers: { 'X-API-Key': apiKey } }
  );
  const { data } = await response.json();
  return {
    status: data.deliveryStatus,
    driver: data.driver,
    estimatedTime: data.estimatedDeliveryTime
  };
}
Use the delivery id to sync with your internal order system:
async function syncDeliveryStatus(deliveryId) {
  const response = await fetch(
    `https://api.chidori.africa/enterprise-service/api/deliveries/get?id=${deliveryId}`,
    { headers: { 'X-API-Key': apiKey } }
  );
  const { data } = await response.json();
  
  await updateOrderInDatabase({
    deliveryStatus: data.deliveryStatus,
    isPaid: data.isPaid,
    driverAssigned: !!data.driver
  });
}

Next steps

List Deliveries

Get all your deliveries with filtering

Real-time Tracking

Track deliveries in real-time via WebSocket