# Transcorp Tracking API & MCP

URL: https://docs.lastscanned.com/carriers/transcorp

Query live **Transcorp** (`transcorp`) package status and scan history in a single synchronous `GET` request or MCP tool call. Pass `?carrier=transcorp` (or the MCP `carrier` argument) so the lookup goes to Transcorp.

## Overview & Quick Facts

| Property | Value |
|---|---|
| **Carrier slug (`?carrier=`)** | `transcorp` |
| **Brand aliases** | Transcorp, Transcorp International, Elite, app.elite-co.com |
| **Category** | Regional (last-mile courier, UAE / Saudi Arabia / Qatar / Bahrain / Kuwait / Oman) |
| **Single-package REST endpoint** | `GET https://api.lastscanned.com/v1/track/{trackingNumber}` |
| **Batch REST endpoint** | `GET https://api.lastscanned.com/v1/track?numbers=1700133700,...` |
| **MCP server (`https://mcp.lastscanned.com`)** | `track_package`, `track_packages`, `list_carriers` |
| **Authentication & pricing** | `Authorization: Bearer lsk_live_...` · 1 free keyless lookup/day per IP |

## Tracking Number Formats & Auto-Detection

| Pass | Rule / Regex | Check Digit | Examples |
|---|---|---|---|
| **Pass 1 (`matches`)** | none | none | none |
| **Pass 2 (`mayMatch`)** | none | none | none |

Ten-digit airwaybills are a shape other carriers also use, so pass `?carrier=transcorp`. Accepted shape: `^\d{10}$`.

## Synchronous `GET` Request & Normalized JSON Response

```bash
curl -s "https://api.lastscanned.com/v1/track/1700133700?carrier=transcorp" \
  -H "Authorization: Bearer $LASTSCANNED_API_KEY"
```

```json
{
  "carrier": "transcorp",
  "trackingNumber": "1700133700",
  "status": "delivered",
  "statusDescription": "Delivered",
  "service": null,
  "deliveredAt": "2026-03-12T05:36:33Z",
  "deliveredAtLocal": "2026-03-12T09:36:33",
  "signedBy": "A. Rahman",
  "destination": {
    "city": null,
    "state": null,
    "country": "AE"
  },
  "events": [
    {
      "timestamp": "2026-03-12T05:36:33Z",
      "localTime": "2026-03-12T09:36:33",
      "status": "delivered",
      "description": "Delivered",
      "location": null,
      "code": "DELIVERED"
    },
    {
      "timestamp": "2026-03-12T04:05:25Z",
      "localTime": "2026-03-12T08:05:25",
      "status": "out_for_delivery",
      "description": "Out For Delivery",
      "location": null,
      "code": "OUT_FOR_DELIVERY"
    },
    {
      "timestamp": "2026-03-11T08:00:00Z",
      "localTime": "2026-03-11T12:00:00",
      "status": "in_transit",
      "description": "CUSTOMS CLEARANCE COMPLETED",
      "location": null,
      "code": "CUSTOMS_CLEARANCE_COMPLETED"
    },
    {
      "timestamp": "2026-03-08T13:32:53Z",
      "localTime": "2026-03-08T17:32:53",
      "status": "in_transit",
      "description": "Departed Shipper Premises",
      "location": null,
      "code": "DEPARTED_SHIPPER_PREMISES"
    }
  ]
}
```

## Notes

- **How it asks**: the tracking page is a Next.js app; with `RSC: 1` it streams the shipment as JSON inside the flight payload, which the adapter picks out. No browser needed.
- **Time zone**: the operating country sets the zone (UAE and Oman +04:00; Saudi Arabia, Qatar, Bahrain, Kuwait +03:00; none observe DST). The platform's `timestamp` is used as UTC.
- **Codes**: `code` is the platform's event type (`DELIVERED`, `PICKED_UP`, `CONSIGNEE_UNREACHABLE`, …); an unreachable consignee reports `exception`.

## Related Resources

- **Regex & check digits**: [Tracking number formats & auto-detection](/formats)