Delhivery Tracking API
Track Delhivery surface and express consignments via standardized REST JSON endpoints with automated NDR reason classification and stuck shipment detection.
cURL Integration Example
Query live consignment tracking data by passing your ClearTrack API key in the X-API-Key request header:
curl -s -H "X-API-Key: YOUR_API_KEY" \
"https://api.cleartrackpromise.in/v1/track/delhivery/9990001112233"
Sample JSON Response
ClearTrack returns a standardized JSON payload with normalized status enums, milestone timestamps, diagnostic insights, and sanitized checkpoint events:
{
"awb": "9990001112233",
"tracking_number": "9990001112233",
"carrier": "delhivery",
"status": "in_transit",
"status_text": "In Transit - Dispatched to Destination Hub",
"is_delivered": false,
"is_rto": false,
"origin": {
"office": "Gurugram Gateway",
"city": "Gurugram",
"state": "Haryana",
"pincode": "122001"
},
"destination": {
"office": "Sanathal Facility",
"city": "Ahmedabad",
"state": "Gujarat",
"pincode": "382210"
},
"estimated_delivery_at": "2026-10-18T18:00:00.000Z",
"delivered_at": null,
"first_scan_at": "2026-10-14T08:00:00.000Z",
"last_location": "Ahmedabad Sorting Hub",
"last_known_location": "Ahmedabad Sorting Hub",
"last_updated_at": "2026-10-16T11:20:00.000Z",
"last_polled_at": "2026-10-16T11:20:00.000Z",
"cached": true,
"stale": false,
"shipment": {
"service_type": "surface",
"weight_grams": 820,
"origin": {
"office": "Gurugram Gateway",
"city": "Gurugram",
"state": "Haryana",
"pincode": "122001"
},
"destination": {
"office": "Sanathal Facility",
"city": "Ahmedabad",
"state": "Gujarat",
"pincode": "382210"
},
"booked_at": "2026-10-14T08:00:00.000Z"
},
"milestones": {
"booked_at": "2026-10-14T08:00:00.000Z",
"picked_up_at": "2026-10-14T09:15:00.000Z",
"in_transit_at": "2026-10-14T12:30:00.000Z",
"out_for_delivery_at": null,
"first_attempt_at": null,
"delivered_at": null,
"rto_initiated_at": null,
"rto_delivered_at": null
},
"delivery_attempts": {
"count": 0,
"attempts": []
},
"insights": {
"transit_days_elapsed": 2.1,
"hours_since_last_scan": 3.8,
"is_stuck": false,
"is_late_vs_carrier_edd": false,
"delay_days_vs_carrier_edd": null,
"hub_count": 3,
"current_stage": "in_transit",
"requires_attention": false,
"attention_reason": null,
"benchmark": {
"median_transit_days_for_route": null,
"sample_size": null,
"expected_delivery_by": null
}
},
"events": [
{
"timestamp": "2026-10-16T11:20:00.000Z",
"status": "in_transit",
"status_text": "In Transit - Dispatched to Destination Hub",
"code": "dispatched",
"facility": "Ahmedabad Sorting Hub",
"location": "Ahmedabad",
"description": "In Transit - Dispatched to Destination Hub"
},
{
"timestamp": "2026-10-14T09:15:00.000Z",
"status": "picked_up",
"status_text": "Picked Up from Seller",
"code": "picked_up",
"facility": "Gurugram Gateway",
"location": "Gurugram",
"description": "Picked Up from Seller"
}
]
}
Status Mapping: Delhivery to Normalized Status
Raw status updates and checkpoint descriptions emitted by Delhivery are mapped into standardized top-level status values and granular code identifiers:
| Carrier Raw Status | Normalized Status (status) |
Event Code (code) |
Description |
|---|---|---|---|
| Manifested / Order Created / Pending | awaiting_pickup |
booked |
Order manifested in Delhivery system; pending collection from merchant warehouse. |
| Picked Up / Inscan | picked_up |
picked_up |
Consignment physically collected and scanned at origin processing facility. |
| In Transit / Dispatched | in_transit |
dispatched |
Package moving between transshipment sorting hubs and line-haul facilities. |
| Out for Delivery | out_for_delivery |
out_for_delivery |
Package loaded onto delivery vehicle for final-mile delivery attempt. |
| Delivered | delivered |
delivered |
Consignment successfully delivered to destination address (terminal state). |
| Undelivered / Failed Attempt | returned |
delivery_attempted |
Delivery attempted but failed due to customer unavailable, door locked, or address issue. |
| Not Picked: Order cancelled by seller | cancelled |
exception |
Order cancelled prior to physical collection; classified as cancelled terminal state. |
| Return to Origin (RTO) | returned |
rto_initiated |
Consignment reversed for return delivery to shipper origin warehouse. |
For the comprehensive lifecycle specification across all couriers, see the Shipment Statuses Reference.
Non-Delivery Report (NDR) Reasons
When delivery attempts fail, ClearTrack normalizes unstructured failure remarks into canonical NDR reason codes inside the delivery_attempts array:
| Normalized Reason Code | Diagnostic Category | Meaning |
|---|---|---|
customer_unavailable |
Customer Unavailable | Recipient not available, absent from delivery address, or phone unreachable. |
address_issue |
Address Issue | Incomplete street address, missing landmark, incorrect house number, or invalid pin code. |
refused |
Customer Refused | Recipient refused to accept package or rejected COD verification at doorstep. |
premises_closed |
Premises Closed | Office, commercial premises, or residential entrance locked at time of attempt. |
cod_not_ready |
COD Payment Not Ready | Cash on delivery payment not ready or digital doorstep collection failed. |
other |
Operational Exception | Carrier operational constraint, route delay, or weather hold. |
Learn how to automate buyer re-attempt outreach in our NDR Reason Codes Documentation.
AWB Format
Delhivery air waybill (AWB) numbers are numeric identifiers consisting of 12, 13, or 14 digits (for example, 9990001112233). Standard domestic consignments commonly use 12 or 13 digits, while extended freight and express consignments feature 14 digits. ClearTrack accepts all valid Delhivery AWB formats in the :awb path parameter.
Frequently Asked Questions
Does Delhivery have an official tracking API?
Delhivery provides shipping and tracking APIs for merchants and enterprise customers with direct contracts. These integrations require commercial contracting, merchant account setup, and API token generation. ClearTrack provides a unified REST tracking endpoint that normalizes Delhivery consignments alongside other carriers without requiring a direct carrier account.
Do I need a Delhivery account to use ClearTrack?
No. You do not need a direct corporate contract or merchant account with Delhivery. You can query any active Delhivery AWB using your ClearTrack API key.
How fresh is the tracking data?
Active in-transit shipments are cached for up to 30 minutes, ensuring sub-second response times while avoiding upstream rate limiting. Terminal statuses (delivered, returned, and cancelled) are cached permanently.
What does the tracking API cost?
Pricing is pay-as-you-go based on lookups in Indian Rupees (₹), ranging from ₹0.25 to ₹0.27 per lookup across prepaid plans with no recurring mandates. We offer a free 14-day trial with 100 lookups for business accounts. View our full pricing plans on the pricing page.
How does ClearTrack handle Delhivery orders cancelled before pickup?
ClearTrack parses carrier cancellation signals (such as "Not Picked: Order cancelled by the seller") and maps them to terminal status "cancelled" and current stage "cancelled", ensuring they are not flagged as stuck shipments.
Prepaid Pricing in Indian Rupees (₹)
Simple prepaid lookup packs with no monthly auto-debit mandates, no foreign currency conversion fees, and no contract lock-ins:
Supported Logistics Networks
Track other Indian parcel couriers using the same unified JSON API format:
For a multi-carrier integration overview, read our guide to the Shipment Tracking API in India.
ClearTrack is not affiliated with, endorsed by, or sponsored by any courier company. All trademarks belong to their respective owners.