Carriers

SPL Saudi Post Tracking API & MCP

Query live SPL Saudi Post (spl, Saudi Post / سبل) parcel status and scan history in a single synchronous GET request or MCP tool call. lastscanned auto-detects UPU S10 numbers ending in SA (valid check digit) in Pass 1; SPL's other number shapes need ?carrier=spl.

Overview & Quick Facts

PropertyValue
Carrier slug (?carrier=)spl
Brand & service aliasesSPL, Saudi Post, Saudi Post and Logistics, SaudiPost, سبل, البريد السعودي
CategoryNational post of Saudi Arabia
Single-package REST endpointGET https://api.lastscanned.com/v1/track/{trackingNumber} (add ?carrier=spl for numbers that are not S10 …SA)
Batch REST endpointGET https://api.lastscanned.com/v1/track?numbers=RR...SA,RR...SA
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)

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

PassRule / RegexCheck DigitExamples
Pass 1 (matches)UPU S10: /^[A-Z]{2}\d{9}SA$/S10 mod 11RR123456785SA, EE123456785SA
Pass 2 (mayMatch)Nonenonenone
Explicit (?carrier=spl)SPL's other shapes: letters, 4 to 25 digits, then a check characternone?carrier=spl

Synchronous GET Request & Normalized JSON Response

curl -s "https://api.lastscanned.com/v1/track/RR123456785SA" \
  -H "Authorization: Bearer $LASTSCANNED_API_KEY"
{
  "carrier": "spl",
  "trackingNumber": "RR123456785SA",
  "status": "out_for_delivery",
  "statusDescription": "Under delivery",
  "service": "Registered Mail",
  "deliveredAt": null,
  "deliveredAtLocal": null,
  "signedBy": null,
  "destination": null,
  "estimatedDelivery": "2026-10-28T00:00:00",
  "events": [
    {
      "timestamp": null,
      "localTime": "2026-10-27T08:40:00",
      "status": "out_for_delivery",
      "description": "Under delivery",
      "location": "Riyadh Mail Center",
      "code": "4"
    },
    {
      "timestamp": null,
      "localTime": "2026-10-26T19:05:00",
      "status": "in_transit",
      "description": "Received from the customer",
      "location": "Jeddah Post Office",
      "code": "1"
    }
  ]
}

Status Notes

  • Times: scan times are printed without a zone, so events carry localTime only.
  • Customs bill: status code 8 means a VAT bill has been issued and must be paid; it reports exception.
  • Naqel numbers: SPL's tracking page also accepts Naqel waybills (8, 9, 13 or 14 digits). Those are Naqel shipments and are not tracked as spl.

On this page