Carriers

Asendia USA (Pirate Ship Simple Export Rate) Tracking API & MCP

Query live Asendia USA (asendia, including Pirate Ship Simple Export Rate AHOY… labels and e-PAQ international parcels) package status, scan history, and destination postal carrier handoff numbers in a single synchronous GET request or MCP tool call. lastscanned auto-detects 12-character AHOY… tracking numbers in Pass 1 and tracks USPS outbound consolidation labels, AS…US numbers, and destination carrier numbers when you pass ?carrier=asendia.

Overview & Quick Facts

PropertyValue
Carrier slug (?carrier=)asendia
Brand & service aliasesAsendia, Asendia USA, Pirate Ship Simple Export Rate (AHOY…), Asendia e-PAQ Select / e-PAQ Plus / e-PAQ Elite (a1.asendiausa.com)
CategoryUS outbound international e-commerce mail & parcel consolidator (Detection precedence #31 of 31)
Single-package REST endpointGET https://api.lastscanned.com/v1/track/{trackingNumber} (auto-detected for AHOY…; add ?carrier=asendia for USPS / AS…US / destination numbers)
Batch REST endpointGET https://api.lastscanned.com/v1/track?numbers=AHOY...,AHOY...
MCP server (https://mcp.lastscanned.com)track_package, track_packages, list_carriers (claude mcp add --transport http lastscanned https://mcp.lastscanned.com)
Authentication & pricingAuthorization: Bearer lsk_live_... · 1 free keyless lookup/day per IP · Free tier (5 unique numbers/day, $0) · Pro ($4.99/mo for 1,000 unique numbers, unlimited re-polls, $0.015/extra) · HTTP 402 Stripe MPP ($0.50 for 25-number lsk_pack_ key or $0.02/number in USDC on Tempo)

Why developers use lastscanned for Asendia USA & Pirate Ship Export

  • Automatic destination postal carrier & secondary tracking number extraction: When US merchants ship internationally using Pirate Ship Simple Export Rate (AHOY…) or Asendia e-PAQ, the parcel moves through an Asendia USA consolidation hub (Folcroft, PA, Elk Grove Village, IL, Bell, CA) and is handed over to a foreign postal operator or courier (Canada Post, Royal Mail, Australia Post, La Poste / Colissimo, DHL / Deutsche Post, PostNord, Swiss Post, Correos, Evri, An Post, Poste Italiane). lastscanned extracts both the destination carrier name and the final-mile barcode (trackingNumberVendor) into top-level message (for example, "Handed to Canada Post as 7012345678901230" or "Handed to Royal Mail as LE123456785GB").
  • No Asendia A1 API keys required: Query AHOY… labels or Asendia AS…US numbers with a single GET call instead of configuring Asendia One (A1) Basic Auth and API keys.

Tracking Number Formats & Auto-Detection (matches vs ?carrier=asendia)

Asendia is evaluated thirty-first (#31) in lastscanned's two-pass detector:

PassRule / RegexCheck DigitExamples
Pass 1 (matches) — Pirate Ship AHOY/^AHOY[0-9A-Z]{8}$/i (AHOY + 8 letters and digits = 12 chars)—AHOY7K2M9Q4T, AHOY1A2B3C4D
Pass 2 (mayMatch)None——
Explicit (?carrier=asendia) — AS…US / USPS / Destination numbersAsendia AS…US numbers, the domestic 92…/94… USPS consolidation label, or the destination carrier's tracking number—AS123456789US, 9400111899223197428490

When is ?carrier=asendia optional vs required?

  • Optional (auto-detected): All 12-character AHOY + 8 alphanumeric Pirate Ship Simple Export Rate tracking numbers auto-detect in Pass 1.
  • Required (?carrier=asendia): Asendia's AS…US numbers, the domestic 92…/94… USPS label used for the US-to-Asendia-hub leg (which otherwise routes to USPS in Pass 1), or the destination postal number when you want Asendia's consolidated view.

Synchronous GET Request & Normalized JSON Response

curl

# Pirate Ship Simple Export Rate AHOY... number (auto-detected)
curl -s "https://api.lastscanned.com/v1/track/AHOY7K2M9Q4T" \
  -H "Authorization: Bearer $LASTSCANNED_API_KEY"

# Asendia AS...US or USPS consolidation label (pass ?carrier=asendia)
curl -s "https://api.lastscanned.com/v1/track/AS123456789US?carrier=asendia" \
  -H "Authorization: Bearer $LASTSCANNED_API_KEY"

JavaScript / TypeScript (fetch)

const res = await fetch("https://api.lastscanned.com/v1/track/AHOY7K2M9Q4T", {
  headers: { Authorization: `Bearer ${process.env.LASTSCANNED_API_KEY}` },
});
const pkg = await res.json();
console.log(pkg.status, pkg.message, pkg.events[0]);

MCP track_package tool call

{
  "tool": "track_package",
  "arguments": {
    "tracking_number": "AHOY7K2M9Q4T"
  }
}

Normalized TrackingResult JSON response

{
  "carrier": "asendia",
  "trackingNumber": "AHOY7K2M9Q4T",
  "status": "in_transit",
  "statusDescription": "Arrived at destination country airport",
  "service": "e-PAQ Select",
  "deliveredAt": null,
  "deliveredAtLocal": null,
  "signedBy": null,
  "destination": {
    "city": null,
    "state": null,
    "country": "CA"
  },
  "message": "Handed to Canada Post as 7012345678901230",
  "events": [
    {
      "timestamp": null,
      "localTime": "2026-10-25T14:22:00",
      "status": "in_transit",
      "description": "Arrived at destination country airport",
      "location": "TORONTO, ON, CA",
      "code": "A14"
    },
    {
      "timestamp": null,
      "localTime": "2026-10-24T09:15:30",
      "status": "in_transit",
      "description": "Processed by Asendia Facility",
      "location": "Folcroft, PA, US",
      "code": "A05"
    },
    {
      "timestamp": null,
      "localTime": "2026-10-22T11:04:12",
      "status": "label_created",
      "description": "Shipment information received",
      "location": "Folcroft, PA, US",
      "code": "A01"
    }
  ]
}

Chaining Last-Mile Handoffs (message) & Status Notes

  • Chaining into Canada Post, DHL, or USPS: When message reports "Handed to Canada Post as 7012345678901230" or "Handed to DHL as ...", you can pass that secondary tracking number directly to GET /v1/track/7012345678901230 to retrieve the destination carrier's native local delivery scans and UTC timestamps.
  • Smart "Delivered to partner" guard: Asendia logs intermediate scans containing the word "Delivered" when handing a bag over to an airline or final-mile postal partner (e.g. "Delivered to destination carrier"). lastscanned excludes carrier/partner/agent handoff wording from triggering delivered so the parcel remains in_transit until actual recipient delivery.

On this page