Tracking
Tracking endpoint exposes latest shipment state together with full tracking history.
Retrieve tracking status
GET
https://api.aquiline-tracking.com/v3/tracking/{trackingNumber}Returns tracking details for a specific tracking number.
Authentication and headers
X-API-Key(required)Accept: application/json(recommended)
Path parameter
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
trackingNumber | string | Yes | Aquiline tracking number assigned to a shipment. | AQAA123456789YQ |
Response model (200 OK)
| Field | Type | Required | Description |
|---|---|---|---|
number | string | Yes | Tracking number. |
status | string | Yes | Current shipment status (for example Shipping, Delivered, Error). |
oriCountry | string | No | Origin country code. |
destCountry | string | No | Destination country code. |
events | TrackingEvent[] | Yes | Tracking history timeline. |
In some cases, the API may return a failure payload with HTTP 200:
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | failure. |
message | string | Yes | Failure reason. |
Tracking event structure
Each events[] item contains:
| Field | Type | Required | Description |
|---|---|---|---|
content | string | Yes | Event description from carrier. |
location | string | No | Event location (can be empty). |
time | string | Yes | Event timestamp (YYYY-MM-DD HH:mm:ss). |
Example request
curl -X GET "https://api.aquiline-tracking.com/v3/tracking/AQAA123456789YQ" \
-H "X-API-Key: <YOUR_API_KEY>" \
-H "Accept: application/json"
Example response (shipping)
{
"destCountry": "GB",
"oriCountry": "UK",
"status": "Shipping",
"number": "AQUAA8846811125YQ",
"events": [
{
"content": "Package left the courier facility",
"location": "",
"time": "2025-11-20 00:00:00"
}
]
}
Example response (delivered)
{
"destCountry": "US",
"oriCountry": "US",
"status": "Delivered",
"number": "AQUAA3682450326YQ",
"events": [
{
"content": "Package delivered.",
"location": "Marion, VA",
"time": "2026-03-12 17:29:00"
},
{
"content": "OD On Carrier vehicle for delivery",
"location": "CHRISTIANSBURG, VA",
"time": "2026-03-12 11:17:00"
}
]
}
Example response (error)
{
"destCountry": "US",
"oriCountry": "US",
"status": "Error",
"number": "AQUAA1179300126YQ",
"events": [
{
"content": "Your package may be delayed.",
"location": "Mcallen, US",
"time": "2026-01-11 22:55:00"
}
]
}
Observed statuses in production samples
Based on recent operational samples, integrations should handle at least:
| Status | Operational meaning | Typical action |
|---|---|---|
Shipping | Shipment is moving through transit nodes. | Keep customer informed; continue polling or consume webhooks. |
Delivered | Final successful delivery event. | Mark order complete; stop active polling. |
Error | Exception state requiring intervention. | Raise support workflow and exception alerts. |
Cancelled | Shipment was cancelled before final delivery. | Close shipment workflow and reverse downstream commitments. |
Delayed | Shipment still active but behind planned milestone/ETA. | Notify customer, re-check ETA, monitor for exception escalation. |
Recommended client logic
- Treat
statusas the current state snapshot. - Persist
eventsas append-only timeline records for auditability. - Handle unknown future statuses gracefully (do not hard-fail parsing).
- Use webhooks as primary realtime feed; use polling as fallback/reconciliation.
Common error responses
| HTTP | Cause | Response shape |
|---|---|---|
400 | Invalid trackingNumber format | { "error": "Missing or invalid tracking number" } |
401 | Missing/invalid API key | { "error": "Unauthorized" } |
404 | Tracking number not found | { "error": "Not found" } |
5xx | Temporary service issue | { "error": "Service temporarily unavailable" } |
Operational use cases
- Customer shipment pages
- Support dashboards
- Exception management tools
- Reconciliation jobs against external order systems