Carriers

Correos Express Tracking API & MCP

Query live Correos Express (correosexpress) package status and scan history in a single synchronous GET request or MCP tool call.

Overview & Quick Facts

PropertyValue
Carrier slug (?carrier=)correosexpress
Brand aliasesCorreos Express Paquetería, CEX
CategoryExpress parcels (Spain)
Single-package REST endpointGET https://api.lastscanned.com/v1/track/{trackingNumber}
Batch REST endpointGET https://api.lastscanned.com/v1/track?numbers=...,...
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

matches and mayMatch are both empty: Correos Express numbers are 16 digits, a shape Canada Post and others also use, so pass ?carrier=correosexpress. This is the parcel company, not the postal service (correos).

Synchronous GET Request & Normalized JSON Response

curl -s "https://api.lastscanned.com/v1/track/3230001234567890?carrier=correosexpress" \
  -H "Authorization: Bearer $LASTSCANNED_API_KEY"
{
  "carrier": "correosexpress",
  "trackingNumber": "3230001234567890",
  "status": "exception",
  "statusDescription": "En Gestión",
  "service": null,
  "deliveredAt": null,
  "deliveredAtLocal": null,
  "signedBy": null,
  "destination": null,
  "message": "Linked shipment 32300012345678901230001: NO LOCALIZADO",
  "events": [
    {
      "timestamp": "2026-08-19T09:37:00Z",
      "localTime": "2026-08-19T11:37:00",
      "status": "exception",
      "description": "En Gestión",
      "location": null,
      "code": "X130000R"
    },
    {
      "timestamp": "2026-08-06T20:01:00Z",
      "localTime": "2026-08-06T22:01:00",
      "status": "delivered",
      "description": "Entregado",
      "location": null,
      "code": "X120000V"
    },
    {
      "timestamp": "2026-08-04T05:41:32Z",
      "localTime": "2026-08-04T07:41:32",
      "status": "out_for_delivery",
      "description": "En reparto",
      "location": null,
      "code": "X080000V"
    },
    {
      "timestamp": "2026-08-03T23:44:30Z",
      "localTime": "2026-08-04T01:44:30",
      "status": "in_transit",
      "description": "En destino",
      "location": null,
      "code": "X060000V"
    },
    {
      "timestamp": "2026-08-01T15:39:41Z",
      "localTime": "2026-08-01T17:39:41",
      "status": "label_created",
      "description": "Informado",
      "location": null,
      "code": "X010000V"
    }
  ]
}

Notes

  • Source: the JSON service localizador.correos.es/canonico/eventos_envio_servicio/{number} that the Correos Express tracking page uses. No account is needed.
  • Status codes: the event code is X<nn>0000<V|R>, and nn decides the status (01 label created, 02 and 06 in transit, 08 out for delivery, 12 delivered, 13 under customer-service management, which is exception). Other codes fall back to the Spanish wording.
  • Newest scan wins: a parcel can be delivered and then reopened by customer service, as in the sample, in which case the status follows the newest scan.
  • Linked shipment: when Correos Express lists an associated shipment, message names it with its state.
  • Time zone: scan clocks are converted from Europe/Madrid. Scans on the Canary Islands are an hour out.

On this page