BYTETOOLS

India Postal PIN Code API

Free India PIN code API with no key: look up post offices, district, state and delivery status for any Indian postal code, or search by name. Tested.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-20

What is the India Postal PIN Code API?

The India Postal PIN Code API is a free, key-free API that resolves any Indian PIN code into its post offices, with branch type, delivery status, district, division and state.

India's postal system maps a single six-digit PIN code to potentially many post offices across an area, which is why this API returns an array rather than one address. That is a genuine difference from Western postcode systems and shapes how you use it.

For address forms the practical pattern is to take the district and state from the first result — those are consistent across the array — and let the user pick the specific post office if you need that granularity.

Quick facts

Base URL
https://api.postalpincode.in
Authentication
No API key required.
Rate limit
No published limit; fair use expected.
Pricing
Free.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the India Postal PIN Code API

Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.

1. Look up an Indian PIN code

GET https://api.postalpincode.in/pincode/110001

curl
curl 'https://api.postalpincode.in/pincode/110001'
JavaScript (fetch)
const res = await fetch("https://api.postalpincode.in/pincode/110001");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.postalpincode.in/pincode/110001", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
[
  {
    "Message": "Number of pincode(s) found:21",
    "Status": "Success",
    "PostOffice": [
      {
        "Name": "Baroda House",
        "Description": null,
        "BranchType": "Sub Post Office",
        "DeliveryStatus": "Non-Delivery",
        "Circle": "Delhi",
        "District": "Central Delhi",
        "Division": "New Delhi Central",
        "Region": "Delhi",
        "Block": "New Delhi",
        "State": "Delhi",
        "Country": "India",
        "Pincode": "110001"
      },
      {
        "Name": "Bengali Market",
        "Description": null,
        "BranchType": "Sub Post Office",
        "DeliveryStatus": "Non-Delivery",
        "Circle": "Delhi",
        "District": "Central Delhi",
        "Division": "New Delhi Central",
        "Region": "Delhi",
        "Block": "New Delhi",
        "State": "Delhi",
        "Country": "India",
        "Pincode": "110001"
      },
      {
        "Name": "Bhagat Singh Market",
        "Description": null,
        "BranchType": "Sub Post Office",
        "DeliveryStatus": "Non-Delivery",
        "Circle": "Delhi",
        "District": "Central Delhi",
        "Division": "New Delhi Central",
        "Region": "Delhi",
        "Block": "New Delhi",
        "State": "Delhi",
        "Country": "India",
        "Pincode": "110001"
      },
      {
        "Name": "Connaught Place",
        "Description": null,
        "BranchType": "Sub Post Office",
        "DeliveryStatus": "Non-Delivery",
        "Circle": "Delhi",
        "District": "Central Delhi",
        "Division": "New Delhi Central",
        "Region":

Parameters

ParameterTypeRequiredDescription
pincode/<code>pathOptionalSix-digit PIN code lookup. pincode/110001
postoffice/<name>pathOptionalSearch post offices by name. postoffice/Baroda%20House

Response fields

[0].Statusstring
Success or Error — check before reading PostOffice.
[0].Messagestring
How many post offices were found.
[0].PostOfficearray
Matching post offices — often several for one PIN.
...Namestring
Post office name.
...BranchTypestring
Head, Sub or Branch Post Office.
...DeliveryStatusstring
Delivery or Non-Delivery office.
...District / State / Divisionstring
Administrative location.

What you can build with the India Postal PIN Code API

  • Autofill district and state from a PIN code in Indian address forms
  • Validate that a PIN code exists before accepting an order
  • Determine serviceability from delivery status
  • Build a post office locator

Common errors and how to fix them

Status: Error

The PIN code does not exist.

Fix: The response is HTTP 200 with Status: Error — check the field, not the status code.

Response is an array wrapping everything

The top level is an array with one element.

Fix: Read response[0].PostOffice rather than response.PostOffice.

Many post offices for one PIN

Indian PIN codes cover areas, not single addresses.

Fix: Take district and state from the first entry; let the user choose the specific office if needed.

India Postal PIN Code API — frequently asked questions

Is there a free India PIN code API?

Yes, api.postalpincode.in resolves PIN codes to post offices, district and state with no API key required.

Why does one PIN code return several post offices?

Indian PIN codes cover a delivery area that can contain multiple post offices. District and state are consistent across them, so take those from the first result.

How do I tell if an address is deliverable?

Each post office has a DeliveryStatus field marking it as a Delivery or Non-Delivery office, which is a useful serviceability signal.

Why does the response start with an array?

The API wraps everything in a single-element array, so read response[0].PostOffice rather than accessing it directly.

Tools that pair with this API

India Postal PIN Code is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.