Carriers

ICS Courier Tracking API & MCP

Query live ICS Courier (icscourier) package status and scan history in a single synchronous GET request or MCP tool call. lastscanned auto-detects ICS numbers (14 characters followed by the recipient's postal code).

Overview & Quick Facts

PropertyValue
Carrier slug (?carrier=)icscourier
Brand aliasesICS Courier, ICS, Intelcom-style regional courier, icscourier.ca
CategoryCanadian regional courier
Single-package REST endpointGET https://api.lastscanned.com/v1/track/{trackingNumber}
Batch REST endpointGET https://api.lastscanned.com/v1/track?numbers=AB1...,AB1...
MCP server (https://mcp.lastscanned.com)track_package, track_packages, list_carriers
Authentication & pricingAuthorization: Bearer lsk_live_... · 1 free keyless lookup/day per IP

Tracking Number Formats & Auto-Detection

PassRule / RegexCheck DigitExamples
Pass 1 (matches)/^[A-Z]{2}\d[A-Z0-9]{11}[A-Z]\d[A-Z]\d[A-Z]\d$/noneAB1C2DE3FGH4JKM5N6P7
Pass 2 (mayMatch)nonenonenone

The last six characters are the recipient's Canadian postal code, which is what keeps the shape specific to ICS. Pass ?carrier=icscourier for any number that does not fit.

Synchronous GET Request & Normalized JSON Response

curl -s "https://api.lastscanned.com/v1/track/AB1C2DE3FGH4JKM5N6P7" \
  -H "Authorization: Bearer $LASTSCANNED_API_KEY"
{
  "carrier": "icscourier",
  "trackingNumber": "AB1C2DE3FGH4JKM5N6P7",
  "status": "delivered",
  "statusDescription": "Delivered at: JANE DOE 1 MAIN ST TORONTO ON M5V 2T6",
  "service": null,
  "deliveredAt": "2026-03-10T18:12:43Z",
  "deliveredAtLocal": "2026-03-10T13:12:43",
  "signedBy": null,
  "destination": null,
  "events": [
    {
      "timestamp": "2026-03-10T18:12:43Z",
      "localTime": "2026-03-10T13:12:43",
      "status": "delivered",
      "description": "Delivered at: JANE DOE 1 MAIN ST TORONTO ON M5V 2T6",
      "location": null,
      "code": null
    },
    {
      "timestamp": null,
      "localTime": "2026-03-10T07:22:23",
      "status": "out_for_delivery",
      "description": "Out for Delivery",
      "location": null,
      "code": null
    },
    {
      "timestamp": "2026-03-10T05:48:00Z",
      "localTime": "2026-03-10T00:48:00",
      "status": "in_transit",
      "description": "At ICS Branch SCARBOROUGH, ON for processing",
      "location": "SCARBOROUGH, ON",
      "code": null
    }
  ]
}

Notes

  • Time zone: scan times are local to the branch. When the scan names a province (At ICS Branch CITY, ON ..., or a trailing province and postal code), timestamp is converted from that province's zone; otherwise only localTime is returned and timestamp is null.
  • Signature: the name in the page's signature column becomes signedBy; the placeholder NSR (no signature required) is ignored.
  • One number per request: the tracking page lists several numbers but only fills the scan history of the first, so batches make one request per number.

On this page