Docs / Places and transport
Address reader API
A free-text Indian address split into house, street, locality, city, state and pincode, checked.
Splits a written address into its parts and checks the pincode against the post office list: a pincode in another state, or a city that is not near the pincode, is flagged. Rules, not a model. What you send is never logged.
https://api.dharun.devNo key needed for most600 units a minute, 3000 with a free keyThis page as MarkdownRead an Indian address
GET/v1/address/parsePOST
Also takes POST: The address, as text/plain or JSON {"text": "..."}. Send it as text/plain, or as JSON {"text": "..."} with the other options beside it, up to 256 KB.
What you send here is never written to the log, and the answer is not cached.
| Parameter | Description |
|---|---|
textquery | The address. |
curl
curl "https://api.dharun.dev/v1/address/parse?text=12%2C%20Anna%20Salai%2C%20Mount%20Road%2C%20Chennai%2C%20Tamil%20Nadu%20600002&utm_medium=docs"JavaScript
const response = await fetch("https://api.dharun.dev/v1/address/parse?text=12%2C%20Anna%20Salai%2C%20Mount%20Road%2C%20Chennai%2C%20Tamil%20Nadu%20600002&utm_medium=docs");
const body = await response.json();
if (!response.ok) throw new Error(body.error.message);
console.log(body.data);Python
import requests
response = requests.get("https://api.dharun.dev/v1/address/parse?text=12%2C%20Anna%20Salai%2C%20Mount%20Road%2C%20Chennai%2C%20Tamil%20Nadu%20600002&utm_medium=docs", timeout=10)
body = response.json()
if not response.ok:
raise RuntimeError(body["error"]["message"])
print(body["data"])Try it here
Change the values and send the request from your browser. Needs JavaScript.
Response
{
"data": {
"input": "12, Anna Salai, Mount Road, Chennai, Tamil Nadu 600002",
"house": "12",
"street": "Anna Salai",
"locality": "Mount Road",
"city": "Chennai",
"district": "Chennai",
"state": "Tamil Nadu",
"pincode": "600002",
"pincodeChecked": true,
"postOffices": [
"Anna Road H.O",
"Chintadripet",
"MADRAS ELECTRICITY SYSTEM"
],
"warnings": []
},
"meta": {
"source": {
"name": "All India Pincode Directory",
"url": "https://www.data.gov.in/resource/all-india-pincode-directory-till-last-month",
"licence": "Government Open Data License - India (GODL)",
"version": "23760720 bytes",
"retrieved": "2026-10-13",
"attribution": "Contains data from the All India Pincode Directory, Department of Posts, published on data.gov.in under the Government Open Data License - India."
},
"note": "Read by rules, not a model: the parts are guesses from commas and common words, checked against the pincode. What you send is never logged."
}
}Data source
All India Pincode Directory, 23760720 bytes. Retrieved 2026-10-13. Licence: Government Open Data License - India (GODL). Contains data from the All India Pincode Directory, Department of Posts, published on data.gov.in under the Government Open Data License - India.
Using an AI assistant? Connect the MCP server and it can call this API by itself. Want every endpoint on one bench? Open the playground.