> ## Documentation Index
> Fetch the complete documentation index at: https://run-deliverys.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get order

> Fetch a single order by id, including shipment details and timeline.

Fetch a single order by id. The response includes shipment details plus a computed `timeline`.

Requires scope: `orders:read`

## Headers

<ParamField header="Authorization" type="string" required>
  Bearer API key (`Bearer <api_key>`).
</ParamField>

## Path parameters

<ParamField path="id" type="string" required>
  MongoDB document id of the order (not the `order_id` display code).
</ParamField>

## Response

<ResponseField name="_id" type="string">
  Internal order id (use this in path params).
</ResponseField>

<ResponseField name="order_id" type="string">
  Human-readable order code.
</ResponseField>

<ResponseField name="status" type="string">
  Current [shipment status](/concepts/shipment-statuses).
</ResponseField>

<ResponseField name="price" type="number">
  Charged price.
</ResponseField>

<ResponseField name="distance" type="number">
  Distance in km.
</ResponseField>

<ResponseField name="pickup_locations" type="array">
  Pickup / dropoff / item details for each stop.
</ResponseField>

<ResponseField name="timeline" type="object">
  Computed lifecycle milestones (`currentStep` + `events`).
</ResponseField>

<ResponseField name="cancel" type="boolean">
  Whether the order was cancelled.
</ResponseField>

Unknown or cross-business ids return `404`. You can [cancel](/orders/cancel-order) while the order is still early in the lifecycle.

<RequestExample>
  ```bash cURL theme={null}
  curl "$RUN_BASE_URL/business/orders/6a7c75f801df3fbb7fad0c58" \
    -H "Authorization: Bearer $RUN_API_KEY"
  ```

  ```javascript Node.js theme={null}
  const res = await fetch(
    `${process.env.RUN_BASE_URL}/business/orders/6a7c75f801df3fbb7fad0c58`,
    {
      headers: {
        Authorization: `Bearer ${process.env.RUN_API_KEY}`,
      },
    },
  );
  const order = await res.json();
  ```

  ```python Python theme={null}
  import os
  import requests

  order_id = "6a7c75f801df3fbb7fad0c58"
  res = requests.get(
      f"{os.environ['RUN_BASE_URL']}/business/orders/{order_id}",
      headers={"Authorization": f"Bearer {os.environ['RUN_API_KEY']}"},
  )
  order = res.json()
  ```

  ```php PHP theme={null}
  <?php
  $orderId = '6a7c75f801df3fbb7fad0c58';
  $ch = curl_init(getenv('RUN_BASE_URL') . "/business/orders/{$orderId}");
  curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
      'Authorization: Bearer ' . getenv('RUN_API_KEY'),
    ],
  ]);
  $order = json_decode(curl_exec($ch), true);
  curl_close($ch);
  ```

  ```go Go theme={null}
  package main

  import (
    "fmt"
    "io"
    "net/http"
    "os"
  )

  func main() {
    req, _ := http.NewRequest(
      "GET",
      os.Getenv("RUN_BASE_URL")+"/business/orders/6a7c75f801df3fbb7fad0c58",
      nil,
    )
    req.Header.Set("Authorization", "Bearer "+os.Getenv("RUN_API_KEY"))
    res, err := http.DefaultClient.Do(req)
    if err != nil {
      panic(err)
    }
    defer res.Body.Close()
    body, _ := io.ReadAll(res.Body)
    fmt.Println(string(body))
  }
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "_id": "6a7c75f801df3fbb7fad0c58",
    "order_id": "RUN-A1B2C3D4",
    "status": "PICKED_UP",
    "price": 5300,
    "distance": 7.54,
    "payment_mode": "WALLET",
    "cancel": false,
    "sender_name": "Acme Stores",
    "sender_phone": "+2348011111111",
    "pickup_locations": [
      {
        "pickup": {
          "address": "12 Admiralty Way, Lekki, Lagos",
          "state": "Lagos",
          "contact_name": "Acme Stores",
          "contact_phone": "+2348011111111"
        },
        "dropoff": {
          "address": "15 Admiralty Way, Lekki, Lagos",
          "state": "Lagos",
          "recipient_name": "Adewale Johnson",
          "recipient_phone_number": "+2348022222222",
          "recipient_email": "adewale.johnson@example.com"
        },
        "item": {
          "name": "Shoes",
          "weight": 5,
          "quantity": 1,
          "category": "Fashion",
          "description": "Size 42",
          "value": 25000,
          "is_fragile": false
        },
        "status": "PICKED_UP"
      }
    ],
    "picked_at": "2026-08-12T11:40:00.000Z",
    "delivered_at": null,
    "createdAt": "2026-08-12T10:15:00.000Z",
    "updatedAt": "2026-08-12T11:40:00.000Z",
    "timeline": {
      "currentStep": "PICKED_UP",
      "events": [
        {
          "key": "BOOKED",
          "label": "Order placed",
          "at": "2026-08-12T10:15:00.000Z",
          "completed": true
        },
        {
          "key": "ACCEPTED",
          "label": "Rider confirmed",
          "status": "ACCEPTED",
          "at": "2026-08-12T10:30:00.000Z",
          "completed": true
        },
        {
          "key": "PICKED_UP",
          "label": "Package picked up",
          "status": "PICKED_UP",
          "at": "2026-08-12T11:40:00.000Z",
          "completed": true
        },
        {
          "key": "DELIVERED",
          "label": "Delivered",
          "status": "DELIVERED",
          "at": null,
          "completed": false
        }
      ]
    }
  }
  ```

  ```json 401 theme={null}
  {
    "statusCode": 401,
    "timestamp": "2026-08-12T15:18:51.396Z",
    "path": "/api/v2/business/orders/6a7c75f801df3fbb7fad0c58",
    "message": "Invalid API key"
  }
  ```

  ```json 403 theme={null}
  {
    "statusCode": 403,
    "timestamp": "2026-08-12T15:18:51.396Z",
    "path": "/api/v2/business/orders/6a7c75f801df3fbb7fad0c58",
    "message": "Insufficient API key scope"
  }
  ```

  ```json 404 theme={null}
  {
    "statusCode": 404,
    "timestamp": "2026-08-12T15:18:51.396Z",
    "path": "/api/v2/business/orders/6a7c75f801df3fbb7fad0c58",
    "message": "Order not found"
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.