> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crbtrack.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Batch Tracking

> Get tracking information for multiple parcels at once

Retrieves tracking information for up to 100 parcels in a single request. More efficient than making individual requests.

## Request Body

<ParamField body="trackingNumbers" type="array" required>
  List of tracking numbers to look up (1-100 items).
</ParamField>

<ParamField body="includeHistory" type="boolean" default="false">
  Set to `true` to include tracking history for each parcel.
</ParamField>

## Response

<ResponseField name="success" type="boolean">
  Whether the request succeeded
</ResponseField>

<ResponseField name="results" type="array">
  Tracking information for found parcels

  <Expandable title="Result fields">
    <ResponseField name="trackingNumber" type="string">
      The tracking number
    </ResponseField>

    <ResponseField name="status" type="string">
      Current status code
    </ResponseField>

    <ResponseField name="statusName" type="string">
      Human-readable status
    </ResponseField>

    <ResponseField name="history" type="array">
      Tracking events (if `includeHistory=true`)
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="notFound" type="array">
  Tracking numbers that were not found in the system
</ResponseField>

<RequestExample>
  ```json Example Request theme={null}
  {
    "trackingNumbers": [
      "CBECUSD123456789",
      "CBECUSD123456790",
      "CBECUSD123456791",
      "INVALID123456789"
    ],
    "includeHistory": false
  }
  ```
</RequestExample>

<ResponseExample>
  ```json 200 - Success theme={null}
  {
    "success": true,
    "results": [
      {
        "trackingNumber": "CBECUSD123456789",
        "status": "IN_TRANSIT",
        "statusName": "In Transit",
        "estimatedDelivery": "2024-12-28T18:00:00Z"
      },
      {
        "trackingNumber": "CBECUSD123456790",
        "status": "DELIVERED",
        "statusName": "Delivered",
        "deliveredAt": "2024-12-26T14:30:00Z"
      },
      {
        "trackingNumber": "CBECUSD123456791",
        "status": "OUT_FOR_DELIVERY",
        "statusName": "Out for Delivery"
      }
    ],
    "notFound": ["INVALID123456789"]
  }
  ```
</ResponseExample>

## Use Cases

<CardGroup cols={2}>
  <Card title="Dashboard Updates" icon="chart-line">
    Refresh status for all parcels on a customer's order page
  </Card>

  <Card title="Manifest Tracking" icon="plane">
    Check status of all parcels in a shipment
  </Card>

  <Card title="Bulk Operations" icon="layer-group">
    Monitor large batches of orders
  </Card>

  <Card title="Scheduled Syncs" icon="clock">
    Periodic sync of parcel statuses to your database
  </Card>
</CardGroup>

## Rate Limits

Batch tracking counts as a single request for rate limiting, but has a higher weight:

| Request Size   | Rate Limit Impact |
| -------------- | ----------------- |
| 1-10 parcels   | 1 request         |
| 11-50 parcels  | 2 requests        |
| 51-100 parcels | 5 requests        |

<Tip>
  For high-volume tracking, consider setting up [webhooks](/guides/webhooks) to receive real-time updates instead of polling.
</Tip>
