Export raw tracks with the GTS OData API
Use the raw-track endpoint to export GPS tracks from a large Tracking Round. Unlike the standard track table,
this endpoint reads tracks directly from live and archived storage. It does not create an OData snapshot or add
Targeted Area and base-layer intersections.
For the complete list of query options and returned fields, see Export raw tracks with OData in the User Guide.
Access
Use a GTS Dashboard Account with API access and permission to view the Tracking Round. To create an account, see How to use the GTS OData API with Power BI.
The endpoint is:
https://gts.health/fastapi/odata/v1/raw_track/<tracking_round_id>
Replace <tracking_round_id> with the numeric ID of an accessible Tracking Round.
Request tracks in batches
Every request must filter GPS_Timestamp_UTC to a time window greater than zero and at most 24 hours. Use UTC
timestamps and non-overlapping half-open intervals: the start is inclusive (ge) and the end is exclusive
(lt). For example:
curl --fail-with-body --get --user 'YOUR_USERNAME' \
'https://gts.health/fastapi/odata/v1/raw_track/123' \
--data-urlencode '$filter=GPS_Timestamp_UTC ge 2026-01-01T00:00:00Z and GPS_Timestamp_UTC lt 2026-01-02T00:00:00Z' \
--header 'Prefer: odata.maxpagesize=50000'
Curl prompts for the password. Replace 123 with the ID of an accessible Tracking Round. To export additional
periods, use the previous interval’s end as the next interval’s start. This avoids gaps and duplicate tracks at
the boundaries.
The default page contains at most 10,000 tracks; the maximum is 50,000. Set
Prefer: odata.maxpagesize=<positive integer> to request a page size. If a response contains
@odata.nextLink, request that exact URL with the same authentication and Prefer header. Continue until
there is no @odata.nextLink. Do not edit the continuation URL or its $skiptoken.
Recommendations and limits
Use the raw-track endpoint when a standard track export is too large or when area intersections are not needed. The standard
tracktable still has the whole-round 20 GB estimate; a date filter does not bypass it.Keep each requested time window within 24 hours. The limit applies to the complete filter, including every
orbranch.Follow continuation links sequentially. The endpoint does not support
$skip.Use
$selectto request only fields needed by the receiving application. Use$toponly when you want to limit the total number of returned tracks.Archived tracks are read from files and can take longer than tracks in live storage. Page size and storage conditions can affect export time; the full export has no fixed completion-time guarantee.
Results are not a snapshot across requests. Late uploads may appear before a continuation key already returned. For a consistent export, wait until uploads stop and repeat the export if data changes while paging.
The User Guide page linked above describes the supported fields, filters, ordering and other endpoint limits.