Discover/Gov API
live

Gov APIindiapost.gov.in

Track India Post consignments, money orders, and booking references. Get delivery status, booking details, and full event timelines via 3 endpoints.

Endpoint health
verified 4h ago
track_consignment
track_money_order
track_by_reference
2/3 passing latest checkself-healing
Endpoints
3
Updated
9d ago

What is the Gov API?

The India Post API provides 3 endpoints to retrieve tracking data from indiapost.gov.in, covering consignments, money orders, and booking references. The track_consignment endpoint returns a full event timeline, booking office details, destination pin codes, weight, tariff, and current delivery status for any India Post article number in the standard XX123456789XX format.

This call costs2 credits / call— charged only on success
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 · 3 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

Endpoints and Data Covered

The track_consignment endpoint accepts an article number in the XX123456789XX format (2 uppercase letters + 9 digits + 2 uppercase letters) and returns a booking_details object with fields including article_number, article_type, booking_date, booking_office_name, booking_pin, destination_office_name, and the destination pin. It also returns a delivery_status object with a del_status field reflecting the current state, and a tracking_details array of timestamped transit events. If no events have been recorded yet, tracking_details is null rather than an error.

Money Orders and References

The track_money_order endpoint accepts a 10-digit or 18-digit money order number and returns a tracking_data object containing booking_details (with fields pnr_no, booked_at, booked_on, payment_location, and payment_confirmed_on) alongside a tracking_details array of movement events. Fields may be null for numbers not yet registered in the system, but the response envelope is always present. The track_by_reference endpoint takes an alphanumeric reference number (up to 23 characters, allowing / and -) and returns an articles array listing every article identifier tied to that reference — useful when a single booking reference covers multiple items.

Known Behavior and Limitations

All three endpoints always return a consistent response envelope regardless of whether the queried number exists in India Post's system. For consignments and money orders, nulls are used in place of missing fields rather than HTTP error codes, so callers should check individual fields rather than relying solely on status codes. Tracking event arrays reflect India Post's own recorded scan points, which vary in granularity depending on the article type and route.

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
4h ago
Latest check
2/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
  • Display real-time delivery status and scan history for India Post shipments in an e-commerce order management dashboard
  • Notify customers automatically when del_status changes on a tracked consignment number
  • Resolve a booking reference to its associated article numbers before initiating per-article tracking
  • Verify money order payment confirmation using payment_confirmed_on and payment_location fields
  • Audit shipping costs and article types by retrieving tariff and article_type from booking_details
  • Build a bulk shipment monitor by iterating article numbers returned from track_by_reference
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does India Post offer an official developer API?+
India Post does not publish a documented public developer API with keys, versioning, or an official developer portal. The tracking functionality is available through indiapost.gov.in's web interface. This Parse API provides structured programmatic access to the same data.
What does track_consignment return for an article number that hasn't been scanned yet?+
The response always includes the booking_details and delivery_status objects populated with whatever India Post has recorded at booking time. The tracking_details field will be null rather than an empty array when no transit scan events have been logged yet.
Can I look up complaint or grievance status through this API?+
Not currently. The API covers consignment tracking, money order tracking, and booking reference lookups. Complaint or grievance status is not exposed by any of the three endpoints. You can fork this API on Parse and revise it to add a complaint-status endpoint.
Does track_money_order work for all money order number lengths?+
The endpoint accepts numbers that are exactly 10 digits or exactly 18 digits. Numbers outside those lengths will not be accepted. There is no support for partial or wildcard number lookups; the full number is required.
Can I retrieve sender or recipient name and address from a consignment?+
Not currently. The booking_details object covers office names, pin codes, article type, tariff, and booking date, but does not expose sender or recipient personal details. You can fork this API on Parse and revise it to surface any additional fields if they become available from the source.
Page content last updated . Spec covers 3 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.
ups.com API
Track your UPS shipments in real-time by entering a tracking number to get current delivery status, estimated arrival dates, and detailed location milestones. View the complete activity history of your package from pickup through delivery to stay informed every step of the way.
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.
irctc.co.in API
Search for trains between Indian Railway stations and instantly check fares, seat availability, and schedules all in one place. Book your journey with real-time information about train options and pricing through IRCTC Railway data.
tracktrace.dpd.com.pl API
Track your DPD Poland parcels in real-time using parcel numbers, reference numbers, awizo/drop-off numbers, or order numbers to get up-to-date delivery status and location information. Monitor multiple shipments and receive detailed tracking data to stay informed about your package's journey.