Speed Post Tracking API
Speed Post is the premium domestic express service operated by India Post (Department of Posts). Speed Post consignments share tracking infrastructure with India Post. For full postal network details and registered parcel services, see our India Post Tracking API guide.
Track Speed Post domestic consignments across India with standardized JSON telemetry, transit duration counters, and automated delay flags.
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/speedpost/SP999999999IN"
Sample JSON Response
ClearTrack returns a standardized JSON payload with normalized status enums, milestone timestamps, diagnostic insights, and sanitized checkpoint events:
{
"awb": "SP999999999IN",
"tracking_number": "SP999999999IN",
"carrier": "speedpost",
"status": "in_transit",
"status_text": "Item Dispatched from National Sorting Hub",
"is_delivered": false,
"is_rto": false,
"origin": {
"office": "New Delhi GPO",
"city": "New Delhi",
"state": "Delhi",
"pincode": "110001"
},
"destination": {
"office": "Bengaluru GPO",
"city": "Bengaluru",
"state": "Karnataka",
"pincode": "560001"
},
"estimated_delivery_at": "2026-10-18T18:00:00.000Z",
"delivered_at": null,
"first_scan_at": "2026-10-14T06:30:00.000Z",
"last_location": "Bengaluru National Sorting Hub",
"last_known_location": "Bengaluru National Sorting Hub",
"last_updated_at": "2026-10-16T10:15:00.000Z",
"last_polled_at": "2026-10-16T10:15:00.000Z",
"cached": true,
"stale": false,
"shipment": {
"service_type": "speed_post",
"weight_grams": 320,
"origin": {
"office": "New Delhi GPO",
"city": "New Delhi",
"state": "Delhi",
"pincode": "110001"
},
"destination": {
"office": "Bengaluru GPO",
"city": "Bengaluru",
"state": "Karnataka",
"pincode": "560001"
},
"booked_at": "2026-10-14T06:30:00.000Z"
},
"milestones": {
"booked_at": "2026-10-14T06:30:00.000Z",
"picked_up_at": "2026-10-14T07:00:00.000Z",
"in_transit_at": "2026-10-14T09:45: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.2,
"is_stuck": false,
"is_late_vs_carrier_edd": false,
"delay_days_vs_carrier_edd": null,
"hub_count": 2,
"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-16T10:15:00.000Z",
"status": "in_transit",
"status_text": "Item Dispatched from National Sorting Hub",
"code": "dispatched",
"facility": "Bengaluru National Sorting Hub",
"location": "Bengaluru",
"description": "Item Dispatched from National Sorting Hub"
},
{
"timestamp": "2026-10-14T06:30:00.000Z",
"status": "picked_up",
"status_text": "Item Booked",
"code": "booked",
"facility": "New Delhi GPO",
"location": "New Delhi",
"description": "Item Booked"
}
]
}
Status Mapping: Speed Post to Normalized Status
Raw status updates and checkpoint descriptions emitted by Speed Post are mapped into standardized top-level status values and granular code identifiers:
| Carrier Raw Status | Normalized Status (status) |
Event Code (code) |
Description |
|---|---|---|---|
| Item Booked | picked_up |
booked |
Consignment booked and registered at origin post office counter. |
| Item Bagged | in_transit |
bagged |
Consignment bagged for transit dispatch at booking post office. |
| Item Dispatched / Despatched | in_transit |
dispatched |
Bag or parcel dispatched from sorting hub via mail motor or air transfer. |
| Item Received | in_transit |
received |
Consignment received and scanned at National Sorting Hub (NSH) or delivery post office. |
| Out for Delivery | out_for_delivery |
out_for_delivery |
Consignment dispatched with local postman for doorstep delivery. |
| Item Delivered / Article Delivered | delivered |
delivered |
Consignment successfully delivered to recipient (terminal state). |
| Door Locked / Addressee Absent | returned |
delivery_attempted |
Delivery attempted but failed due to door locked, premises closed, or recipient absent. |
| Item Returned to Sender | returned |
rto_delivered |
Undelivered article returned and handed back to origin booking sender. |
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 | Addressee absent, not available at premises, or unclaimed during holding period. |
address_issue |
Address Issue | Insufficient address, incorrect pin code, or addressee moved. |
refused |
Customer Refused | Addressee refused to accept consignment or refused payment. |
premises_closed |
Premises Closed | Door locked, office closed, or premises inaccessible during postman beat. |
cod_not_ready |
COD Payment Not Ready | Value Payable (VP) / COD cash amount not ready at doorstep. |
other |
Operational Exception | Postal sorting delay, transport connection hold, or local holiday. |
Learn how to automate buyer re-attempt outreach in our NDR Reason Codes Documentation.
AWB Format
Speed Post tracking numbers are 13-character alphanumeric identifiers following the Universal Postal Union (UPU) standard. They typically start with E, C, or S (for example, SP, EM, or EA), followed by 9 digits, and end with the country code IN (for example, SP999999999IN). Pass the 13-character identifier directly into the :awb path parameter.
Frequently Asked Questions
Does Speed Post have an official tracking API?
Speed Post is operated by the Department of Posts (India Post). The department does not provide an open, self-serve public REST tracking API for third-party developers. Automated tracking is typically restricted to high-volume corporate customers via departmental portal feeds or contractual arrangements. ClearTrack provides a standardized REST JSON tracking endpoint for Speed Post consignments without requiring a departmental contract. Note that Speed Post tracking shares tracking telemetry with India Post; see our India Post Tracking API page.
Do I need an India Post or Speed Post account to use ClearTrack?
No. You do not need a Department of Posts account, commercial license, or departmental credentials. ClearTrack queries Speed Post consignment telemetry via your ClearTrack API key.
How fresh is the tracking data?
Active in-transit Speed Post consignments are cached for up to 30 minutes, providing fast response times while protecting against postal server downtime. Terminal states (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.
Which Speed Post tracking numbers can I query?
ClearTrack supports all standard domestic Speed Post article numbers adhering to the 13-character format (2 prefix letters, 9 digits, and the suffix 'IN').
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.