Voter ID Verification
Identity & KYCValidate an EPIC number and retrieve the registered name and constituency.
Verify a Voter ID (EPIC number) against Election Commission records and receive the registered name, address and constituency. A dependable identity and address signal for candidates without other documents.
Endpoint
Request parameters
| Field | Type | Description |
|---|---|---|
voter_i_d_e_p_i_c_number
required
|
string | Voter ID (EPIC number) |
state
optional
|
string | State |
Example request
curl -X POST https://app.emver.io/api/sandbox/v1/voter-id-verification \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"voter_i_d_e_p_i_c_number": "string",
"state": "string"
}'
import requests
response = requests.post(
"https://app.emver.io/api/sandbox/v1/voter-id-verification",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
},
json={
"voter_i_d_e_p_i_c_number": "string",
"state": "string"
},
timeout=60,
)
response.raise_for_status()
data = response.json()
const response = await fetch("https://app.emver.io/api/sandbox/v1/voter-id-verification", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
"Accept": "application/json",
},
body: JSON.stringify({
"voter_i_d_e_p_i_c_number": "string",
"state": "string"
}),
});
const data = await response.json();
$response = Http::withToken('YOUR_API_KEY')
->acceptJson()
->post('https://app.emver.io/api/sandbox/v1/voter-id-verification', {
"voter_i_d_e_p_i_c_number": "string",
"state": "string"
});
$data = $response->json();
Replace YOUR_API_KEY and the placeholder values. Use the switch above to see production URLs.
Response
Structure · 200
{
"status": INTEGER,
"message": STRING,
"data": {
"verification_status": STRING,
"registered_name": STRING,
"registered_address": STRING,
"constituency": STRING
}
}
Example · 200
{
"status": 200,
"message": "string",
"data": {
"verification_status": "string",
"registered_name": "string",
"registered_address": "string",
"constituency": "string"
}
}
Error · 4xx / 5xx
{
"status": INTEGER,
"message": STRING
}
See Errors & status codes for what each status means and which calls are billed.
About this API
Voter ID remains one of the most widely held identity documents in India, especially among blue-collar and rural workforces. The Voter ID Verification API confirms the EPIC number is genuine and returns the elector's registered details for comparison with what the candidate declared.
Because the record carries a registered address and constituency, it doubles as a lightweight address corroboration when a full physical address verification is not warranted.
Typical uses
- Blue-collar hiring. Identity proof for factory, security and facilities staff.
- Tenant screening. Identity plus registered address for rental onboarding.
- Gig workforce. Alternative ID for partners who cannot provide other documents.
- Financial inclusion KYC. Accepted officially valid document for basic accounts.
Questions
- Is the state field required?
- It is optional but improves match accuracy for older EPIC formats that are not nationally unique.
- Can this replace a physical address check?
- It corroborates the registered address but does not confirm the person currently lives there. For current-residence proof, pair it with emver's digital or physical address verification.
- How current is the data?
- The lookup runs against the electoral roll as published by the Election Commission and reflects the latest revision available.