Branded Tracking Pages
The branded_tracking feature lets you generate shareable tracking page URLs with your organization’s branding. These pages are publicly accessible — no authentication required — making them perfect for inclusion in shipping notification emails or customer portals.
Enable it by adding branded_tracking to your enabled_features.
Creating a Tracking Page
POST /api/embed/tracking-pages
Authorization: Bearer est_session-token
Content-Type: application/json
{
"shipmentId": "shipment-uuid"
}Response:
{
"data": {
"id": "uuid",
"token": "abc123def456ghi789jkl012",
"created_at": "2026-03-21T18:00:00Z"
}
}The token is a short, URL-safe string (24 characters) that identifies the tracking page.
Public Tracking URL
The tracking page is accessible without authentication:
GET /api/embed/tracking-pages/view/:tokenResponse:
{
"data": {
"shipment": {
"id": "uuid",
"tracking_number": "1Z999AA10123456784",
"carrier": "UPS",
"service": "Ground",
"status": "in_transit",
"ship_date": "2026-03-19T08:00:00Z",
"estimated_delivery": "2026-03-22T18:00:00Z",
"actual_delivery": null
},
"checkpoints": [
{
"status": "in_transit",
"status_detail": "Out for delivery",
"location": "Local Hub",
"city": "New York",
"state": "NY",
"country": "US",
"latitude": 40.7128,
"longitude": -74.0060,
"checkpoint_time": "2026-03-21T14:30:00Z"
}
],
"branding": {
"primaryColor": "#FF6B35",
"logoUrl": "https://mycompany.com/logo.png"
}
}
}The response includes your organization’s branding from the embed config, so you can render a branded tracking experience.
Managing Tracking Pages
List Tracking Pages
GET /api/embed/tracking-pages
Authorization: Bearer est_session-tokenReturns all tracking page tokens created by the authenticated end user.
Revoke a Tracking Page
DELETE /api/embed/tracking-pages/:id
Authorization: Bearer est_session-tokenRevoked tokens immediately stop working.
Analytics
Each tracking page token tracks:
view_count— How many times the page has been viewedlast_viewed_at— When it was last accessed
Expiry
Tracking page tokens can have an optional expires_at. After expiry, the public URL returns a 404.