Carriers
APC Overnight Tracking API & MCP
Query live APC Overnight (apcovernight) package status and scan history in a single synchronous GET request or MCP tool call.
Overview & Quick Facts
| Property | Value |
|---|---|
Carrier slug (?carrier=) | apcovernight |
| Brand aliases | APC Overnight, APC, APC Choice, apc-overnight.com |
| Category | UK next-day parcel network |
| Single-package REST endpoint | GET https://api.lastscanned.com/v1/track/{trackingNumber} |
| Batch REST endpoint | GET https://api.lastscanned.com/v1/track?numbers=2026030501234560000123,2026030501234560000123 |
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) | `/^20[12]\d(0[1-9] | 1[0-2])(0[1-9] | [12]\d |
The 22-digit waybill (booking date 20YYMMDD plus a 14-digit consignment) is shared with other carriers, so it is only a loose fallback: pass ?carrier=apcovernight.
Synchronous GET Request & Normalized JSON Response
curl -s "https://api.lastscanned.com/v1/track/2022012001915490000159?carrier=apcovernight" \
-H "Authorization: Bearer $LASTSCANNED_API_KEY"{
"carrier": "apcovernight",
"trackingNumber": "2022012001915490000159",
"status": "delivered",
"statusDescription": "Delivered",
"service": "NC16 (Next Business Day Non-Conveyable Parcel)",
"deliveredAt": "2026-03-09T10:34:00Z",
"deliveredAtLocal": "2026-03-09T10:34:00",
"signedBy": null,
"destination": null,
"events": [
{
"timestamp": "2026-03-09T10:34:00Z",
"localTime": "2026-03-09T10:34:00",
"status": "delivered",
"description": "Delivered",
"location": null,
"code": null
},
{
"timestamp": "2026-03-09T09:07:00Z",
"localTime": "2026-03-09T09:07:00",
"status": "out_for_delivery",
"description": "Out for delivery",
"location": null,
"code": null
},
{
"timestamp": "2026-03-06T07:24:00Z",
"localTime": "2026-03-06T07:24:00",
"status": "in_transit",
"description": "At delivery depot",
"location": null,
"code": null
},
{
"timestamp": "2026-03-06T00:31:00Z",
"localTime": "2026-03-06T00:31:00",
"status": "in_transit",
"description": "At Hub",
"location": null,
"code": null
},
{
"timestamp": "2026-03-05T17:58:00Z",
"localTime": "2026-03-05T17:58:00",
"status": "in_transit",
"description": "At sending depot",
"location": null,
"code": null
}
]
}Notes
- Route: the server-rendered APC Choice "Pinpoint" page (
track-parcel?id=); the parcel journey and delivery summary rows are read. No account; the postcode only unlocks proof of delivery. - Several items: a consignment can have several parcels. An event identical across items is shown once; an item's own events carry "(item N)".
- Status:
Carded(calling card left) andHeld At Depotareexception;Delivery Rearranged By Customeris in transit. - Time zone: times are UK clock time (
Europe/London).
Related Resources
- Regex & check digits: Tracking number formats & auto-detection
AnserX Tracking API & MCP
Track AnserX (China cross-border) parcels via synchronous REST GET or MCP. Normalized JSON status and scan history, no carrier credentials required.
Apple Express Tracking API & MCP
Track Apple Express (Canada) parcels via synchronous REST GET or MCP. Normalized JSON status and scan history, no carrier credentials required.