Live & Active

ZeroAPI Developer Docs

Fast, reliable REST APIs for identity, vehicle, and government data verification. Get started in minutes with any language.

99.9% Uptime SLA
<2s Avg Response
REST API Type
BASE URL https://yourdomain.com/api/

Overview

ZeroAPI provides REST endpoints for PAN, Aadhaar, RC, DL, GST, and more. Every request is authenticated with your API key and billed against your wallet balance.

📡 Protocol

All requests use HTTPS over REST. Responses are JSON-encoded (UTF-8).

🔑 Auth Method

Pass your api_key as a query parameter on every request.

📦 Response Format

All responses return a status field — "200" for success. Any other value indicates an error.

💳 Billing

Fees are deducted from your wallet on successful calls only. Failed lookups are not charged.

💡 Always use HTTPS. Recharge your wallet from the dashboard before making paid calls.

Authentication

Every API request must include your API key. Get it from your dashboard under My API.

🔐 How to pass your API key

Append api_key as a query parameter to any endpoint URL:

https://yourdomain.com/api/balance ? api_key = YOUR_•••••••••••KEY
⚠️ Never expose your API key in frontend JavaScript or public repositories. Use server-side code only.
Quick test — verify your key works
cURL
curl "https://yourdomain.com/api/balance?api_key=YOUR_API_KEY"

Pricing

Each successful request deducts the fee below from your wallet. Failed requests are free.

ℹ️ Prices may change. Always check this page before large batches. Wallet balance is visible on your dashboard.

Balance Check

Check your ZeroAPI wallet balance and username. Free endpoint.

GET /api/balance
Parameters
ParameterTypeRequiredDescription
api_key String Required Your ZeroAPI key.
$url = "https://yourdomain.com/api/balance?api_key=YOUR_API_KEY";
$data = json_decode(file_get_contents($url), true);
echo "Balance: ₹" . $data['Balance'];
const res  = await fetch("https://yourdomain.com/api/balance?api_key=YOUR_API_KEY");
const data = await res.json();
console.log("Balance:", data.Balance);
curl "https://yourdomain.com/api/balance?api_key=YOUR_API_KEY"
200 Success — balance returned
{ "status": "200", "Balance": "145076.50", "username": "1234567901" }
401 Invalid or missing API key
{ "status": "401", "message": "API User Not Found" }

Aadhaar to PAN

Find the linked PAN number for a given 12-digit Aadhaar number.

GET /api/aadhaar_to_pan
Parameters
ParameterTypeRequiredDescription
api_key String Required Your ZeroAPI key.
aadhaar_no String Required 12-digit Aadhaar number.
$url = "https://yourdomain.com/api/aadhaar_to_pan?api_key=YOUR_API_KEY&aadhaar_no=335400206902";
$data = json_decode(file_get_contents($url), true);
echo "PAN: " . ($data['pan_no'] ?? '-');
curl "https://yourdomain.com/api/aadhaar_to_pan?api_key=YOUR_API_KEY&aadhaar_no=335400206902"
200PAN found
{ "status" : "200", "aadhaar" : "335400206902", "pan_no" : "DSXPP7184N", "application_no": "FINDPAN_2511717720104", "message" : "Entered Aadhaar number is already linked with a PAN" }
404Aadhaar not linked to any PAN
{ "status": "404", "message": "Given UID no not linked with any PAN" }

PAN Details

Fetch full PAN card details — name, DOB, gender — by PAN number.

GET /api/pan_details
Parameters
ParameterTypeRequiredDescription
api_keyStringRequiredYour ZeroAPI key.
pannoStringRequiredValid PAN number (e.g. CFAPR3702R).
$url = "https://yourdomain.com/api/pan_details?api_key=YOUR_API_KEY&panno=CFAPR3702R";
$data = json_decode(file_get_contents($url), true);
echo $data['name'];
curl "https://yourdomain.com/api/pan_details?api_key=YOUR_API_KEY&panno=CFAPR3702R"
200PAN details found
{ "status" : "200", "pan_no" : "CFAPR3702R", "name" : "SHAMSHER", "dob" : "1989-09-08", "gender" : "M", "application_no": "PANDETAILS_5951729476665" }
404PAN not found
{ "status": "404", "message": "No data found" }

PAN to Aadhaar

Retrieve Aadhaar details using a PAN Number.

GET /api/pan_to_aadhaar
Parameters
ParameterTypeRequiredDescription
api_keyStringRequiredYour ZeroAPI key.
pan_numberStringRequired10-character PAN number.
$url = "https://yourdomain.com/api/pan_to_aadhaar?api_key=YOUR_API_KEY&pan_number=JAYPP5910H";
$data = json_decode(file_get_contents($url), true);
print_r($data);
curl "https://yourdomain.com/api/pan_to_aadhaar?api_key=YOUR_API_KEY&pan_number=JAYPP5910H"
200Details retrieved
{ "status" : "200", "pan_number" : "JAYPP5910H", "data": { "pan_number" : "JAYPP5910H", "aadhaar_number" : "792452291769", "dob" : "2007-08-05", "name" : "ARUSHI PATEL", "Gender" : "F" }, "application_no": "PAN2ADR_37A899510A0DE174" }
404Request failed
{ "status": "404", "message": "Request Failed" }

PAN to GST

Retrieve all GSTINs linked with a PAN number.

GET /api/pan_to_gst
Parameters
ParameterTypeRequiredDescription
api_keyStringRequiredYour ZeroAPI key.
panStringRequired10-character PAN number.
$url = "https://yourdomain.com/api/pan_to_gst?api_key=YOUR_API_KEY&pan=DPVPP9203R";
echo file_get_contents($url);
curl "https://yourdomain.com/api/pan_to_gst?api_key=YOUR_API_KEY&pan=DPVPP9203R"
200GST details retrieved
{ "status" : "200", "pan" : "DPVPP9203R", "count" : 2, "items": [ { "gstin": "20DPVPP9203R1Z1", "auth_status": "Active", "state": "JHARKHAND" }, { "gstin": "20DPVPP9203R2Z0", "auth_status": "Inactive", "state": "JHARKHAND" } ], "application_no": "PAN2GST_C2A38EA26CFD5D9A" }
404Request failed
{ "status": "404", "message": "Request Failed" }

GST Details

Retrieve complete GST registration details using GSTIN.

GET /api/gst_details
Parameters
ParameterTypeRequiredDescription
api_keyStringRequiredYour ZeroAPI key.
gstStringRequired15-character GSTIN.
$url = "https://yourdomain.com/api/gst_details?api_key=YOUR_API_KEY&gst=20DPVPP9203R1Z1";
echo file_get_contents($url);
curl "https://yourdomain.com/api/gst_details?api_key=YOUR_API_KEY&gst=20DPVPP9203R1Z1"
200GST details found
{ "status": "200", "gst" : "20DPVPP9203R1Z1", "details": { "legal_name" : {"value": "SURAJ KUMAR PANDIT"}, "constitution" : {"value": "Proprietorship"}, "status" : {"value": "Active"}, "registration_date" : {"value": "2020-06-15T00:00:00+05:30"} }, "application_no": "GSTDET_059C46D030AA7E01" }
404Request failed
{ "status": "404", "message": "Request Failed" }

RC Print

Generate PDF of vehicle RC by vehicle number. Returns base64-encoded PDF.

GET /api/rc
Parameters
ParameterTypeRequiredDescription
api_keyStringRequiredYour ZeroAPI key.
rcnoStringRequiredVehicle registration number.
cardtypeStringOptional1 = Old  |  2 = New background
chiptypeStringOptional1 = Chip  |  2 = Non-Chip
$url = "https://yourdomain.com/api/rc?api_key=YOUR_API_KEY&rcno=BR03L8594&cardtype=2&chiptype=1";
echo file_get_contents($url);
curl "https://yourdomain.com/api/rc?api_key=YOUR_API_KEY&rcno=BR03L8594&cardtype=2&chiptype=1"
200RC verified — base64 PDF returned
{ "status" : "200", "rcno" : "BR03L8594", "name" : "VINAY KUMAR SINGH", "application_no": "RCPRINT_4601717997098", "message" : "RC verification successful", "pdf" : "data:application/pdf;base64,JVBERi0xLjQKJb..." }
404RC verification failed
{ "status": "404", "message": "RC verification failed" }

DL Print

Generate PDF of a Driving Licence by DL number and DOB.

GET /api/dl
Parameters
ParameterTypeRequiredDescription
api_keyStringRequiredYour ZeroAPI key.
dlnoStringRequiredDriving Licence number.
dobStringRequiredDOB in DD-MM-YYYY.
cardtypeStringOptional1 = White  |  2 = Light Blue
stateStringOptionalJK = J&K layout
$url = "https://yourdomain.com/api/dl?api_key=YOUR_API_KEY&dlno=DL0420110123456&dob=15-08-1990&cardtype=1";
echo file_get_contents($url);
curl "https://yourdomain.com/api/dl?api_key=YOUR_API_KEY&dlno=DL0420110123456&dob=15-08-1990&cardtype=1"
200DL PDF generated
{ "status" : "200", "pdf" : "data:application/pdf;base64,JVBERi0xLjQ...", "application_no": "RCPRINT_4601717997098", "message" : "DL Print Successfully" }
404DL not found
{ "status": "404", "message": "DL Not found" }

Ration Print

Generate PDF of Ration Card. Returns hosted PDF URL.

GET /api/ration_pdf/ration
Parameters
ParameterTypeRequiredDescription
api_keyStringRequiredYour ZeroAPI key.
rationnoStringRequiredRation card number.
card_typeStringOptional1 = Photo  |  2 = Simple
$url = "https://yourdomain.com/api/ration_pdf/ration?api_key=YOUR_API_KEY&rationno=123456789012&card_type=1";
echo file_get_contents($url);
curl "https://yourdomain.com/api/ration_pdf/ration?api_key=YOUR_API_KEY&rationno=123456789012&card_type=1"
200Ration PDF URL returned
{ "status" : "200", "application_no": "4601717997098", "pdf_url" : "https://yourdomain.com/files?ration=22917", "message" : "Ration verification successful" }
404Ration verification failed
{ "status": "404", "message": "Ration verification failed" }
ℹ️ Unlike RC/DL, Ration API returns a hosted pdf_url link rather than base64-encoded PDF.

Agristack Farmer PDF

Verify farmer details using Aadhaar and download Farmer PDF in base64.

GET /api/farmer
Parameters
ParameterTypeRequiredDescription
api_keyStringRequiredYour ZeroAPI key.
aadhaarStringRequired12-digit Aadhaar number.
stateStringRequiredState code (BR, UP, DL, MH…).
$url = "https://yourdomain.com/api/farmer?api_key=YOUR_API_KEY&aadhaar=335400206902&state=BR";
echo file_get_contents($url);
curl "https://yourdomain.com/api/farmer?api_key=YOUR_API_KEY&aadhaar=335400206902&state=BR"
200Agristack verification successful
{ "status" : "200", "aadhaar" : "335400206902", "name" : "Chandra Bhushan", "application_no": "FARMER_B87614A2A0A4F094", "pdf" : "data:application/pdf;base64,..." }
404Verification failed
{ "status": "404", "message": "Verification failed" }

Mobile to PAN

Get PAN number using customer name and mobile number.

GET /api/mobile_to_pan
Parameters
ParameterTypeRequiredDescription
api_keyStringRequiredYour ZeroAPI key.
NameStringRequiredCustomer name.
MobileNoStringRequired10-digit mobile number.
$url = "https://yourdomain.com/api/mobile_to_pan?api_key=YOUR_API_KEY&Name=Mohan&MobileNo=8000000066";
echo file_get_contents($url);
curl "https://yourdomain.com/api/mobile_to_pan?api_key=YOUR_API_KEY&Name=Mohan&MobileNo=8000000066"
200PAN found
{ "status" : "200", "name" : "Mohan Kumar Singh", "mobile_no" : "8000000066", "pan_number" : "DAFPS3123A", "application_no": "MOB2PAN_286F046A299911A2" }
404Record not found
{ "status": "404", "message": "Record not found" }

NPCI Status

Check Aadhaar NPCI mapping and linked bank details.

GET /api/npci_status
Parameters
ParameterTypeRequiredDescription
api_keyStringRequiredYour ZeroAPI key.
aadhaarStringRequired12-digit Aadhaar number.
$url = "https://yourdomain.com/api/npci_status?api_key=YOUR_API_KEY&aadhaar=225900003211";
echo file_get_contents($url);
curl "https://yourdomain.com/api/npci_status?api_key=YOUR_API_KEY&aadhaar=225900003211"
200NPCI status retrieved
{ "status": "200", "aadhaar": "225900003211", "npcidata": { "bank_Name" : "CENTRAL CO OPERATIVE BANK LTD ARA", "status" : "A", "last_Updated_Date": "2017-11-02T19:39:11" }, "uidaidata": { "uid" : "225900003211", "name" : "Mohan Kumar Singh", "mobile": "XXXXXX00000" }, "application_no": "NPCI_718C939B298AAC19" }
404NPCI record not found
{ "status": "404", "message": "Record not found" }

UP Ration to Aadhaar

Get all Aadhaar-linked family members from an UP Ration Card number.

GET /api/upration2uid
Parameters
ParameterTypeRequiredDescription
api_keyStringRequiredYour ZeroAPI key.
ration_noStringRequired12-digit UP Ration Card number.
$url = "https://yourdomain.com/api/upration2uid?api_key=YOUR_API_KEY&ration_no=215740456718";
echo file_get_contents($url);
curl "https://yourdomain.com/api/upration2uid?api_key=YOUR_API_KEY&ration_no=215740456718"
200Family details retrieved
{ "status" : "200", "ration_no": "215740456718", "family": [ { "name" : "Rama Devi", "relation" : "Self", "dob" : "01/02/1984", "uid" : "601627856586", "gender" : "Female" } ], "application_no": "UPR2UID_8C66CB645E251493" }
404Record not found
{ "status": "404", "message": "Record not found" }

Vehicle Challan

Check e-Challan details of any vehicle by vehicle number.

GET /api/vehicle_challan
Parameters
ParameterTypeRequiredDescription
api_keyStringRequiredYour ZeroAPI key.
vehicle_numberStringRequiredVehicle registration number.
$url = "https://yourdomain.com/api/vehicle_challan?api_key=YOUR_API_KEY&vehicle_number=HR03AM4335";
echo file_get_contents($url);
curl "https://yourdomain.com/api/vehicle_challan?api_key=YOUR_API_KEY&vehicle_number=HR03AM4335"
200Challan details retrieved
{ "status" : "200", "vehicle_number": "HR03AM4335", "challan_count" : 6, "challans": [ { "challan_no" : "BR449326084075", "owner_name" : "MOHAN SINGH", "challan_status": "Paid", "challan_amount": 1000, "payment_date" : "2025-10-26" } ], "application_no": "VCHALLAN_3DDE206E46E4AEBF" }
404No challan found
{ "status": "404", "message": "No Challan Found" }


IFSC Details

Get complete bank branch details using IFSC code.

GET /api/ifsc_details
Parameters
ParameterTypeRequiredDescription
api_keyStringRequiredYour ZeroAPI key.
ifscStringRequired11-character IFSC code.
$url = "https://yourdomain.com/api/ifsc_details?api_key=YOUR_API_KEY&ifsc=PUNB0MBGB06";
echo file_get_contents($url);
curl "https://yourdomain.com/api/ifsc_details?api_key=YOUR_API_KEY&ifsc=PUNB0MBGB06"
200IFSC details found
{ "status": "200", "ifsc" : "PUNB0MBGB06", "data": { "BANK" : "Dakshin Bihar Gramin Bank", "BRANCH" : "Dakshin Bihar Gramin Bank IMPS", "CITY" : "MUMBAI", "STATE" : "MAHARASHTRA", "IFSC" : "PUNB0MBGB06", "IMPS" : true, "NEFT" : true, "RTGS" : true, "UPI" : true } }
404Request failed
{ "status": "404", "message": "Request Failed" }

LL Exam

Submit a Learner Licence Exam request. Save the returned order_id to check status later.

GET /api/ll_exam
Parameters
ParameterTypeRequiredDescription
api_keyStringRequiredYour ZeroAPI key.
appnoStringRequiredApplication number.
passwordStringRequiredApplication password.
dobStringRequiredDOB in DD-MM-YYYY.
$url = "https://yourdomain.com/api/ll_exam?api_key=YOUR_API_KEY&appno=appno004&password=44hfgh1&dob=01-01-2000";
echo file_get_contents($url);
curl "https://yourdomain.com/api/ll_exam?api_key=YOUR_API_KEY&appno=appno004&password=44hfgh1&dob=01-01-2000"
200Request submitted
{ "status" : "200", "application_no": "appno004", "order_id" : "LLEXAM_1327E8C1D5245CD2" }
404Request failed
{ "status": "404", "message": "Request Failed" }

LL Exam Status

Check LL Exam request status using the order_id returned by /api/ll_exam.

GET /api/ll_exam_status
Parameters
ParameterTypeRequiredDescription
order_idStringRequiredOrder ID from /api/ll_exam.
$url = "https://yourdomain.com/api/ll_exam_status?order_id=LLEXAM_FFFA9F23776BFB3F";
echo file_get_contents($url);
curl "https://yourdomain.com/api/ll_exam_status?order_id=LLEXAM_FFFA9F23776BFB3F"
200Completed
{ "order_id" : "LLEXAM_FFFA9F23776BFB3F", "status" : "COMPLETED", "application_no": "appno002", "attachment_url": "https://yourdomain.com/files/llexam_2.png" }
REJECTEDRefund processed
{ "order_id" : "LLEXAM_1327E8C1D5245CD2", "status" : "REJECTED", "remark" : "Password Wrong", "is_refunded" : "1", "refund_txn_id" : "LLEXAM_1327E8C1D5245CD2_REFUND", "refund_date" : "2026-07-19" }

Error Codes

All responses include a status field. Non-200 means error.

CodeNameDescription
200OKRequest successful.
400Bad RequestMissing/invalid parameters.
401UnauthorizedAPI key invalid or disabled.
402Payment RequiredInsufficient wallet balance. Recharge.
403ForbiddenAccess restricted.
404Not FoundRecord not found for given input.
500Internal Server ErrorUnexpected error. Retry later.
502Bad GatewayUpstream provider unreachable.

Changelog

Recent updates to ZeroAPI.

Jun 2025
v1.0 — Latest
ZeroAPI launched with PAN, Aadhaar, RC, DL, GST, Ration, Vehicle, Voter, NPCI, IFSC, LL Exam endpoints. Wallet billing integrated.
✓ Copied to clipboard