TIP API reference for integrating shipment tracking into your logistics workflow. Request and response values are illustrative; consult the pricing page and checkout for current prices.
https://tip.liveAuthenticated requests must include a valid session cookie from Clerk. For server-to-server communication, use the Clerk Backend API to verify sessions.
Device endpoints use API key authentication via the X-API-Key header.
Shipment API requests use a TIP API key via Authorization: Bearer <TIP_API_KEY>.
API requests are rate-limited to protect service stability. Limits are applied per IP address for public endpoints and per authenticated user for private endpoints.
When you exceed the limit, the API returns 429 Too Many Requests. Wait for the window to reset before retrying.
/api/v1/userResponse
{
"user": {
"id": "usr_abc123",
"email": "user@example.com",
"firstName": "Jane",
"lastName": "Doe",
"role": "user",
"createdAt": "2025-01-15T10:00:00.000Z"
}
}/api/v1/user/preferencesResponse
{
"preferences": {
"emailNotifications": true,
"deliveryAlerts": true,
"lowBatteryAlerts": true
}
}/api/v1/user/preferencesRequest Body
{
"emailNotifications": false,
"deliveryAlerts": true
}Response
{
"preferences": {
"emailNotifications": false,
"deliveryAlerts": true,
"lowBatteryAlerts": true
}
}/api/v1/shipmentsResponse
{
"shipments": [
{
"id": "clxyz123",
"name": "Electronics to Berlin",
"status": "IN_TRANSIT",
"shareCode": "RYbEAxJF",
"originAddress": "45 Warehouse Rd, London, UK",
"destinationAddress": "123 Main St, Berlin, Germany",
"createdAt": "2025-01-20T14:00:00.000Z",
"label": {
"id": "lbl_001",
"deviceId": "HL-001001",
"batteryPct": 85,
"status": "ACTIVE"
}
}
],
"pagination": {
"total": 1,
"limit": 50,
"offset": 0,
"hasMore": false
}
}/api/v1/shipmentsRequest Body
{
"name": "Electronics to Berlin",
"labelId": "clxyz_label_id",
"originAddress": "45 Warehouse Rd, London, UK",
"originLat": 51.5074,
"originLng": -0.1278,
"destinationAddress": "123 Main St, Berlin, Germany",
"destinationLat": 52.5200,
"destinationLng": 13.4050,
"photoUrls": []
}Response
{
"shipment": {
"id": "clxyz123",
"name": "Electronics to Berlin",
"status": "PENDING",
"shareCode": "RYbEAxJF",
"originAddress": "45 Warehouse Rd, London, UK",
"destinationAddress": "123 Main St, Berlin, Germany",
"createdAt": "2025-01-20T14:00:00.000Z"
}
}/api/v1/shipments/[id]Response
{
"shipment": {
"id": "clxyz123",
"name": "Electronics to Berlin",
"status": "IN_TRANSIT",
"shareCode": "RYbEAxJF",
"locations": [
{
"id": "loc_001",
"latitude": 51.5074,
"longitude": -0.1278,
"batteryPct": 92,
"accuracyM": 15,
"recordedAt": "2025-01-20T15:00:00.000Z"
}
],
"label": {
"deviceId": "HL-001001",
"batteryPct": 85
}
}
}/api/v1/shipments/[id]Request Body
{
"name": "Updated name",
"shareEnabled": false
}Response
{
"shipment": { ... }
}/api/v1/shipments/[id]Response
{
"success": true
}/api/v1/labelsResponse
{
"labels": [
{
"id": "lbl_001",
"deviceId": "HL-001001",
"status": "SOLD",
"batteryPct": 100,
"activatedAt": null
}
]
}/api/v1/ordersResponse
{
"orders": [
{
"id": "ord_abc123",
"status": "PAID",
"quantity": 5,
"totalAmount": 12000,
"currency": "USD",
"trackingNumber": null,
"createdAt": "2025-01-15T10:00:00.000Z"
}
]
}/api/v1/orders/[id]/api/v1/checkoutRequest Body
{
"packType": "team",
"shippingAddress": {
"name": "Jane Doe",
"line1": "123 Main St",
"city": "London",
"state": "",
"postalCode": "SW1A 1AA",
"country": "GB"
}
}Response
{
"url": "https://checkout.stripe.com/c/pay/cs_...",
"sessionId": "cs_live_..."
}/api/public/v1/cargo?status=IN_TRANSIT&query=TIP-010&limit=20&offset=0Use Authorization: Bearer <TIP_API_KEY>. Existing updatedSince behavior is unchanged; locationUpdatedSince filters by tracking-event time.
/api/public/v1/cargo/summary?scope=active&page=1&limit=5Response
{
"totals": {
"total": 14,
"byStatus": {
"PENDING": 1,
"IN_TRANSIT": 12,
"DELIVERED": 0,
"CANCELLED": 1
},
"attention": 2
},
"staleAfterHours": 48,
"data": [ ... ],
"pagination": { "total": 12, "page": 1, "limit": 5, "hasMore": true }
}/api/public/v1/cargo/[id]/api/public/v1/cargo/[id]/routeResponse
{
"shipment": {
"id": "shipment_id",
"labelId": "002492622",
"name": "Hk test",
"status": "IN_TRANSIT"
},
"currentLocation": { "city": "Hong Kong", "countryCode": "HK", "lat": 22.31, "lng": 114.16 },
"lastUpdate": "2026-08-06T00:27:00.000Z",
"isStale": false,
"routeSegments": [
{ "location": { "city": "Warsaw", "countryCode": "PL" }, "firstSeen": "...", "lastSeen": "...", "signalCount": 12 },
{ "location": { "city": "Beijing", "countryCode": "CN" }, "firstSeen": "...", "lastSeen": "...", "signalCount": 1 },
{ "location": { "city": "Hong Kong", "countryCode": "HK" }, "firstSeen": "...", "lastSeen": "...", "signalCount": 40 }
],
"locationCount": 3,
"countryCount": 3
}/api/public/v1/cargo/[id]/locations?limit=50&offset=0/api/v1/track/[code]Response
{
"shipment": {
"name": "Electronics to Berlin",
"status": "IN_TRANSIT",
"destinationAddress": "Berlin, Germany",
"locations": [
{
"latitude": 52.3676,
"longitude": 9.7389,
"batteryPct": 78,
"recordedAt": "2025-01-21T08:30:00.000Z"
}
],
"label": {
"deviceId": "HL-001001",
"batteryPct": 78
}
}
}/api/v1/track/[code]/confirmRequest Body
{
"receiverName": "John Smith",
"notes": "Received in good condition"
}Response
{
"success": true,
"message": "Delivery confirmed"
}/api/v1/device/reportRequires device API key in X-API-Key header
Request Body
{
"deviceId": "HL-001001",
"latitude": 51.5074,
"longitude": -0.1278,
"batteryPct": 85,
"accuracyM": 10,
"recordedAt": "2025-01-20T15:00:00.000Z"
}Response
{
"success": true,
"eventId": "evt_abc123"
}/api/v1/device/activateRequest Body
{
"labelId": "lbl_001"
}Response
{
"label": {
"id": "lbl_001",
"status": "ACTIVE",
"activatedAt": "2025-01-20T14:30:00.000Z"
}
}/api/v1/statsResponse
{
"activeShipments": 3,
"totalLabels": 10,
"deliveredThisMonth": 5,
"lowBatteryLabels": 1
}/api/v1/user/exportResponse
{
"user": { ... },
"orders": [ ... ],
"shipments": [ ... ],
"exportedAt": "2025-01-20T10:00:00.000Z"
}/api/v1/user/deleteRequest Body
{
"confirm": "DELETE"
}Response
{
"success": true,
"message": "Account and all associated data have been permanently deleted."
}/api/healthResponse
{
"status": "healthy",
"timestamp": "2025-01-20T10:00:00.000Z",
"dependencies": {
"database": "connected",
"stripe": "configured",
"clerk": "configured"
}
}/api/health/readyResponse
{
"ready": true
}/api/webhooks/clerkRequires Clerk signature verification
/api/webhooks/stripeRequires Stripe signature verification
All error responses follow a consistent JSON format:
{
"error": "Error message describing what went wrong",
"details": { // Optional — present on validation errors
"fieldErrors": {
"name": ["Shipment name is required"]
}
}
}Common HTTP Status Codes: