Way2API® — API Reference v2.9.0

Complete API reference for 17 verification & utility services. Integrate PAN Verification, GST Verification, Driving License Verify, Voter ID Verification, Operator and Circle Check, Domain Check and 11 more — all from a single integration point.

Base URL: https://app.way2api.com/api/v1
✓ Key saved

🔑 Remember API Key

One-click convenience for testing & troubleshooting — no account needed.

1

What it doesSaves your API key in this browser only using localStorage. Next time you open this page, all Try It panels are pre-filled automatically.

2

Auto-updatesIf you type a different key into any Try It field, the saved key is replaced instantly — only the most recent key is ever stored.

3

Uncheck to forgetUnchecking “Remember API Key” immediately deletes the stored key and clears all fields. While unchecked, nothing is saved even if you type a new key.

4

Re-check to save againChecking the box again saves whatever key is currently in the Try It fields.

⚠ Security note: Your key is stored only in your browser and is never sent to any server except as part of the actual API call you send. Do not use this feature on shared or public computers.

Overview

Way2API® is a unified RESTful API platform for real-time identity verification and KYC (Know Your Customer) services in India. Currently offering 17 APIs — PAN Verification, GST Verification, Driving License Verify, Voter ID Verification, Operator and Circle Check, Domain Check, VPA Validation, Bank Account Validation and 9 more — all from a single integration. Every endpoint accepts JSON request bodies, returns structured JSON responses, and follows REST conventions with standard HTTP methods and status codes.

Quick Start

1. Register an account at the Way2API® dashboard
2. Copy your API Key from Dashboard → API Keys
3. Include it in the Authorization header of every request
4. Make API calls to any verification endpoint you have access to

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)

Authorization: Bearer your_api_key_here

Option 2 — X-API-Key Header

X-API-Key: your_api_key_here
⚠ Important

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.

Rate Limits

Rate limits protect the API from abuse. Limits are applied per API key, per service. When exceeded, the API returns 429 Too Many Requests with a Retry-After header.

ℹ Default Rate Limits

Free: 10 req/min  |  Pro: 60 req/min  |  Enterprise: Custom
Rate limits use a 1-minute sliding window.

HTTP Status Codes

Standard HTTP status codes indicate the outcome of every request. Check the success field in the response body for programmatic determination.

Code Status Description
200 OK Verification result returned
400 Bad Request Verification failed or invalid vendor response
401 Unauthorized Missing or invalid API key
402 Payment Required Insufficient balance — recharge required
403 Forbidden No access to this API service
422 Unprocessable Entity Input validation failed
429 Too Many Requests Rate limit exceeded
503 Service Unavailable Vendor temporarily unavailable

Response Format

Every response follows a consistent JSON structure: success (boolean), message (human-readable), and data (result object with order_id, verified flag, and result).

Success Response
{
    "success": true,
    "message": "Verification successful.",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "verified": true,
        "result": { ... }
    }
}
Error Response
{
    "success": false,
    "message": "Error description here.",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "error_code": "VERIFICATION_FAILED"
    }
}

Endpoints

GET /api/v1/health Public

Health Check API — Check whether the Way2API® service is online. No authentication required. Ideal for uptime monitoring and CI/CD readiness checks.

Parameters

None

Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X GET https://app.way2api.com/api/v1/health
Response — 200
{
    "success": true,
    "message": "Service is healthy.",
    "data": {
        "status": "ok",
        "service": "Way2API®",
        "version": "1.0.0",
        "timestamp": "2026-06-19T12:13:35+00:00"
    }
}
🚀 Send Request
POST /api/v1/pan/verify Bearer

PAN Verification API — Verify a 10-character Permanent Account Number (PAN) issued by the Indian Income Tax Department. Essential for financial KYC, income tax compliance, and onboarding workflows in the banking, insurance, and lending sectors. Returns the PAN holder's full name, PAN status (Existing and Valid, Deactivated, etc.), category (Individual, Company, HUF, Trust, etc.), Aadhaar seeding status, and other detailed information. Validates the PAN format and checks it against official government records.

Availability

🗺️ Country-specific

India

Request Body (application/json)
Parameter Type Required Description
pan_number string Required 10-character PAN — format: [A-Z]{5}[0-9]{4}[A-Z] (e.g. ABCDE1234F)
Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X POST https://app.way2api.com/api/v1/pan/verify \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pan_number":"ABCDE1234F"}'
Success Response — 200
{
    "success": true,
    "message": "",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "result": {
            "pan_number": "ABCDE1234F",
            "full_name": "RAJESH KUMAR",
            "title": "",
            "full_name_split": [
                "",
                "",
                "RAJESH KUMAR"
            ],
            "pan_status": "E",
            "pan_status_desc": "EXISTING AND VALID",
            "aadhaar_seeding_status": "Y",
            "aadhaar_seeding_status_desc": "Seeded",
            "pan_modified_date": null,
            "category": "individual",
            "client_id": "pan_advanced_v2_xxxxxxxxxxxxxxxxxxxx"
        }
    }
}
Error Response — 422
{
    "success": false,
    "message": "Invalid PAN",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "error_code": "VERIFICATION_FAILED",
        "result": {
            "pan_number": "AABCY04940",
            "full_name": "",
            "title": "",
            "full_name_split": [],
            "pan_status": "",
            "pan_status_desc": "",
            "aadhaar_seeding_status": "",
            "aadhaar_seeding_status_desc": "",
            "pan_modified_date": null,
            "category": "company"
        }
    }
}
🚀 Send Request
POST /api/v1/gst/verify Bearer

GST Verification API — Verify a 15-character GSTIN (Goods & Services Tax Identification Number) registered under India's GST system. Critical for B2B vendor verification, invoice validation, and supply chain compliance. Returns the business legal name, trade name, registration status (Active, Cancelled, Suspended), taxpayer type, constitution (Private Limited, LLP, etc.), registration date, registered address with state and pincode, PAN number, nature of business activities, and e-invoice status. Use this endpoint to validate GST invoices, verify suppliers before onboarding, and ensure regulatory compliance under GST law.

Availability

🗺️ Country-specific

India

Request Body (application/json)
Parameter Type Required Description
gst_number string Required 15-character GSTIN — format: [0-9]{2}[A-Z]{5}[0-9]{4}[A-Z][0-9A-Z][Z][0-9A-Z] (e.g. 10AABCY0494J1ZF)
Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X POST https://app.way2api.com/api/v1/gst/verify \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"gst_number":"10AABCY0494J1ZF"}'
Success Response — 200
{
    "success": true,
    "message": "",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "result": {
            "gstin": "10AABCY0494J1ZF",
            "lgnm": "YOFLIC INDIA PRIVATE LIMITED",
            "tradeNam": "YOFLIC INDIA PRIVATE LIMITED",
            "sts": "Active",
            "dty": "Regular",
            "ctb": "Private Limited Company",
            "rgdt": "16/05/2019",
            "lstupdt": "13/07/2023",
            "stj": "Saran 1",
            "ctj": "CHHAPRA RANGE",
            "panNo": "AABCY0494J",
            "einvoiceStatus": "Yes",
            "nba": [
                "Office / Sale Office",
                "Recipient of Goods or Services",
                "Supplier of Services",
                "Retail Business"
            ],
            "pradr": {
                "addr": {
                    "bnm": "C/O RITA DEVI, VILL-JALALPUR",
                    "st": "PANCH-BISHUNPURI,BLOCK-JALALPUR",
                    "loc": "JALALPUR",
                    "dst": "Saran",
                    "stcd": "Bihar",
                    "pncd": "841412"
                },
                "ntr": "Office / Sale Office, Supplier of Services"
            }
        }
    }
}
Error Response — 422
{
    "success": false,
    "message": "Invalid GSTIN / UID",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "error_code": "INVALID_GSTIN",
        "result": {
            "gst_number": "10AABCY0494J2ZFA"
        }
    }
}
🚀 Send Request
POST /api/v1/driving-license/verify Bearer

Driving License Verification API — Verify any Indian driving license number with date of birth against government RTO records in real time. Returns the license holder's name, address, gender, father/husband name, date of birth, issue and expiry dates, vehicle classes, issuing authority, and profile image availability. Useful for KYC onboarding, identity verification, ride-hailing driver validation, and fleet compliance. The profile image is excluded from the response for privacy.

Availability

🗺️ Country-specific

India

Request Body (application/json)
Parameter Type Required Description
dl_number string Required Driving license number (10-20 characters, e.g. MH0320140001234).
dob string Required Date of birth of the license holder in dd/mm/yyyy format.
Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X POST https://app.way2api.com/api/v1/driving-license/verify \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"dob":"15/06/1992","dl_number":"MH0320140001234"}'
Success Response — 200
{
    "success": true,
    "message": "",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "result": {
            "license_number": "MH0320140001234",
            "state": "Maharashtra",
            "name": "SURESH PATEL",
            "permanent_address": "42 MG ROAD, PUNE, MAHARASHTRA",
            "permanent_zip": "411001",
            "temporary_address": "42 MG ROAD, PUNE, MAHARASHTRA",
            "temporary_zip": "411001",
            "citizenship": "",
            "ola_name": "RTO PUNE",
            "ola_code": "MH032",
            "gender": "M",
            "father_or_husband_name": "RAMESH PATEL",
            "dob": "1992-06-15",
            "doe": "2034-08-10",
            "transport_doe": "1800-01-01",
            "doi": "2014-08-11",
            "transport_doi": "1800-01-01",
            "has_image": true,
            "blood_group": "B+",
            "vehicle_classes": [
                "MCWG",
                "LMV-NT"
            ],
            "less_info": false
        }
    }
}
Error Response — 422
{
    "success": false,
    "message": "Verification Failed.",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "result": {
            "license_number": "MH0320140001234",
            "state": null,
            "name": null,
            "permanent_address": null,
            "gender": null,
            "father_or_husband_name": null,
            "dob": "1992-06-15",
            "doe": null,
            "doi": null,
            "has_image": false,
            "vehicle_classes": [],
            "less_info": false
        }
    }
}
🚀 Send Request
POST /api/v1/voter-id/verify Bearer

Voter ID Verification API — Verify any Indian Voter ID (EPIC) number against Election Commission records in real time. Returns the voter's name, relation name, relation type, gender, age, date of birth, area, state, and house number. Useful for KYC onboarding, identity verification, electoral compliance, and address validation workflows.

Availability

🗺️ Country-specific

India

Request Body (application/json)
Parameter Type Required Description
voter_id string Required 10-character EPIC (Voter ID) number (e.g. ABC1234567).
Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X POST https://app.way2api.com/api/v1/voter-id/verify \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"voter_id":"ABC1234567"}'
Success Response — 200
{
    "success": true,
    "message": "",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "result": {
            "relation_type": "F",
            "gender": "M",
            "age": "32",
            "epic_no": "ABC1234567",
            "dob": "1992-06-15",
            "relation_name": "RAMESH KUMAR",
            "name": "SURESH KUMAR",
            "area": "Sector 5, Dwarka",
            "state": "Delhi",
            "house_no": "42-B"
        }
    }
}
Error Response — 422
{
    "success": false,
    "message": "Verification Failed.",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "result": {
            "epic_no": "ABC1234567"
        }
    }
}
🚀 Send Request
POST /api/v1/operator-circle/check Bearer

Operator Circle Lookup API — Instantly identify the telecom operator (Jio, Airtel, Vi, BSNL, etc.) and service circle/zone for any 10-digit Indian mobile number. Essential for mobile recharge platforms, DTH services, telecom analytics, and number portability checks. Returns the operator name, circle (e.g., Karnataka, Maharashtra), and connection type (Prepaid or Postpaid). Handles MNP (Mobile Number Portability) — results reflect the current operator, not the original.

Availability

🗺️ Country-specific

India

Request Body (application/json)
Parameter Type Required Description
mobile_number string Required 10-digit Indian mobile number — format: [6-9][0-9]{9} (e.g. 9876543210)
Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X POST https://app.way2api.com/api/v1/operator-circle/check \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mobile_number":"9876543210"}'
Success Response — 200
{
    "success": true,
    "message": "",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "result": {
            "mobile_number": "9876543210",
            "operator": "Jio",
            "circle": "Karnataka",
            "type": "Prepaid"
        }
    }
}
🚀 Send Request
POST /api/v1/domain/check Bearer

Domain Check API — Look up the registration status and availability of any domain name. Returns domain registration details including registrar, creation date, and expiration date. Useful for domain resellers, web hosting platforms, and brand protection services.

Availability

🌍 Global — Available worldwide

Request Body (application/json)
Parameter Type Required Description
domain string Required Domain name to check (e.g. example.com)
Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X POST https://app.way2api.com/api/v1/domain/check \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain":"example.com"}'
Success Response — 200
{
    "success": true,
    "message": "",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "result": {
            "domain": "example.com",
            "available": false,
            "registrar": "Example Registrar",
            "expires": "2027-01-01"
        }
    }
}
🚀 Send Request
POST /api/v1/upi/vpa_validation Bearer

Availability

🗺️ Country-specific

India

Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X POST https://app.way2api.com/api/v1/upi/vpa_validation \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"vpa":"abc@upi"}'
🚀 Send Request
POST /api/v1/bank/account_validation Bearer

Bank Account Verification API — Instantly verify Indian bank account details. Returns account holder name and account status for payout processing, KYC, and compliance workflows.

Availability

🗺️ Country-specific

India

Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X POST https://app.way2api.com/api/v1/bank/account_validation \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
🚀 Send Request
POST /api/v1/mobile/prefill Bearer

Mobile Prefill API — Fetch PAN and identity details linked to a mobile number using the subscriber's name. Useful for pre-filling KYC forms, onboarding flows, and identity resolution in lending, insurance, and fintech applications. Provide a 10-digit mobile number and the subscriber's name, and the API returns the associated PAN number along with detailed PAN holder information including full name, masked Aadhaar number, address, gender, and date of birth. Results are matched against government records for accuracy.

Availability

🗺️ Country-specific

India

Request Body (application/json)
Parameter Type Required Description
mobile_number string Required 10-digit Indian mobile number (e.g. 9876543210)
name string Required Subscriber name for identity matching
Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X POST https://app.way2api.com/api/v1/mobile/prefill \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Rajesh Kumar","mobile_number":"9876543210"}'
Success Response — 200
{
    "success": true,
    "message": "",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "result": {
            "mobile_no": "9876543210",
            "name": "Rajesh",
            "pan_number": "ABCDE1234F",
            "pan_details": {
                "full_name": "RAJESH KUMAR",
                "full_name_split": [
                    "RAJESH",
                    "",
                    "KUMAR"
                ],
                "masked_aadhaar": "XXXX-XXXX-1234",
                "address": {
                    "line_1": "123 MG ROAD",
                    "line_2": "",
                    "street_name": "MG ROAD",
                    "city": "MUMBAI",
                    "state": "MAHARASHTRA",
                    "zip": "400001",
                    "country": "INDIA"
                },
                "gender": "M",
                "dob": "1990-01-15",
                "email": "[email protected]",
                "phone_number": "9876543210",
                "category": "individual",
                "aadhaar_linked": true,
                "pan_status": "VALID"
            }
        }
    }
}
Error Response — 422
{
    "success": false,
    "message": "No PAN found linked to this mobile number",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "error_code": "REQUEST_FAILED",
        "result": {
            "mobile_no": "9876543210",
            "name": "Rajesh",
            "pan_number": "",
            "pan_details": {}
        }
    }
}
🚀 Send Request
POST /api/v1/credit-report/pdf Bearer

Credit Report PDF API — Fetch the credit report as a downloadable PDF for an individual using their Aadhaar or PAN number. Returns the credit score and a PDF download link for the full credit report. Useful for lending workflows, KYC, creditworthiness assessments, and financial compliance. Consent is automatically set to "Y".

Availability

🗺️ Country-specific

India

Request Body (application/json)
Parameter Type Required Description
name string Required Full name of the individual.
number string Required 12-digit Aadhaar number or 10-character PAN (based on fetch_by).
fetch_by string Required Type of ID document: "aadhaar" or "pan".
mobile string Required 10-digit mobile number of the individual.
Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X POST https://app.way2api.com/api/v1/credit-report/pdf \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Rajesh Kumar","mobile":"9876543210","number":"123456789012","fetch_by":"aadhaar"}'
Success Response — 200
{
    "success": true,
    "message": "",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "result": {
            "number": "123456789012",
            "fetch_by": "aadhaar",
            "mobile": "9876543210",
            "name": "Rajesh Kumar",
            "credit_score": "750",
            "credit_report": {},
            "credit_report_link": "https://example.com/credit-report.pdf"
        }
    }
}
Error Response — 422
{
    "success": false,
    "message": "Verification Failed.",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "result": {
            "number": "123456789012",
            "fetch_by": "aadhaar",
            "mobile": "9876543210",
            "name": "Rajesh Kumar",
            "credit_score": "",
            "credit_report": {},
            "credit_report_link": ""
        }
    }
}
🚀 Send Request
POST /api/v1/credit-report/fetch Bearer

Credit Report API — Fetch a detailed credit report (JSON) for an individual using their Aadhaar or PAN number. Returns the credit score and the full credit report data including inquiry details, account summaries, and credit history. Useful for lending decisions, KYC verification, and risk assessment. Consent is automatically set to "Y".

Availability

🗺️ Country-specific

India

Request Body (application/json)
Parameter Type Required Description
name string Required Full name of the individual.
number string Required 12-digit Aadhaar number or 10-character PAN (based on fetch_by).
fetch_by string Required Type of ID document: "aadhaar" or "pan".
mobile string Required 10-digit mobile number of the individual.
Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X POST https://app.way2api.com/api/v1/credit-report/fetch \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Rajesh Kumar","mobile":"9876543210","number":"123456789012","fetch_by":"aadhaar"}'
Success Response — 200
{
    "success": true,
    "message": "",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "result": {
            "number": "123456789012",
            "fetch_by": "aadhaar",
            "mobile": "9876543210",
            "name": "Rajesh Kumar",
            "credit_score": "750",
            "credit_report": {
                "InquiryResponseHeader": {},
                "CCRResponse": {}
            },
            "credit_report_link": ""
        }
    }
}
Error Response — 422
{
    "success": false,
    "message": "Verification Failed.",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "result": {
            "number": "123456789012",
            "fetch_by": "aadhaar",
            "mobile": "9876543210",
            "name": "Rajesh Kumar",
            "credit_score": "",
            "credit_report": {},
            "credit_report_link": ""
        }
    }
}
🚀 Send Request
POST /api/v1/rc/verify Bearer

Vehicle RC Verification API — Fetch full Registration Certificate (RC) details for any Indian vehicle using its registration number. Returns comprehensive vehicle information including owner name, vehicle make/model, fuel type, insurance details, fitness status, tax details, PUCC status, financer info, and more. Useful for used-car platforms, insurance underwriting, fleet management, RTO compliance, and loan verification. Optional chassis and engine number parameters for additional cross-verification.

Availability

🗺️ Country-specific

India

Request Body (application/json)
Parameter Type Required Description
rc_number string Required Vehicle registration number (e.g. DL3CCV6131, MH12AB1234).
chassis_number string Optional Chassis number for additional verification (optional).
engine_number string Optional Engine number for additional verification (optional).
Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X POST https://app.way2api.com/api/v1/rc/verify \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"rc_number":"DL3CCV6131"}'
Success Response — 200
{
    "success": true,
    "message": "",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "result": {
            "rc_number": "DL3CCV6131",
            "fit_up_to": "2037-03-20",
            "registration_date": "2022-03-21",
            "owner_name": "Vivek Kumar Singh",
            "father_name": "",
            "present_address": "B-40 Fourth Floor, Vasant Kunj, New Delhi, 110070",
            "permanent_address": "B-40 Fourth Floor, Vasant Kunj, New Delhi, 110070",
            "vehicle_category": "LMV",
            "vehicle_chasi_number": "WBA37AK09NY407428",
            "vehicle_engine_number": "0004Y375",
            "maker_description": "BMW INDIA PVT LTD",
            "maker_model": "BMW 220I GRAN COUPE M SPORT",
            "body_type": "SEDAN",
            "fuel_type": "PETROL",
            "color": "SNAPPER ROCKS BLUE M",
            "norms_type": "BHARAT STAGE VI",
            "financer": "ICICI BANK LTD",
            "financed": true,
            "insurance_company": "GoDigit General Insurance Ltd.",
            "insurance_policy_number": "D203450761",
            "insurance_upto": "2026-05-20",
            "manufacturing_date_formatted": "2022-03",
            "registered_at": "SOUTH DELHI, Delhi",
            "rc_status": "ACTIVE"
        }
    }
}
Error Response — 422
{
    "success": false,
    "message": "Verification Failed.",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "result": {
            "rc_number": "KA12AC3456",
            "registration_date": null,
            "owner_name": null,
            "vehicle_category": null,
            "maker_model": null,
            "fuel_type": null,
            "rc_status": null
        }
    }
}
🚀 Send Request
POST /api/v1/tan/fetch_adv Bearer

TAN Advanced Verification API — Verify any 10-character TAN (Tax Deduction Account Number) issued by the Income Tax Department. Returns the deductor's full name, allotment date, registered address, email, and phone number. Useful for employer/deductor KYC, TDS compliance, and business verification workflows.

Availability

🗺️ Country-specific

India

Request Body (application/json)
Parameter Type Required Description
tan_number string Required 10-character TAN number (e.g. ABCT12345E).
Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X POST https://app.way2api.com/api/v1/tan/fetch_adv \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tan_number":"ABKT12345E"}'
Success Response — 200
{
    "success": true,
    "message": "",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "result": {
            "tan": "ABKT12345E",
            "details": {
                "full_name": "SOLUTIONS PRIVATE LIMITED",
                "first_name": "",
                "middle_name": "",
                "last_name": "",
                "tan_allotment_date": "2050-12-18",
                "address": {
                    "line_1": "H.NO 123 ,SHIV COLONY",
                    "line_2": ",",
                    "line_3": "",
                    "line_4": "",
                    "line_5": "PANCHKULA",
                    "state_code": 99,
                    "zip": "123456",
                    "full": "H.NO.123 SHIV COLONY , PANCHKULA 123456"
                },
                "email_1": "[email protected]",
                "email_2": "",
                "phone_number": "1234567890"
            }
        }
    }
}
Error Response — 422
{
    "success": false,
    "message": "Verification Failed.",
    "data": {
        "order_id": "W2A1739512345abcdef02",
        "result": {
            "tan": "RTKT12345",
            "details": {}
        }
    }
}
🚀 Send Request
POST /api/v1/ip/check Bearer

Look up geolocation, ISP, and network information for any public IPv4 or IPv6 address.

Availability

🌍 Global — Available worldwide

Request Body (application/json)
Parameter Type Required Description
ip_address string Optional A valid public IPv4 or IPv6 address. If omitted, returns info for the caller s IP.
Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X POST https://app.way2api.com/api/v1/ip/check \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ip_address":"195.250.21.125"}'
Success Response — 200
{
    "success": true,
    "message": "",
    "data": {
        "order_id": "W2A_SAMPLE_ORDER",
        "result": {
            "query": "195.250.21.125",
            "status": "success",
            "country": "India",
            "countryCode": "IN",
            "region": "MH",
            "regionName": "Maharashtra",
            "city": "Navi Mumbai",
            "zip": "400703",
            "lat": 19.0336,
            "lon": 73.0118,
            "timezone": "Asia/Kolkata",
            "isp": "WHG Hosting Services Ltd",
            "org": "WHG Hosting Services Ltd",
            "as": "AS199404 WHG Hosting Services Ltd"
        }
    }
}
Error Response — 422
{
    "success": false,
    "message": "ip_address must be a valid IPv4 or IPv6 address.",
    "data": {
        "error_code": "VALIDATION_ERROR"
    }
}
🚀 Send Request
POST /api/v1/aws/send_otp-pin Bearer

Send a transactional OTP or PIN SMS to a mobile number worldwide via Text SMS. Supports strict purpose and share_with validation.

Availability

🌍 Global — Available worldwide

Request Body (application/json)
Parameter Type Required Description
number string Required Country code + mobile number. Currently supported: +91 (India). Example: 919876543210.
content string Required Content type: "OTP" or "PIN".
value string Required The OTP/PIN code to send (4 to 8 digits only).
purpose string Required Purpose of the SMS. Allowed: login, registration, password_reset, transaction, account_verification, two_factor_auth, payment_confirmation, order_confirmation, profile_update, withdrawal.
share_with string Required Sharing instruction. Allowed: no_one, executive, manager, support_team, admin.
Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X POST https://app.way2api.com/api/v1/aws/send_otp-pin \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":"5289","number":"919876543210","content":"OTP","purpose":"login","share_with":"no_one"}'
Success Response — 200
{
    "success": true,
    "message": "",
    "data": {
        "order_id": "W2A_SAMPLE_ORDER",
        "result": {
            "phone": "+919876543210",
            "content_type": "OTP",
            "purpose": "login",
            "share_with": "no_one",
            "sms_status": "sent"
        }
    }
}
Error Response — 422
{
    "success": false,
    "message": "content must be either \"OTP\" or \"PIN\".",
    "data": {
        "error_code": "VALIDATION_ERROR"
    }
}
🚀 Send Request
POST /api/v1/domain/whois_live Bearer

Domain WHOIS Lookup API — Retrieve comprehensive WHOIS registration information for any domain name. Returns registrar details, registration/expiry dates, registrant contact, administrative and technical contacts, name servers, and domain status. Powered by WhoisFreaks.

Availability

🌍 Global — Available worldwide

Request Body (application/json)
Parameter Type Required Description
domain_name string Required Fully qualified domain name to look up (e.g. example.com, example.co.in).
Example Request
cURL
PHP
Fetch
jQuery
Axios
Python
curl -X POST https://app.way2api.com/api/v1/domain/whois_live \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain_name":"kwikapi.com"}'
Success Response — 200
{
    "success": true,
    "message": "Verification successful.",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "verified": true,
        "result": {
            "domain_name": "kwikapi.com",
            "domain_registered": "yes",
            "create_date": "2019-03-19",
            "update_date": "2024-02-18",
            "expiry_date": "2025-03-19",
            "domain_registrar": {
                "iana_id": "1068",
                "registrar_name": "NAMECHEAP INC",
                "whois_server": "whois.namecheap.com",
                "website_url": "http://www.namecheap.com",
                "email_address": "[email protected]",
                "phone_number": "+1.9854014545"
            },
            "registrant_contact": {
                "name": "Redacted for Privacy",
                "company": "Privacy service provided by Withheld for Privacy ehf",
                "street": "Kalkofnsvegur 2",
                "city": "Reykjavik",
                "state": "Capital Region",
                "zip_code": "101",
                "country_name": "Iceland",
                "country_code": "IS",
                "email_address": "[email protected]",
                "phone": "+354.4212434",
                "fax": "N/A",
                "mailing_address": "Kalkofnsvegur 2, 101 Reykjavik, Capital Region, Iceland"
            },
            "administrative_contact": {
                "name": "Redacted for Privacy",
                "company": "Privacy service provided by Withheld for Privacy ehf",
                "street": "Kalkofnsvegur 2",
                "city": "Reykjavik",
                "state": "Capital Region",
                "zip_code": "101",
                "country_name": "Iceland",
                "country_code": "IS",
                "email_address": "[email protected]",
                "phone": "+354.4212434",
                "fax": "N/A",
                "mailing_address": "Kalkofnsvegur 2, 101 Reykjavik, Capital Region, Iceland"
            },
            "technical_contact": {
                "name": "Redacted for Privacy",
                "company": "Privacy service provided by Withheld for Privacy ehf",
                "street": "Kalkofnsvegur 2",
                "city": "Reykjavik",
                "state": "Capital Region",
                "zip_code": "101",
                "country_name": "Iceland",
                "country_code": "IS",
                "email_address": "[email protected]",
                "phone": "+354.4212434",
                "fax": "N/A",
                "mailing_address": "Kalkofnsvegur 2, 101 Reykjavik, Capital Region, Iceland"
            },
            "name_servers": [
                "dns3.cloudns.net",
                "dns4.cloudns.net",
                "dns7.cloudns.net",
                "dns8.cloudns.net"
            ],
            "domain_status": [
                "clientTransferProhibited"
            ]
        }
    }
}
Error Response — 422
{
    "success": false,
    "message": "domain_name must be a valid domain name (e.g. example.com).",
    "data": null
}
🚀 Send Request

Error Handling

All errors return a consistent JSON structure with success: false and a human-readable message. Use the HTTP status code for classification and the message for logging.

Common Error Responses
// 401 — Missing API Key
{
    "success": false,
    "message": "API key is required. Pass it via Authorization: Bearer <key> or X-API-Key header.",
    "data": null
}
// 401 — Invalid API Key
{
    "success": false,
    "message": "Invalid or inactive API key.",
    "data": null
}
// 402 — Insufficient Balance
{
    "success": false,
    "message": "Insufficient balance. Please recharge your account.",
    "data": null
}
// 403 — No API Access
{
    "success": false,
    "message": "You do not have access to this API service.",
    "data": null
}
// 429 — Rate Limited
{
    "success": false,
    "message": "Rate limit exceeded. Please try again later.",
    "data": null
}
// 400 — Verification Failed
{
    "success": false,
    "message": "Verification failed.",
    "data": {
        "order_id": "W2A1739512345abcdef01",
        "error_code": "VERIFICATION_FAILED"
    }
}