Discover/Gov API
live

Gov APIindiapost.gov.in

Track India Post consignments, money orders, and complaints via 4 endpoints. Get booking details, delivery status, and event timelines by article number or reference.

Endpoint health
verified 6d ago
track_by_reference
track_money_order
track_consignment
3/3 passing latest checkself-healing
Endpoints
4
Updated
21d ago

What is the Gov API?

The India Post API provides 4 endpoints to query tracking data from indiapost.gov.in, covering consignments, money orders, booking references, and complaints. The track_consignment endpoint returns a full event timeline alongside booking metadata including origin office, destination, weight, and tariff. Responses always include the structural envelope, so null-checking on individual fields is necessary when an item has not yet entered the tracking system.

Try it
India Post consignment/article number in format XX123456789XX (2 uppercase letters + 9 digits + 2 uppercase letters, e.g. EE123456789IN)
api.parse.bot/scraper/8de3ccc8-6d51-44d6-b6cf-a6eb5a9ce092/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/8de3ccc8-6d51-44d6-b6cf-a6eb5a9ce092/track_consignment?consignment_number=EE123456789IN' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace indiapost-gov-in-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: India Post Tracking — track consignments, money orders, and references."""
from parse_apis.india_post_tracking_api import IndiaPost, Consignment, MoneyOrder, ConsignmentNotFound

client = IndiaPost()

# Track a consignment by its article number
consignment = client.consignments.get(consignment_number="EE123456789IN")
print(consignment.consignment_number, consignment.delivery_status.del_status)

# Access booking details
booking = consignment.booking_details
print(booking.tariff, booking.destination_city, booking.source_country)

# Track a money order by its number
mo = client.moneyorders.get(money_order_number="1234567890")
print(mo.money_order_number, mo.tracking_data.booking_details.payment_location)

# Iterate tracking events on the money order
for event in mo.tracking_data.tracking_details:
    print(event.date, event.office, event.event)

# Track consignments by a booking reference
ref = client.referenceresults.get(reference_number="REF202401001")
print(ref.reference_number, ref.articles)

# Typed error handling for a not-found consignment
try:
    detail = client.consignments.get(consignment_number="XX000000000XX")
    print(detail.consignment_number)
except ConsignmentNotFound as exc:
    print(f"not found: {exc.consignment_number}")

print("exercised: consignments.get / moneyorders.get / referenceresults.get / tracking_details iteration")
All endpoints · 4 totalmissing one? ·

Track a consignment/article by its tracking number. Returns booking details (origin, destination, weight, tariff), delivery status, and a timeline of tracking events from India Post's system. Accepts standard India Post article numbers in XX123456789XX format. The response always contains the structural envelope; fields within booking_details may be null for numbers not yet in the system.

Input
ParamTypeDescription
consignment_numberrequiredstringIndia Post consignment/article number in format XX123456789XX (2 uppercase letters + 9 digits + 2 uppercase letters, e.g. EE123456789IN)
Response
{
  "type": "object",
  "fields": {
    "booking_details": "object containing article_number, article_type, booking_date, booking_office_name, booking_pin, destination_office_name, destination_pincode, destination_city, weight_value, tariff, cod_amount, source_country, destination_country, delivery_confirmed_on",
    "delivery_status": "object containing del_status field indicating current delivery state",
    "tracking_details": "array of tracking event objects or null if no events available",
    "consignment_number": "string, the tracked consignment number"
  },
  "sample": {
    "data": {
      "booking_details": {
        "tariff": "0",
        "cod_amount": "0",
        "booking_pin": null,
        "article_type": null,
        "booking_date": null,
        "weight_value": null,
        "article_number": null,
        "source_country": null,
        "destination_city": null,
        "booking_office_name": null,
        "destination_country": null,
        "destination_pincode": null,
        "delivery_confirmed_on": null,
        "destination_office_name": null
      },
      "delivery_status": {
        "del_status": "auto"
      },
      "tracking_details": null,
      "consignment_number": "EE123456789IN"
    },
    "status": "success"
  }
}

About the Gov API

Consignment and Reference Tracking

The track_consignment endpoint accepts a single consignment_number in the standard India Post format — two uppercase letters, nine digits, two uppercase letters (e.g., EE123456789IN). It returns three top-level objects: booking_details (article type, booking date, booking office name and PIN, destination office name and PIN), delivery_status (a del_status string reflecting the current state), and tracking_details (an array of timestamped transit events, or null if the article has not yet generated events). The track_by_reference endpoint accepts an alphanumeric reference number up to 23 characters, including / and -, and returns an articles array listing all article identifiers linked to that reference — useful when a single dispatch contains multiple items.

Money Order and Complaint Tracking

The track_money_order endpoint accepts a money_order_number of exactly 10 or 18 digits. Its response wraps a tracking_data object containing booking_details (fields: pnr_no, booked_at, booked_on, payment_location, payment_confirmed_on) and a tracking_details array covering the money order's transit stages. Like consignment tracking, the envelope is always present even when fields are null for numbers not yet registered in the system. The track_complaint endpoint takes a complaint_id string and returns the associated complaint_data object from India Post's complaint system, enabling programmatic status checks on filed service complaints.

Data Freshness and Null Handling

All four endpoints return a consistent outer envelope regardless of whether the queried item exists or has events. Callers should defensively handle null values in tracking_details arrays and nested booking fields. The del_status field in delivery_status is the canonical field to check for current delivery state on consignments. Event timestamps and office names within the tracking arrays reflect whatever India Post's system has recorded at query time — there is no separate field for expected delivery date.

Reliability & maintenanceVerified

The Gov API is a managed, monitored endpoint for indiapost.gov.in — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when indiapost.gov.in changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official indiapost.gov.in API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
6d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Poll track_consignment to send automated delivery notifications when del_status changes
  • Build a bulk tracking dashboard by iterating a list of article numbers through track_consignment
  • Resolve a booking reference to all its constituent articles using track_by_reference before tracking each individually
  • Monitor money order payment confirmation by checking payment_confirmed_on via track_money_order
  • Automate complaint status checks for customer support queues using track_complaint with stored complaint IDs
  • Log the full transit event timeline from tracking_details for SLA analysis on domestic postal routes
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does India Post have an official public developer API?+
India Post does not publish a documented public developer API for consignment or money order tracking. The indiapost.gov.in website offers a tracking interface for end users, but there is no official REST API with keys, documentation, or SLA commitments available to developers.
What does `track_consignment` return when a consignment number exists but has no transit events yet?+
The endpoint always returns the full response envelope including booking_details and delivery_status. The tracking_details field will be null rather than an empty array when no transit scan events have been recorded yet. del_status inside delivery_status will still reflect whatever state India Post has assigned at booking time.
Can I retrieve the expected delivery date or estimated arrival for a consignment?+
Not currently. The API returns booking_details, delivery_status, and timestamped tracking_details events, but no estimated delivery date field is exposed. You can fork this API on Parse and revise it to add an endpoint targeting whichever India Post page surfaces delivery estimates.
Does the API support tracking international inbound articles sent to India?+
The track_consignment endpoint accepts standard India Post article numbers, which include international articles arriving in India (format XX123456789IN). However, event coverage for international items depends entirely on what India Post's system has recorded after customs handover — outbound international tracking from the destination country's postal system is not covered. You can fork this API on Parse and revise it to chain calls to a destination country's tracking API.
Is there a way to track multiple consignments in a single API call?+
The track_consignment endpoint accepts one consignment number per request. Bulk tracking requires iterating over a list of article numbers and making individual calls. The track_by_reference endpoint can retrieve all article numbers under one booking reference, but each article still needs a separate track_consignment call for its event timeline. You can fork this API on Parse and revise it to add a batch endpoint that fans out and aggregates results.
Page content last updated . Spec covers 4 endpoints from indiapost.gov.in.
Related APIs in Government PublicSee all →
track.ukrposhta.ua API
Track parcels sent through Ukrposhta by looking up individual shipments or monitoring multiple packages at once to get real-time delivery status and tracking information. Access detailed tracking page metadata to stay informed about your parcels' locations and delivery progress.
dhl.com API
Track DHL shipments worldwide by entering a tracking number to retrieve real-time status updates, delivery location details, product information, and a complete history of all shipment events. Monitor packages from origin to destination with comprehensive tracking data.
enquiry.indianrail.gov.in API
Search for trains between Indian stations, check schedules, and look up station details to plan your rail journeys. Get real-time train information with support for captcha-protected searches to ensure reliable access to Indian Railways data.
tracker.shadowfax.in API
Track Shadowfax shipments in real-time and monitor delivery status, while accessing the company's latest blogs and website configuration details. Validate tracking IDs and retrieve up-to-date content and header announcements from the Shadowfax platform.
fedex.com API
Access data from fedex.com.
tradeindia.com API
Search and discover products, suppliers, and their contact information on TradeIndia's B2B marketplace. Browse product categories, find supplier profiles, and explore upcoming tradeshows and industry events — including locations, dates, venues, and organizer details.
railyatri.in API
Search trains between stations and get real-time information including live train status, timetables, seat availability, and PNR confirmation details. Find the perfect journey by autocompleting station and train names while checking current availability and train schedules.
tradestat.commerce.gov.in API
Analyze India's trade patterns by searching export-import data across commodities, countries, and regions using HS codes and historical records. Track bilateral trade flows and commodity-wise statistics to understand market trends and make informed trade decisions.