India Post Tracking API
India Post Tracking API provides real-time tracking information for India Post consignments using a valid tracking number. It returns booking details, shipment movement history, current status, and delivery information. The API supports tracking for Speed Post, Registered Post, and other India Post postal services.
API Details
Request URL
Request Body Parameters
| Type | Name | Optional | Description |
|---|---|---|---|
| String | articleNumber | Required | The 13-digit Article Number for provided By India Post. |
Sample Request Payload
{
"articleNumber": "ET123489567IN"
}
Request Header Parameters
| Type | Name | Value / Description | Optional |
|---|---|---|---|
| String | Content-Type | application/json | Required |
Sample Code
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://g99.in/api/track/indiapost',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"articleNumber": "ET123489567IN"
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
import json
url = "https://g99.in/api/track/indiapost"
payload = json.dumps({
"articleNumber": "ET123489567IN"
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://g99.in/api/track/indiapost");
var content = new StringContent("{\r\n \"articleNumber\": \"ET123489567IN\"\r\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Response
HTTP status code 200
| Key | Type | Description |
|---|---|---|
| article_number | String | Unique India Post tracking number. |
| article_type | String | Type of postal service or article. |
| booking_date | Date | Date and time when the article was booked. |
| booking_office_name | String | Name of the post office where the article was booked. |
| booking_pin | Pincode | PIN code of the booking post office. |
| destination_office_name | String | Name of the destination post office. |
| destination_pincode | Pincode | PIN code of the destination. |
| destination_city | String | Destination city of the article. |
| weight_value | Number | Weight of the article. |
| tariff | Number | Postal charges for the shipment. |
| cod_amount | Number | Cash on Delivery (COD) amount, if applicable. |
| source_country | String | Country of origin. |
| destination_country | String | Destination country. |
| delivery_confirmed_on | Date | Date and time when delivery was confirmed. |
| trackingDetails | Array | Contains the complete shipment tracking history, including the date and time of each tracking event, the post office where it occurred, the event code and status description, office ID, and any additional remarks related to the shipment's movement or delivery. |
Sample Response
Sample response for valid document
{
"bookingDetails": {
"article_number": "ET123489567IN",
"article_type": "SP_INLAND_DOC",
"booking_date": "27-06-2026 16:20:59",
"booking_office_name": "Goa GPO BPC",
"booking_pin": "701101",
"destination_office_name": "Mangalore S.O",
"destination_pincode": "701101",
"destination_city": "Bangalore",
"weight_value": "7",
"tariff": "55.46",
"cod_amount": "0",
"source_country": "INDIA",
"destination_country": "INDIA",
"delivery_confirmed_on": ""
},
"trackingDetails": [
{
"date": "29-06-2026 11:14:36",
"time": "11:14:36",
"office": "Mangalore S.O",
"eventcode": "ITEM_RETURN",
"event": "Item Returned to Sender",
"officeid": "43214321",
"remarks": "No such person in the address"
},
{
"date": "29-06-2026 11:14:36",
"time": "11:14:36",
"office": "Mangalore S.O",
"eventcode": "ITEM_INVOICE",
"event": "Taken out for delivery",
"officeid": "43214321",
"remarks": ""
}
]
}
Error Response
| Parameter | Type | Description |
|---|---|---|
| status | Number | Unique error codes for different errors. Always available. |
| message | String | Error message describing the error. Always Available. |
| error | Boolean | True / False for different errors. Always available. |
Error Codes
| HTTP Status | Error Code | Error Message |
|---|---|---|
| 400 | 4001 | Malformed data or missing required parameter values. |
| 400 | 4002 | Invalid Article Number Found!. |
| 503 | 5001 | Request could not be processed. Please try again later. |
Sample Error Response
{
"message": "Malformed data or missing required parameter values.",
"status": 4001,
"error": True
}