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

POST
https://g99.in/api/track/indiapost
Copied!

Request Body Parameters

Type Name Optional Description
String articleNumber Required The 13-digit Article Number for provided By India Post.

Sample Request Payload

request.json
Copied!
{
  "articleNumber": "ET123489567IN"
}

Request Header Parameters

Type Name Value / Description Optional
String Content-Type application/json Required

Sample Code

request.php
Copied!
$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;
request.py
Copied!
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)
request.cs
Copied!
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

response.json
Copied!
{
    "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

response.json
Copied!
{
  "message": "Malformed data or missing required parameter values.",
  "status": 4001,
  "error": True
}