All APIs 39
Every endpoint accepts JSON request bodies, returns structured JSON, and authenticates with a single Bearer key.
/api/v1/ip/threat/bulk
Bulk IP Threat Intelligence API — the same risk signals as IP Threat Intelligence, for up to 100 addresses in a single billable ca…
/api/v1/ip/check
Look up geolocation, ISP, and network information for any public IPv4 or IPv6 address.
/api/v1/ip/check_advance
IP Check Advance API — Deep IP intelligence for any IPv4 or IPv6 address. Beyond basic geolocation (city, country, coordinates, ti…
/api/v1/ip/geolocation/full
IP Geolocation Enrichment API — everything IP Geolocation returns, plus the full threat-intelligence block (threat score, Tor / pr…
/api/v1/ip/geolocation
IP Geolocation API — locate an IPv4 or IPv6 address and describe the network behind it. Returns continent, country, state, distric…
/api/v1/ip/threat
IP Threat Intelligence API — real-time risk signals for an IPv4 or IPv6 address. Returns a threat_score from 0 to 100 (higher is r…
/api/v1/ip/whois
IP WHOIS Lookup API — live registration data for an IPv4 or IPv6 address, straight from the Regional Internet Registry that alloca…
/api/v1/bank/account_validation
Bank Account Verification API — Instantly verify Indian bank account details. Returns the account holder name and account status f…
/api/v1/driving-license/verify
Driving License Verification API — Verify any Indian driving license number with date of birth against government RTO records in r…
/api/v1/mobile/prefill
Mobile Prefill API — Fetch PAN and identity details linked to a mobile number using the subscriber's name. Useful for pre-filling …
/api/v1/pan/verify
PAN Verification API — Verify a 10-character Permanent Account Number (PAN) issued by the Indian Income Tax Department. Essential …
/api/v1/voter-id/verify
Voter ID Verification API — Verify any Indian Voter ID (EPIC) number against Election Commission records in real time. Returns the…
/api/v1/upi/vpa_validation
VPA / UPI Validation API — Verify any UPI Virtual Payment Address (VPA) in real time and return the registered account holder name…
/api/v1/credit-report/fetch
Credit Report API — Fetch a detailed credit report (JSON) for an individual using their Aadhaar or PAN number. Returns the credit …
/api/v1/credit-report/pdf
Credit Report PDF API — Fetch the credit report as a downloadable PDF for an individual using their Aadhaar or PAN number. Returns…
/api/v1/credit-report-experian/fetch-report
Credit Report Experian API — pull a full Experian consumer credit report for an individual from their PAN and mobile number, with …
/api/v1/credit-report-experian/fetch-report-pdf
Credit Report Experian PDF API — the same Experian bureau enquiry as the JSON endpoint, returning the bureau score and a download …
/api/v1/gst/verify
GST Verification API — Verify a 15-character GSTIN (Goods & Services Tax Identification Number) registered under India's GST syste…
/api/v1/tan/fetch_adv
TAN Advanced Verification API — Verify any 10-character TAN (Tax Deduction Account Number) issued by the Income Tax Department. Re…
/api/v1/dth/info
DTH Advance Information API — Pull the full subscriber profile behind a DTH customer ID / VC number. Returns the account name, reg…
/api/v1/dth/operator-check
DTH Operator Check API — Identify which DTH operator a subscriber / customer ID belongs to, without asking the customer. Returns t…
/api/v1/mobile/last-recharge
Last Mobile Recharge Status API — Check when a prepaid mobile number was last recharged and for how much. Returns the last recharg…
/api/v1/mobile/r-offer
Mobile R-Offer Fetch API — Retrieve the R-Offers (special, number-specific recharge offers) that a telecom operator has loaded aga…
/api/v1/operator-circle/check
Operator Circle Lookup API — Instantly identify the telecom operator (Jio, Airtel, Vi, BSNL, etc.) and service circle/zone for any…
/api/v1/aws/send_otp-pin
Send a transactional OTP or PIN SMS to a mobile number worldwide via Text SMS. Supports strict purpose and share_with validation.
/api/v1/domain/dns
DNS Lookup API — live DNS records for a hostname, resolved at request time rather than served from a cache. Supports A, AAAA, MX, …
/api/v1/domain/availability
Domain Availability API — check whether a domain name is free to register. Answered from DNS by default, which is fast and accurat…
/api/v1/domain/check
Domain Check API — Look up the registration status and availability of any domain name. Returns domain registration details includ…
/api/v1/domain/whois_live
Domain WHOIS Lookup API — Retrieve comprehensive WHOIS registration information for any domain name. Returns registrar details, re…
/api/v1/domain/whois
Domain WHOIS Lookup API — live registry WHOIS for any domain. Returns registration dates (created, updated, expires), the registra…
/api/v1/domain/ssl
SSL Certificate Lookup API — fetches the live TLS certificate chain presented by a domain. Each certificate reports its validity w…
/api/v1/domain/subdomains
Subdomains Lookup API — discovers subdomains observed for a domain, each with first_seen and last_seen dates so you can tell live …
/api/v1/aadhaar/aadhaar_pan_link_check
Aadhaar–PAN Link Check API — Check whether a given Aadhaar number is linked to a PAN card as mandated by the Income Tax Department…
/api/v1/rc/pdf
Vehicle RC PDF API — Turn a vehicle registration number into a printable Registration Certificate (RC) document. Send the registra…
/api/v1/rc/text-pdf
Vehicle RC Text and PDF API — The Registration Certificate (RC) for a vehicle returned both ways in a single call: the full RC rec…
/api/v1/rc/verify
Vehicle RC Verification API — Fetch full Registration Certificate (RC) details for any Indian vehicle using its registration numbe…
/api/v1/email/validate/bulk
Bulk Email Validation API — the same deliverability check as Email Validation, for up to 100 addresses in a single billable call. …
/api/v1/email/validate
Email Validation API — checks whether an address can actually receive mail, without sending one. result is a single verdict you ca…
Authentication
All verification endpoints require a valid API key. Pass it as Authorization: Bearer <key> (recommended) or via the X-API-Key header. Keys are generated from your Dashboard → API Keys page.
Option 1 — Bearer Token (Recommended)
Option 2 — X-API-Key Header
Keep your API keys secure. Do not expose them in client-side code or public repositories. If compromised, regenerate your keys immediately from the dashboard.
HTTP Status Codes
Standard HTTP status codes indicate the outcome of every request. The status alone does not tell you whether a call was billed — read charged in the body.
| Code | Status | Charged | Description |
|---|---|---|---|
| 200 | OK | Yes | Verification result returned |
| 202 | Accepted | Yes | Accepted and being processed, or the provider did not respond in time — check message_code to tell the two apart, and quote the order_id |
| 400 | Bad Request | No | Verification failed or invalid vendor response |
| 401 | Unauthorized | No | Missing or invalid API key |
| 402 | Payment Required | No | Insufficient balance — recharge required |
| 403 | Forbidden | No | No access to this API service |
| 422 | Unprocessable Entity | Depends — read charged |
Either input validation failed (not charged), or the provider ran the lookup and returned a negative result (charged). message_code distinguishes them: INVALID_INPUT vs VERIFICATION_FAILED / NO_RECORD_FOUND |
| 429 | Too Many Requests | No | Rate limit exceeded |
| 404 | Not Found | No | Unknown endpoint |
| 500 | Internal Server Error | No | Unexpected error on our side |
| 503 | Service Unavailable | No | Vendor temporarily unavailable |
Response Format
Every response — success, failure, or rejection — carries the same control keys. The verification payload sits under data.result.
Success Response
{
"status": "SUCCESS",
"status_code": 200,
"charged": true,
"success": true,
"message": "",
"message_code": "OK",
"order_id": "W2A1739512345abcdef01",
"data": {
"order_id": "W2A1739512345abcdef01",
"result": {
"field": "value",
"another_field": 123
}
}
}
Error Response
{
"status": "SUCCESS",
"status_code": 422,
"charged": true,
"success": false,
"message": "The request was processed but the details could not be verified.",
"message_code": "VERIFICATION_FAILED",
"order_id": "W2A1739512345abcdef01",
"data": {
"order_id": "W2A1739512345abcdef01",
"error_code": "verification_failed"
}
}
When You Are Charged
charged is the authority — never infer billing from the HTTP status. A call is billed when the provider did the work, even if the answer was negative. Prices are per-account; see Pricing in your dashboard.
| message_code | Charged | HTTP | status | What it means |
|---|---|---|---|---|
OK |
Yes | 200 | SUCCESS | Verified. The provider ran the lookup and returned a result. |
ACCEPTED |
Yes | 202 | PENDING | Queued at the provider. Quote the order_id to collect the result. |
PROVIDER_NO_RESPONSE |
Yes | 202 | PENDING | The provider did not respond in time. Held for manual review — not auto-refunded. |
VERIFICATION_FAILED |
Yes | 422 | SUCCESS | The provider ran the lookup and the details did not verify. The work was done, so the call is billed. |
NO_RECORD_FOUND |
Yes | 422 | SUCCESS | The provider ran the lookup and found no matching record. Billed for the same reason. |
INVALID_INPUT |
No | 422 | FAILED | Your parameters were rejected before any call was placed. |
REQUEST_FAILED |
No | 400 | FAILED | The call was placed and failed definitively. Refunded to your wallet automatically. |
MISSING_API_KEY |
No | 401 | FAILED | No API key on the request. |
INVALID_API_KEY |
No | 401 | FAILED | Key invalid or expired, or the calling IP is not allowed. |
INSUFFICIENT_BALANCE |
No | 402 | FAILED | Your wallet balance is below the price of this call. |
NO_API_ACCESS |
No | 403 | FAILED | Your account is not subscribed to this API. |
NOT_FOUND |
No | 404 | FAILED | No such endpoint. |
RATE_LIMITED |
No | 429 | FAILED | Per-key, per-service one-minute limit exceeded. |
INTERNAL_ERROR |
No | 500 | FAILED | Unexpected error on our side. |
PROVIDER_UNAVAILABLE |
No | 503 | FAILED | The service could not be reached. |
Error Handling
Errors use the same envelope, with message_code naming the reason. Use it for branching and message for logging. Per-API error payloads are on each API's Error Codes tab.
Common Error Responses
Every response carries charged. On all of the errors
below it is false — the call never reached the
provider, so nothing was billed. The absence of an
order_id means the same thing.
// 401 — MISSING_API_KEY { "status": "FAILED", "status_code": 401, "charged": false, "success": false, "message": "API key is required.", "message_code": "MISSING_API_KEY" }
// 401 — INVALID_API_KEY { "status": "FAILED", "status_code": 401, "charged": false, "success": false, "message": "Invalid, expired, or IP-restricted API key.", "message_code": "INVALID_API_KEY" }
// 402 — INSUFFICIENT_BALANCE { "status": "FAILED", "status_code": 402, "charged": false, "success": false, "message": "Insufficient balance. Please recharge your account.", "message_code": "INSUFFICIENT_BALANCE" }
// 403 — NO_API_ACCESS { "status": "FAILED", "status_code": 403, "charged": false, "success": false, "message": "You do not have access to this API service.", "message_code": "NO_API_ACCESS" }
// 422 — INVALID_INPUT { "status": "FAILED", "status_code": 422, "charged": false, "success": false, "message": "The request could not be accepted. Check the parameters and try again.", "message_code": "INVALID_INPUT" }
// 429 — RATE_LIMITED { "status": "FAILED", "status_code": 429, "charged": false, "success": false, "message": "Rate limit exceeded. Please try again later.", "message_code": "RATE_LIMITED" }
// 503 — PROVIDER_UNAVAILABLE { "status": "FAILED", "status_code": 503, "charged": false, "success": false, "message": "Service temporarily unavailable.", "message_code": "PROVIDER_UNAVAILABLE" }