Track shipments in your application.

Carriers have wildly different tracking event codes. The RC:Ship Tracking API ingests raw carrier events and maps them to a normalized status schema, so you only have to integrate tracking logic once.

GET/v1/tracking/:trackingNumber

Tracking Lookup

You can look up the tracking history of any shipment by passing its carrier tracking number (AWB) or the RC:Ship shp_... ID.

BASH
curl https://api.ship.retailcoder.com/v1/tracking/AMZ987654321 \
  -H "Authorization: Bearer sk_live_your_api_key_here"

Tracking Response

The response contains the current overall status, as well as an array of events providing a chronological timeline of the shipment.

Response Payload
{
  "trackingNumber": "AMZ987654321",
  "carrier": "amazon_shipping",
  "status": "in_transit",
  "estimatedDeliveryDate": "2024-05-20T18:00:00Z",
  "events": [
    {
      "status": "in_transit",
      "description": "Package has left the carrier facility.",
      "location": "Mumbai, MH",
      "timestamp": "2024-05-19T08:14:00Z"
    },
    {
      "status": "picked_up",
      "description": "Package picked up by carrier.",
      "location": "Bengaluru, KA",
      "timestamp": "2024-05-18T16:30:00Z"
    },
    {
      "status": "label_generated",
      "description": "Shipping label created.",
      "location": null,
      "timestamp": "2024-05-18T14:30:00Z"
    }
  ]
}

Normalized Statuses

Every event maps to one of the following normalized statuses:

  • created: The shipment exists in RC:Ship but is not yet manifested.
  • label_generated: The carrier has accepted the shipment and provided a label.
  • picked_up: The carrier has physical possession of the package.
  • in_transit: The package is moving through the carrier network.
  • out_for_delivery: The package is on the final delivery vehicle.
  • delivered: The package was successfully delivered.
  • exception: An issue occurred (e.g., weather delay, address not found).
Ready to build shipping into your product?
Talk to Sales
Developer Hub

Build with the Shipping Infrastructure API

A robust, RESTful API designed by developers, for developers.

Integrating shipping carriers is notoriously difficult due to archaic SOAP APIs, inconsistent documentation, and varied label formats. RC:Ship abstracts away this complexity, providing a unified developer experience.

Unified Carrier Abstraction

Instead of building and maintaining 10 different carrier integrations, you build one integration to the RC:Ship API. We handle the carrier-specific quirks, API updates, and edge cases, allowing your engineering team to focus on core product features.

Our API normalizes the entire shipping lifecycle—from live rate fetching to label generation and real-time tracking webhooks.

This means that adding a new carrier to your stack is a configuration change in our dashboard, not a three-week sprint for your engineering team.

Reliable Webhooks & Event Streams

Stop polling for tracking updates. Our infrastructure handles millions of carrier pings and distills them into clean, standardized webhook events sent directly to your endpoints. Whether a package is out for delivery or returning to origin, you receive instant, structured JSON payloads.

API Capabilities

RESTful Design
Predictable resource-oriented URLs and HTTP status codes.
Sub-second Responses
Optimized for live checkout rate fetching without latency.
Webhooks
Reliable event delivery with built-in retry mechanisms.
Sandboxed Testing
Generate test labels without incurring real carrier charges.