DSV APIdsv.com ↗
Track DSV shipments by STT number, waybill, container number, or booking ID. Get transport mode, progress percentage, origin, destination, and event codes.
What is the DSV API?
The DSV tracking API exposes 1 endpoint — track_shipment — that returns live shipment status from DSV's global freight network. A single lookup yields up to 9 structured fields per shipment record, including transport mode, percentage progress, last event code, origin location, and destination. The endpoint accepts any DSV reference type: STT numbers, waybill numbers, container numbers, or booking IDs.
curl -X GET 'https://api.parse.bot/scraper/9ad923d4-7298-4fed-81aa-2bbcb7175e46/track_shipment?reference_type=WaybillNo&reference_number=987654321' \ -H 'X-API-Key: $PARSE_API_KEY'
Track a shipment by reference number. Without a reference_type, searches across all reference types. With a reference_type, narrows the search to that specific type. Returns matching shipment tracking information including transport mode, progress percentage, origin/destination, and dates. A single reference number may match multiple shipments.
| Param | Type | Description |
|---|---|---|
| reference_type | string | Filter the search to a specific reference type. When omitted, searches across all types. |
| reference_numberrequired | string | The tracking reference number to search for (e.g. an STT number, waybill number, container number, booking ID, etc.). |
{
"type": "object",
"fields": {
"warnings": "Array of warning messages from the tracking system",
"shipments": "Array of shipment tracking records, each containing id, stt, transportMode, percentageProgress, lastEventCode, fromLocation, toLocation, startDate, endDate, and other metadata"
},
"sample": {
"data": {
"warnings": [],
"shipments": [
{
"id": "AirAndOceanStt:25090005810741:CIS:OCEAN",
"stt": "25090005810741",
"endDate": "2025-08-31T00:00:00+01:00",
"isXpress": false,
"startDate": "2025-08-01T00:00:00+01:00",
"toLocation": "Le Havre",
"consignment": null,
"fromLocation": "Hong Kong",
"lastEventCode": "ARR",
"transportMode": "OCEAN",
"percentageProgress": 37,
"swedenViewAvailable": false,
"additionalReferenceValues": null
}
]
},
"status": "success"
}
}About the DSV API
What the API Returns
The track_shipment endpoint accepts a reference_number and returns an array of matching shipment records under the shipments key. Each record includes id, stt, transportMode, percentageProgress, lastEventCode, fromLocation, and toLocation. A top-level warnings array surfaces any system-level messages returned for the query, such as ambiguous matches or reference types that returned no results.
Filtering by Reference Type
The optional reference_type parameter narrows the search to a specific category of identifier. When omitted, the endpoint searches across all supported reference types simultaneously, which can return multiple shipment records if the same number appears across different reference classes. Supplying a reference_type reduces ambiguity and speeds up resolution when you already know whether you're querying by waybill, container number, STT number, or booking ID.
Transport Modes and Progress
The transportMode field distinguishes between DSV's freight modes — road, air, sea, and rail — allowing downstream systems to route tracking data appropriately. The percentageProgress field gives a numeric completion estimate for the shipment's journey. Combined with lastEventCode, these fields let you build status dashboards or trigger workflow steps without parsing free-text event descriptions.
Coverage Scope
The API covers shipments tracked through DSV's public tracking surface. It reflects the same data available at dsv.com/mydsv/tracking-public. Detailed event history timelines and individual milestone timestamps are not part of the current response shape; the lastEventCode field captures the most recent event only.
The DSV API is a managed, monitored endpoint for dsv.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when dsv.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official dsv.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display live freight status on an e-commerce order page using
percentageProgressandlastEventCode - Route alert notifications by
transportModeto separate air, sea, or road operations teams - Aggregate multi-shipment status dashboards by querying a list of STT numbers against
track_shipment - Validate inbound container arrivals by cross-referencing
toLocationwith expected destination data - Trigger warehouse preparation workflows when
percentageProgressexceeds a threshold value - Reconcile booking IDs with active shipment
idandsttvalues for internal TMS integration
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does DSV offer an official developer API for shipment tracking?+
What does the `track_shipment` endpoint return when a reference number matches multiple shipments?+
shipments array will contain one record per match. Each record carries its own id, stt, transportMode, percentageProgress, lastEventCode, fromLocation, and toLocation. The warnings array may also include messages if the reference is ambiguous across types. Supplying a reference_type reduces the chance of multi-record responses.Does the API return a full event history or milestone timeline for a shipment?+
lastEventCode and an overall percentageProgress, but does not include a chronological list of past milestones or timestamps. You can fork this API on Parse and revise it to add an endpoint that returns full event history if that data surface becomes accessible.Are there any known limitations on which shipments can be tracked?+
shipments array.Can I look up shipments by recipient name, address, or date range rather than a reference number?+
track_shipment endpoint only accepts a reference_number (and optionally a reference_type). Lookup by recipient details or date ranges is not supported in the current schema. You can fork this API on Parse and revise it to add an endpoint covering those search modes if the underlying data surface supports them.