OTEP Open Protocol Developer Center Home
Open Protocol

OTEP

Open Tracking Event Protocol
One Event. Infinite Journeys.

An open, vendor-neutral event protocol for tracking, delivery, fulfillment, and logistics operations. From carriers and couriers to warehouses, lockers, routes, and future mobility networks, OTEP provides a common language for every operational event.

Mission
To make logistics systems interoperable through a shared event language.

What is OTEP?

OTEP (Open Tracking Event Protocol) is an open, vendor-neutral protocol for the lifecycle of any trackable subject. Initiated and stewarded by Superroute, it is free for anyone to implement. It unifies self-delivery, third-party delivery, carrier tracking, proof-of-delivery, exceptions, node scans and driver trajectory into one event stream with one status vocabulary — and is designed to extend to moving, food delivery, storage and beyond.

The problem it solves

Tracking is fragmented. Every carrier names fields differently, every delivery channel lives in its own silo, and connecting to global standards means re-integrating again and again.

Fragmented vocabularies

Each carrier uses its own status codes and field names. Consumers write bespoke mapping for every integration.

Siloed sources

Your own drivers, third-party fleets and label carriers each report tracking in a different shape, so no single timeline exists.

No interoperability

Sharing tracking with partners on GS1 EPCIS, IATA ONE Record or UN/CEFACT means building and maintaining a separate export for each.

How it works

OTEP is event-sourced: the event timeline is the source of truth and the current status is just the latest event. Every event is shaped around four dimensions — What, When, Where and Why — the same dimensions shared by EPCIS, ONE Record and UN/CEFACT, so those standards become simple projections rather than parallel models. Sources that expose only a current status (no history) are handled by synthesizing one event per change, so a missing event list is never a blocker.

What When Where Why

Key features

Unified timeline

Self-delivery, third-party delivery and carrier shipments merge into one ordered event timeline per tracking number.

One status vocabulary

A normalized lifecycle of canonical status codes and phases, mapped from every source — no more per-carrier guesswork.

Standards interoperability

Project any timeline to GS1 EPCIS 2.0, IATA ONE Record or UN/CEFACT with a single request parameter.

Universal by design

A general protocol with domain profiles — parcel today; moving, food delivery and storage next — over one shared event spine.

Open & vendor-neutral

A public, versioned specification anyone can implement. Stable identifiers, a published status taxonomy and a state machine.

Additive & non-breaking

Exposed through a new public API alongside the existing one. Nothing you already integrate with changes.

Endpoints

Public, read-only, under the existing /api/v1 prefix. Add ?format= for an external-standard projection.

GET
https://api.superroute.ca/api/v1/otep/trackings/{tracking_number}
The unified OTEP timeline for a tracking number.
GET
https://api.superroute.ca/api/v1/otep/trackings/{tracking_number}/events
Just the event list for a tracking number.
POST
https://api.superroute.ca/api/v1/otep/trackings/batch
Resolve many tracking numbers in one call.

Output formats

One timeline in, four representations out — chosen by ?format= or an Accept profile.

format=otep

Native OTEP timeline (default).

format=epcis

GS1 EPCIS 2.0 ObjectEvents (JSON-LD).

format=onerecord

IATA ONE Record LogisticsEvents (JSON-LD).

format=uncefact

UN/CEFACT transport status events.

format=otlp

OpenTelemetry OTLP traces — the journey as a trace, each event a span.

format=aftership

AfterShip-compatible tracking object with checkpoints.

format=shopify

Shopify FulfillmentEvent list.

format=amazon

Amazon Shipping (SP-API) tracking event history.

format=walmart

Walmart Marketplace order-line status and tracking (coarse).

format=bigcommerce

BigCommerce order status and tracking (coarse).

format=magento

Magento order state and tracking (coarse).

format=woocommerce

WooCommerce order status and tracking (coarse).

format=etsy

Etsy receipt status and tracking (coarse).

format=sensorthings

OGC SensorThings observations (IoT).

Status lifecycle

Every event maps to a canonical status grouped into phases — from pre-shipment through pickup, transit and out-for-delivery to a terminal state (delivered, returned, rejected or cancelled).

pre_shipment pickup inbound transit out_for_delivery delivered

The open standard

OTEP is published as an open specification — initiated and stewarded by Superroute, free for anyone to implement. It is not a private format: the event envelope, the phase spine, the status vocabulary and the state machine are the public, normative protocol.

Normative vs informative

The protocol (envelope, vocabulary, state machine, standard mappings) is normative. An implementer's bindings to its own internal systems are informative and may differ.

Stable & versioned

Semantic versioning. Adding codes or profiles is backward-compatible; a published identifier's meaning never changes. The protocol version travels with every event.

Stable identifiers

Codes are addressed as otep:<profile>:<code> and phases as otep:phase:<name>, so vocabulary stays globally unambiguous across implementers.

Open & vendor-neutral

A public specification any party can adopt, with an open license and a public extension process — propose new profiles and codes instead of forking.

Build a compatible implementation

Producers and consumers integrate once against the protocol, not once per carrier. Four steps to a conformant implementation.

1. Model events as What / When / Where / Why

Emit each event with its subject (What), occurrence and record time (When), location (Where) and a canonical status plus optional reason (Why). Every field except subject, time and status is optional — fill what you have.

2. Map onto the canonical vocabulary

Translate your raw status codes to OTEP status codes and phases. Sources that expose only a current status synthesize one event per change.

3. Respect the state machine

Order events by occurrence time, tolerate out-of-order arrival, and treat delivered / returned / rejected / cancelled as terminal. Mark experimental codes with an x- prefix until registered.

4. Consume or project

Read native OTEP, or request an EPCIS / ONE Record / UN-CEFACT projection — same event, one parameter. A new output standard is just a new serializer.

Conformance levels

Level 1

Level 1 — emit the universal codes, phases and valid state transitions.

Level 2

Level 2 — additionally emit profile-specific codes and at least one external-standard projection.

International interoperability

OTEP's four dimensions line up field-for-field with the major global standards, so each becomes an output projection rather than a parallel integration.

GS1 EPCIS 2.0

Each OTEP event becomes an ObjectEvent; status maps to CBV bizStep + disposition; location to readPoint. Stable standard URNs.

IATA ONE Record

Each event becomes a LogisticsEvent with an eventCode and eventTimeType; the timeline attaches to a Shipment / Piece.

UN/CEFACT

Each event becomes a TransportEvent with a transport status code under a Consignment.

Field mapping (OTEP → standard)
OTEPGS1 EPCIS 2.0IATA ONE RecordUN/CEFACT
occurred_ateventTimeeventDateOccurrence Date/Time
status_codebizStep + dispositioneventCodeTransport status code
locationreadPoint / bizLocationrecordedAtLocationLocation
subjectepcListlinkedObjectConsignment
incident_reasondispositionevent remarkStatus reason code

EPCIS CBV values are stable standard URNs. ONE Record and UN/CEFACT code values are best-fit for last-mile and should be validated against the official code lists before external use.

Future interoperability Roadmap

OTEP is built to keep absorbing standards. These are on the interoperability roadmap.

MCP AI
Expose OTEP timelines to AI assistants over MCP for natural-language tracking.
OGC SensorThings IoT
Ingest OGC SensorThings IoT telemetry (temperature, location, shock) as OTEP sensor events.

Under evaluation: Other marketplaces (TikTok Shop, Temu, Shein, and more) are being evaluated and will be added as their public fulfillment APIs stabilize.

Can't adopt OTEP yet? Let's still interoperate.

Even if you can't use the OTEP standard directly, for any reason, we warmly welcome you to meet us partway — and we're glad to collaborate at the interoperability level.

Developer resources

Everything you need to build and verify an OTEP-conformant integration — offline spec, machine-readable schema and codebook, a live conformance validator, an MCP config, and a development skill.

Read online

Specification

Read the full normative protocol spec in your browser.

View online

Codebook

Browse every status code, phase and mapping online.

View online

Examples

Worked, copy-pasteable integration examples.

View online

Conformance validator

POST a timeline to check it conforms; get back the exact errors and warnings.

POST https://api.superroute.ca/api/v1/otep/validate

Offline downloads

Start building

OTEP endpoints are live under /api/v1/otep. Explore them in the REST API reference.

Open API Reference