Carriers

Happy-Post Tracking API & MCP

Query live Happy-Post (happypost) parcel status, steps and carrier handoff in a single synchronous GET request or MCP tool call. Numbers are 7–8 digits; pass ?carrier=happypost.

Overview & Quick Facts

PropertyValue
Carrier slug (?carrier=)happypost
Brand aliasesHappy-Post, HappyPost, Happy Post
CategoryCross-border parcel forwarding (France, UK)
Single-package REST endpointGET https://api.lastscanned.com/v1/track/{trackingNumber}
Batch REST endpointGET https://api.lastscanned.com/v1/track?numbers=12345678,...
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)nonenonenone
Pass 2 (mayMatch)nonenonenone

This carrier is not auto-detected. Parcel numbers are 8 digits (7 are also issued), a shape too common to detect, so ?carrier=happypost is required.

Synchronous GET Request & Normalized JSON Response

curl -s "https://api.lastscanned.com/v1/track/10507830?carrier=happypost" \
  -H "Authorization: Bearer $LASTSCANNED_API_KEY"
{
  "carrier": "happypost",
  "trackingNumber": "10507830",
  "status": "delivered",
  "statusDescription": "Delivered",
  "service": null,
  "deliveredAt": null,
  "deliveredAtLocal": "2021-12-20T10:44:00",
  "signedBy": null,
  "destination": null,
  "message": "Handed to Chronopost as XP123456789FR",
  "events": [
    {
      "timestamp": null,
      "localTime": "2021-12-20T10:44:00",
      "status": "delivered",
      "description": "Delivered",
      "location": null,
      "code": "delivered"
    },
    {
      "timestamp": null,
      "localTime": "2021-12-18T08:01:00",
      "status": "in_transit",
      "description": "Arrived in destination country",
      "location": null,
      "code": "international-arrival"
    },
    {
      "timestamp": null,
      "localTime": "2021-12-15T13:48:57",
      "status": "in_transit",
      "description": "Collected",
      "location": null,
      "code": "collected"
    },
    {
      "timestamp": null,
      "localTime": "2021-12-15T11:58:08",
      "status": "label_created",
      "description": "Label created",
      "location": null,
      "code": "ordered"
    }
  ]
}

Notes

  • Source: Happy-Post's tracking JSON lists the journey steps in order; steps with no time yet are skipped.
  • Handoff: the collected step's tracking_url holds the Chronopost number, returned as message.
  • Time zone: timestamps have no offset, so only localTime is set.

On this page