Developer portal

Connect TraxLabs to your TMS 

Authentication, load mapping, webhook events and payload reference, everything your developers need to put smart-label observations inside the system your dispatchers already live in.
Getting started

Three steps to live tracking events 

01

Create API credentials

In the portal, open Integrations and generate a client ID and secret for your workspace. Secrets are shown once and are only ever used server-side.

02

Map your load records

Post your TMS load, order or equipment identifiers so each tracked asset carries your own reference. Matching is by external_id, so re-posting is idempotent.

03

Subscribe to observations

Register a webhook receiver, or poll the observations endpoint. Every event carries the asset, label, position, facility context and your external reference.

Authentication

OAuth 2.0 client credentials 

All calls are server-to-server. Client secrets and webhook signing secrets must never be embedded in a browser or mobile bundle.
POST /oauth/token
curl -X POST https://api.traxlabs.hlx.com/v1/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type": "client_credentials",
    "client_id": "tl_live_...",
    "client_secret": "••••••••"
  }'

# 200 OK
{ "access_token": "eyJhbGciOi...", "expires_in": 3600 }
Authenticated request
curl https://api.traxlabs.hlx.com/v1/assets?limit=50 \
  -H "Authorization: Bearer $ACCESS_TOKEN"

# 200 OK
{
  "data": [
    {
      "id": "ast_38870",
      "external_id": "LOAD-884512",
      "label_id": "lbl_9f21",
      "status": "in_transit",
      "freight_mode": "FTL",
      "last_observation": {
        "at": "2026-08-27T18:04:11Z",
        "lat": 39.1031, "lng": -84.5120,
        "facility_code": "CVG-01"
      }
    }
  ],
  "next_cursor": null
}
Record mapping

Map loads to tracked assets 

TraxLabs fieldYour TMS record
asset.external_id

Load / Order / Equipment ID

Your primary key, required

asset.reference

BOL, PRO or PO number

Optional secondary lookup

asset.owner_customer

Customer / account

Drives client-segmented reporting

asset.freight_mode

Mode (LTL, FTL, parcel, intermodal)

Used for lane analytics

observation.position

Status event / tracking update

Published back on each read

facility.code

Stop / location code

Aligns arrivals with your stops

POST /assets/link
curl -X POST https://api.traxlabs.hlx.com/v1/assets/link \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "external_id": "LOAD-884512",
    "label_serial": "TLX-0042-88190",
    "owner_customer": "Midwest Rentals",
    "freight_mode": "FTL",
    "reference": "BOL-77120"
  }'

# 201 Created, idempotent on external_id
Webhooks

Observations pushed back to dispatch 

Register one HTTPS receiver per environment. Every delivery is signed; verify the signature before trusting the payload, and respond 2xx within 5 seconds, failures retry with exponential backoff for 24 hours.
observation.recordedA label reported a position through a gateway or phone read.
facility.arrivedAn asset entered the geofence of a known facility.
facility.departedAn asset left a facility geofence.
dwell.exceededAn asset sat longer than the configured dwell threshold.
exit.unauthorizedMovement out of a site outside an approved window, theft and loss signal.
label.activatedA new smart label was activated and bound to an asset.
coverage.expiringA label is approaching the end of its 30 day, 4 month or 1 year plan.
Webhook payload
POST https://your-tms.example.com/hooks/traxlabs
X-Traxlabs-Signature: t=1756324851,v1=9c1f...

{
  "event": "facility.arrived",
  "occurred_at": "2026-08-27T18:04:11Z",
  "asset": {
    "id": "ast_38870",
    "external_id": "LOAD-884512",
    "owner_customer": "Midwest Rentals"
  },
  "label": { "serial": "TLX-0042-88190", "life_plan": "12_month" },
  "position": { "lat": 39.1031, "lng": -84.5120, "accuracy_m": 35 },
  "facility": { "code": "CVG-01", "name": "Cincinnati DC" }
}
Signature verification (Node)
import { createHmac, timingSafeEqual } from "crypto";

const [t, v1] = header.split(",").map((p) => p.split("=")[1]);
const expected = createHmac("sha256", process.env.TRAXLABS_WEBHOOK_SECRET)
  .update(`${t}.${rawBody}`)
  .digest("hex");

const ok = timingSafeEqual(Buffer.from(v1), Buffer.from(expected));
Platform notes

Per-system connection detail 

Revenova TMS & Salesforce platforms

Connected App with OAuth 2.0 client credentials. Observations write to a custom Tracking Event object and roll up onto the Load record, so dispatch sees positions inside Salesforce.

e2open

Uses the e2open multi-enterprise APIs with a partner API key. Shipment and transportation-order records map to tracked assets, and observations publish as milestone and exception events on the shipment.

Turvo

OAuth 2.0 against the Turvo public API. Shipments map by custom ID; observations post as shipment updates and location pings on the collaboration timeline.

Tai TMS

API key auth. LTL and brokerage shipments map by load number, with arrivals and dwell exceptions written back as tracking notes.

McLeod, MercuryGate, Oracle OTM, SAP TM, Blue Yonder, Manhattan

REST or scheduled file exchange, depending on your deployment. We agree the record type and event mapping during onboarding and run it in sandbox first.

Supported systems

Revenova TMSSalesforce platformTurvoTai TMSe2openMcLeod PowerBrokerMercuryGateDescartesOracle OTMBlue Yonderproject44 / FourKitesSAP TMManhattan Active

Rate limits: 600 requests per minute per workspace, bursts to 60 per second. Sandbox workspaces are seeded with demo assets and replayable observation history.

Inside the portal

What your customer sees after the keys are issued 

Connected systems, telematics feeds and API credentials live in the integrations hub, so an operator can confirm a sync without opening a ticket.
portal.traxlabs.com/portal/integrations

Integrations

Push label reads into your TMS and pull carrier positions back in. Salesforce-based platforms, Turvo, Tai, e2open and ELD or driver-app feeds.

Connect systemDeveloper docs

Connected systems

4 live

Revenova TMS

Salesforce platform

connected

Turvo

Shipment + milestone sync

connected

Tai TMS

Load and status push

connected

e2open

Multi-enterprise network

connected

MercuryGate

Available

connect

Telematics and driver apps

vehicle positions

Trucker Tools

Driver app GPS

syncing

Highway

Carrier identity + GPS

syncing

API credentials

client_id

trx_live_9f2c…8a41

webhook endpoint

https://tms.example.com/hooks/traxlabs

See your labels, inventory and device life in one portal 

Book a walkthrough with our team and we will map the platform to your facilities, label volumes and reporting needs.