How do I track SF Express and Wanb Express numbers with an API?

Wanb Express numbers, WNB plus two letters, ten digits and YQ, track on GET /v1/track/{number} as carrier wanbexpress. SF Express numbers, SF plus thirteen digits, are recognized as sfexpress, but SF shows scans only after a captcha, so the call answers HTTP 503 carrier_unavailable and is not billed. Pro is $4.99 a month for 1,000 unique numbers, then $0.015.

Try it

curl: Wanb Express (replace YOUR_WANB_NUMBER; no fixture is published)
curl "https://api.lastscanned.com/v1/track/YOUR_WANB_NUMBER" \
  -H "Authorization: Bearer lsk_live_YOUR_KEY"
JavaScript fetch: Wanb Express
const res = await fetch("https://api.lastscanned.com/v1/track/YOUR_WANB_NUMBER", {
  headers: { Authorization: `Bearer ${process.env.LASTSCANNED_KEY}` },
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
console.log(await res.json());
Python requests: Wanb Express
import os
import requests

r = requests.get(
    "https://api.lastscanned.com/v1/track/YOUR_WANB_NUMBER",
    headers={"Authorization": f"Bearer {os.environ['LASTSCANNED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
Wanb Express response shape
{
  "carrier": "wanbexpress",
  "trackingNumber": "YOUR_WANB_NUMBER",
  "status": "in_transit",
  "statusDescription": "<newest scan text>",
  "service": null,
  "deliveredAt": null,
  "deliveredAtLocal": null,
  "signedBy": null,
  "destination": { "city": null, "state": null, "country": "<destination country code>" },
  "events": [
    { "timestamp": "<UTC or null>", "localTime": "<as printed>", "status": "in_transit", "description": "<Content>", "location": "<Location or null>", "code": "DataReceived" }
  ]
}
curl: SF Express (SF + 13 digits; the call does not return scans)
curl -i "https://api.lastscanned.com/v1/track/YOUR_SF_NUMBER" \
  -H "Authorization: Bearer lsk_live_YOUR_KEY"
SF Express response (HTTP 503)
{
  "error": {
    "code": "carrier_unavailable",
    "message": "That number looks like SF Express's. SF Express shows tracking only after a captcha, so it can't be looked up automatically; track it at https://www.sf-express.com/chn/en/waybill/list"
  }
}

SF Express and Wanb Express

OptionHow it worksPriceNotes
SF Express waybill pageTrack an SF number on sf-express.com after its captcha.FreeSF does not return scans to an automatic lookup.
Wanb Express tracking pageOne number at a time on tracking.wanbexpress.com.FreeWanb only.
lastscannedGET /v1/track/{number}. Wanb returns scans. SF is named and answered 503.Free: 5 numbers a day. Pro: $4.99/mo for 1,000 unique numbers, then $0.015 each. The SF 503 is not billed.Wanb joins the other 550 carriers in one JSON shape.

Details

Wanb Express

A Wanb number is WNB, two letters, ten digits and YQ (17 characters) and detects as wanbexpress with no carrier parameter. There is no recorded fixture number, so the samples use YOUR_WANB_NUMBER rather than a made-up waybill. The result uses the usual tracking fields. destination.country is Wanb's destination country code. Scan code is Wanb's own status, such as DataReceived, LastMileOutForDelivery or Delivered. The adapter does not set message, so a last-mile handoff is not returned for Wanb. A number Wanb has no record of is 404 not_found. Up to 35 Wanb numbers fit in one batch request, inside the 100-number cap.

SF Express

An SF Express waybill is SF plus 13 digits and detects as sfexpress. The lookup answers HTTP 503 carrier_unavailable with the message above, because SF shows a route only after a captcha. Passing ?carrier=sfexpress returns the same 503 with the shorter message that starts "SF Express shows tracking only after a captcha". A bare 12-digit number is a shape SF shares with other carriers, including FedEx, so it is not treated as SF unless you pass ?carrier=sfexpress, which still returns 503. There is no recorded SF fixture; YOUR_SF_NUMBER stands in for SF and 13 digits. The 503 is not billed. Track the final-mile carrier's own number when you have it.

Price

Pro is $4.99/mo for 1,000 unique numbers, then $0.015 each, with no daily limit. A free key tracks 5 numbers a day. With no key you get 1 lookup a day, then pay per request over MPP: $0.50 by card for a 25-number pack, or $0.02 a number in USDC on Tempo or Solana. A carrier_unavailable answer is not a tracked number.

FAQ

Can I track an SF Express number by API?
The number is recognized. The lookup answers HTTP 503 carrier_unavailable and points at sf-express.com, because SF shows scans only after a captcha. That response is not billed.
What does a Wanb Express tracking number look like?
WNB, two letters, ten digits and YQ. It detects as wanbexpress.
Does Wanb Express return a USPS handoff?
No. The Wanb adapter returns status, destination country and events. It does not set message.
How much does a lookup cost?
A free key tracks 5 numbers a day. Pro is $4.99 a month for 1,000 unique numbers, then $0.015 each. One keyless lookup a day, then MPP. The SF Express 503 is not charged.