Quick start
Send a GET request to a supported endpoint. Successful responses use the stable V1 envelope with success, endpoint-specific data, and request or release information in meta.
curl --fail --show-error --max-time 10 "https://api.pincodeapi.in/api/v1/pincode/751001" Current response contract
{
"success": true,
"data": {
"pincode": "751001",
"post_offices": [ ... ]
},
"meta": {
"api_version": "v1",
"dataset_version": "2026-06-27",
"release_id": "...",
"request_id": "...",
"count": 4
}
}The public V1 field names use snake case, including office_name, office_type, delivery_status, state and stable *_slug fields. Source CSV names such as officename and statename are not the API response contract.
See the complete response field guide.
Public endpoints
| Purpose | Endpoint |
|---|---|
| PIN code lookup | /pincode/{pincode} |
| State lookup | /state/{state} |
| District lookup | /district/{district} |
| Search | /search?q={query} |
| Health | /health |
See request examples and endpoint guidance.
Search example
GET https://api.pincodeapi.in/api/v1/search?q=BhubaneswarSearch can return several matching postal records. Check the returned office name, PIN code, district and state before using a result.
Current public rate limit
The current public limit is 6 API calls per 10 seconds per IP address. A client that exceeds the limit can receive 429 Too Many Requests.
Read the rate-limit and fair-use guidance.
Errors
Errors use application/problem+json and stable machine-readable codes. Use HTTP status and/or the code field rather than matching human-readable error text.
See error codes and recommended client actions.
Machine-readable specification
Use the OpenAPI JSON or OpenAPI YAML with tools that support OpenAPI.