Your tracking data. In your tools.
Three steps to your first request
Connect your application
Give HLX your application's name and exact sign-in callback URL. We register the application and provide its client ID. Users then sign in and approve read access through OAuth with PKCE.
Choose your workspace
Open Developer in your portal and copy the Workspace ID. Send that ID and your access token with every request. Your application can read only workspaces the signed-in user can access.
Read your tracking data
Start with a small page of assets. Use an asset's ID to read its latest stored position or observation history. Every example uses ordinary HTTPS and JSON, so no HLX SDK is required.
Read a page of assets
curl --fail-with-body --get 'https://www.hlxstudios.com/api/public/v1/assets' \
--data-urlencode 'select=id,ref,description,status' \
--data-urlencode 'order=id.asc' \
--data-urlencode 'limit=25' \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "x-traxlabs-workspace: $WORKSPACE_ID"What comes back
A successful read returns a JSON array of rows. An empty array means no visible rows matched your filters; it is a successful response.
Use the returned asset UUID for position and history requests. A label's printed serial and an asset's ID are different identifiers.
Connected OAuth applications have read-only access. Label activation and other changes stay in the authorized portal workflows.
See copyable examples in your language →Choose the information you need
| Resource | Use it for | Useful fields |
|---|---|---|
| GET /assets | Your tracked items | id, ref, description, status |
| GET /asset_positions_current | Latest stored location for each asset | asset_id, lat, lng, observed_at |
| GET /observations | Stored reports for an asset's journey | id, asset_id, observed_at, lat, lng |
| GET /labels | Label serials and service dates | id, serial, asset_id, status, activated_at, expires_at |
| GET /facilities | Your sites and locations | id, code, name, city, country |
All paths above start at https://www.hlxstudios.com/api/public/v1. Select flat, comma-separated fields and keep reads bounded: the default is 100 rows, with a maximum of 500 per request. The full guide includes filters, pagination and error recovery.
Follow one asset
curl --fail-with-body --get 'https://www.hlxstudios.com/api/public/v1/asset_positions_current' \
--data-urlencode "asset_id=eq.$ASSET_ID" \
--data-urlencode 'select=asset_id,lat,lng,observed_at' \
--data-urlencode 'limit=1' \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "x-traxlabs-workspace: $WORKSPACE_ID"curl --fail-with-body --get 'https://www.hlxstudios.com/api/public/v1/observations' \
--data-urlencode "asset_id=eq.$ASSET_ID" \
--data-urlencode 'select=id,asset_id,observed_at,lat,lng' \
--data-urlencode 'order=observed_at.desc,id.desc' \
--data-urlencode 'limit=100' \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "x-traxlabs-workspace: $WORKSPACE_ID"The report timestamp tells you when the location was observed. Reading the API does not request a fresh report from a physical label. An asset without reports may have no position yet.
Connect with MCP
https://www.hlxstudios.com/mcp
Ask HLX to register your assistant's OAuth application and callback URL first. Then configure its client ID, connect the address above and approve access with your HLX account. The six read-only tools cover workspaces, assets, journeys, labels, alerts and facilities.
Choose a client that accepts a pre-registered OAuth client ID. An assistant that requires automatic registration cannot connect through that flow today.
Open the workspace guide and troubleshooting →