Postal PIN Code API: Get PIN code post offices
Looks up an Indian six-digit PIN code and lists its post offices with branch type, delivery status and postal area.
Unofficial. Not affiliated with or endorsed by Postal PIN Code.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Pin Code, required
pin_code Indian six-digit PIN code, for example 110001.
110001
Exactly 6 characters.
Input as JSON
{ "pin_code": "110001"}Output
{ "pin_code": "110001", "post_offices": [ { "state": "Delhi", "circle": "Delhi", "region": "Delhi", "country": "India", "district": "Central Delhi", "division": "New Delhi Central", "page_url": "https://api.postalpincode.in/pincode/110001" , "pin_code": "110001", "branch_type": "sub office", "delivery_status": "non-delivery", "post_office_name": "Baroda House" }, { "state": "Delhi", "circle": "Delhi", "region": "Delhi", "country": "India", "district": "Central Delhi", "division": "New Delhi Central", "page_url": "https://api.postalpincode.in/pincode/110001" , "pin_code": "110001", "branch_type": "sub office", "delivery_status": "non-delivery", "post_office_name": "Bengali Market" }, { "state": "Delhi", "circle": "Delhi", "region": "Delhi", "country": "India", "district": "Central Delhi", "division": "New Delhi Central", "page_url": "https://api.postalpincode.in/pincode/110001" , "pin_code": "110001", "branch_type": "sub office", "delivery_status": "non-delivery", "post_office_name": "Bhagat Singh Market" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"postalpincode.in/get_pin_code","input":{"pin_code":"110001"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "postalpincode.in/get_pin_code" , "input": { "pin_code": "110001" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "postalpincode.in/get_pin_code" , "input": { "pin_code": "110001" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run postalpincode.in/get_pin_code# with {"pin_code":"110001"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "pin_code" ], "properties": { "pin_code": { "type": "string", "maxLength": 6, "minLength": 6, "description": "Indian six-digit PIN code, for example 110001." } }, "additionalProperties": false}Output schema
{ "type": "object", "required": [ "pin_code", "post_offices" ], "properties": { "pin_code": { "type": "string", "description": "The looked-up six-digit PIN code." }, "post_offices": { "type": "array", "items": { "type": "object", "required": [ "pin_code", "post_office_name", "branch_type", "delivery_status", "district", "division", "region", "circle", "state", "country", "page_url" ], "properties": { "state": { "type": [ "string", "null" ], "description": "State or union territory." }, "circle": { "type": [ "string", "null" ], "description": "Postal circle." }, "region": { "type": [ "string", "null" ], "description": "Postal region." }, "country": { "type": [ "string", "null" ], "description": "Country." }, "district": { "type": [ "string", "null" ], "description": "District served by the post office." }, "division": { "type": [ "string", "null" ], "description": "Postal division." }, "page_url": { "type": "string", "description": "Public link to this PIN code and its offices." }, "pin_code": { "type": "string", "description": "Six-digit PIN code for this post office." }, "branch_type": { "type": [ "string", "null" ], "description": "Head office, sub office, or branch office." }, "delivery_status": { "type": [ "string", "null" ], "description": "Delivery or non-delivery." }, "post_office_name": { "type": [ "string", "null" ], "description": "Name of the post office." } }, "additionalProperties": false }, "description": "Post offices assigned to this PIN code." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
postalpincode.in/get_pin_code- Returns
- post offices with name, branch type, delivery status, district, division, region, circle, state and country
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method postalpincode.in/get_pin_code with the inputs above.
Ask your agent
- What post offices serve PIN code 110001 in Delhi, and are they delivery or sub offices?
- Show me the branch types and delivery status of every post office under pincode 400001.
- Which district, division and circle does the postal code 560034 belong to?
- I need the list of post offices for PIN 682016 along with their state and region.
- On postalpincode.in, look up 302001 and tell me which branch offices there deliver mail.
See more
All Postal PIN Code methodsFinds Indian post offices matching a place name, with PIN codes, branch types, delivery statuses, districts and states. Optionally narrows by state or district.
postalpincode.in/search_pin_codesLooks up the places, regions and coordinates for a postal code in a supported country on Zippopotam.us.
zippopotam.us/get_postal_codeLooks up a UK postcode on Postcodes.io, including its location, administrative areas and whether it is still in use. Retired postcodes return location and retirement year only.
postcodes.io/get_postcodeFinds postal codes, place names and coordinates for a town and state or region in a country covered by Zippopotam.us.
zippopotam.us/search_postal_codesFinds the public location and network operator of an IPv4 or IPv6 address. Private and reserved addresses have no public location.
ipinfo.io/get_ip_locationLists UK postcodes nearest to a postcode or named place, with distance, ward, council and coordinates. For places sharing a name, a city or town is preferred.
postcodes.io/list_nearby_postcodesFinds the neighbourhood policing team for a UK postcode (England, Wales, Northern Ireland) with its force, contacts, officers, priorities and upcoming events.
police.uk/get_neighbourhood_teamMatches a US street address and returns its city or place, county, state, ZIP code, census tract, congressional and state legislative districts, coordinates and FIPS codes. Districts follow the Census Geocoder's current geography vintage and may differ from sitting representation.
census.gov/get_address_details