Developer Documentation
Server-to-server JSON APIs with per-request wallet billing. API prices and rate limits are controlled by Admin.
Authentication
Send your API key using the X-API-Key header or Authorization: Bearer ....
Billing
Every service has an Admin-controlled price. By default requests are charged only when a lookup returns a successful result. Responses include charged and the remaining wallet balance.
PIN Code API
GET /api/v1/pincode/{pincode}
IFSC API
GET /api/v1/ifsc/{ifsc}
Post Office → PIN Search
GET /api/v1/postoffice/search?q=Pusa&district=Samastipur&state=Bihar
Search the locally synced Department of Posts directory by office/area name.
District → PIN Codes
GET /api/v1/district/pincodes?district=Samastipur&state=Bihar
Returns distinct PIN codes available in the synced district directory.
PAN → GST API
GET /api/v1/pan-gst/{pan}
Returns GST registration number(s) linked to the supplied valid PAN. One PAN can have multiple GST registrations across states.
GST Details API
GET /api/v1/gst/{gstin}
Returns normalized public taxpayer details made available by the configured authorized GST/GSP provider.
Company / CIN APIs
GET /api/v1/company/cin/{cin}
Returns MCA Company Master fields from local cache/import or the configured open-data source.
Company Name Search
GET /api/v1/company/search?q=Company Name&limit=20
Partial-name search works against locally imported/cached Company Master rows. Exact-name OGD lookup is used as fallback when available.
Bank Branch / MICR APIs
GET /api/v1/bank/branches?bank=SBI&state=Bihar&city=Patna
Searches the same local IFSC master directory used by the IFSC endpoint.
MICR Lookup
GET /api/v1/micr/{9-digit-micr}
LGD Geography APIs
These endpoints use locally imported/synced Local Government Directory master tables.
District codes
/api/v1/lgd/districts
Sub-District codes
/api/v1/lgd/subdistricts
Village codes
/api/v1/lgd/villages
Village → PIN
GET /api/v1/village/pincode?village=Pusa&district=Samastipur&state=Bihar
You can also pass village_code for an exact LGD-code lookup.
Local Bodies
/api/v1/lgd/local-bodies
Local Body → PIN
GET /api/v1/localbody/pincode?name=Panchayat&district=Samastipur&state=Bihar
You can also pass local_body_code for an exact LGD-code lookup.
Mandi Price API
GET /api/v1/mandi?commodity=Onion&state=Bihar&limit=20
Returns current daily wholesale market observations from the Government OGD/AGMARKNET resource, including arrival date and min/max/modal prices.
Air Quality API
GET /api/v1/air-quality?city=Patna&pollutant=PM2.5
Returns CPCB OGD pollutant readings by state/city/station/pollutant where available.
One District One Product API
GET /api/v1/odop?state=Bihar&district=Samastipur
Uses local ODOP import first; an OGD resource UUID can also be configured in Admin → Open Data.
Local Validators
Validators do not query identity/account databases. They only validate syntax/checksum locally and therefore require no CAPTCHA or upstream provider.
GSTIN checksum
Format + base-36 GSTIN checksum validation.
Aadhaar checksum
12-digit Verhoeff checksum only; no UIDAI identity lookup.
IFSC format
Syntax only.
Vehicle number format
Common state/RTO and BH-series syntax only.
UPI ID syntax
VPA syntax only; no bank/account-holder verification.
Voter ID / EPIC API
Two-step ECI Electoral Search flow. CAPTCHA is always shown to and solved by the human API user; APIDATA does not solve or bypass it. The session expires after a short TTL.
Step 1 — Fetch CAPTCHA
POST /api/v1/voter/init
Returns session_id, a base64 PNG captcha_image, and expiry seconds. Optional request field: state.
Step 2 — Submit human-entered CAPTCHA
POST /api/v1/voter/verify
The verify step is billed only on success when charge_on_success is enabled. Price and rate limits remain Admin-controlled.
EPIC format validator
GET /api/v1/validate/epic/ABC1234567
Format-only validation: 3 letters + 7 digits. It does not confirm electoral-roll existence.
Integration examples
PHP
Node.js
Python
HTTP errors
| Code | Meaning |
|---|---|
| 401 | Missing/invalid API key |
| 402 | Insufficient wallet balance |
| 404 | Lookup not found |
| 422 | Invalid input or missing required filter |
| 429 | Rate limit exceeded |
| 502 | Configured upstream provider failed |
| 503 | Service disabled or required upstream/open-data connector not configured |