API Documentation
Everything you need to integrate our APIs. Built for developers, designed for production.
Introduction
Our API platform provides reliable, production-ready infrastructure services designed to simplify common backend and fintech workflows.
We offer a unified set of APIs for DNS intelligence, UPI validation, and essential developer utilities, enabling teams to build faster without managing complex integrations or unreliable data sources.
Each API is designed with consistency, performance, and scalability in mind. Responses follow a predictable structure, support bulk queries where applicable, and are optimized with intelligent caching to ensure low latency and high availability.
Whether you are validating user inputs, improving payment reliability, or building internal tooling, our APIs are built to work seamlessly in both development and production environments.
Rate Limits
To ensure reliability and fair usage, all API requests are subject to rate limiting.
- Unauthenticated requests (no API key) are limited to 10 requests/min per IP address across all endpoints.
- Authenticated requests (using an API key) are governed by your subscription plan:
Free plan: Up to 100 requests/day.
Pro plan: Up to 1,000 requests/day.
Enterprise plan: Custom request limits based on your requirements. Please contact us to discuss a tailored plan.
Rate limits are enforced automatically. Exceeding the limit will result in HTTP 429 Too Many Requests responses until the quota resets.
Pagination
Many list-based endpoints support optional pagination through query parameters such as limit, page, and skip. These parameters allow clients to control the number of results returned and navigate large datasets efficiently.
The limit parameter defines how many items are returned per request, while page enables page-based navigation starting from page 1. Alternatively, skip can be used to offset a specific number of records, which is useful for cursor-like or infinite scrolling implementations.
Paginated responses include a meta object containing helpful information such as the total number of available records, the current page, and the total number of pages. This ensures clients can build predictable pagination controls without additional calculations.
Authentication
Authorization HeaderFor authenticated requests, include your API key in the "Authorization" header as a Bearer token. You can obtain an API key by signing up for an account and subscribing to a plan. The default plan is Free, which provides limited access to the APIs.
Request
Authorization: Bearer apitools-xxxx
DNS APIs
/v1/dns/a?domains=example.com,example.orgResponse
{ "data": { "example.com": ["192.2.42.4"], "example.org": ["192.2.42.5"] }, "success": true, "message": "A records resolved successfully." }
/v1/dns/aaaa?domains=example.com,example.orgResponse
{ "data": { "example.com": ["2607:f8b0:4004:c08::8b"], "example.org": ["2606:2800:220:1:248:1893:25c8:1946"] }, "success": true, "message": "AAAA records resolved successfully." }
/v1/dns/txt?domains=example.com,example.orgResponse
{ "data": { "example.com": [ ["v=spf1 include:_spf.mx.example.net ~all"] ], "example.org": [ ["v=spf1 include:_spf.example.org ~all"] ] }, "success": true, "message": "TXT records resolved successfully." }
/v1/dns/ns?domains=example.com,example.orgResponse
{ "data": { "example.com": ["ns1.example.com","ns2.example.com"], "example.org": ["ns1.example.org","ns2.example.org"] }, "success": true, "message": "NS records resolved successfully." }
/v1/dns/mx?domains=example.com,example.orgResponse
{ "data": { "example.com": [{ "exchange": "mail.example.com", "priority": 10 }, { "exchange": "mail2.example.com", "priority": 20 }], "example.org": [{ "exchange": "mail.example.org", "priority": 10 }, { "exchange": "mail2.example.org", "priority": 20 }] }, "success": true, "message": "MX records resolved successfully." }
/v1/dns/ptr?ips=1.1.1.1,8.8.8.8Response
{ "data": { "1.1.1.1": ["one.one.one.one"], "8.8.8.8": ["dns.google"] }, "success": true, "message": "PTR records resolved successfully." }
UPI APIs
/v1/upi/links/generate?amount=100&handle=chirayusahu2@okicici¬e=Payment%20for%20CoffeeTakes amount, UPI handle, and an optional note as URL query parameters.
Response
{ "data": { "links": [ { "name": "UPI", "url": "upi://pay?pa=chirayusahu2@okicici&am=100&cu=INR&tn=Payment%20for%20Coffee" }, { "name": "GooglePay", "url": "tez://upi/pay?pa=chirayusahu2@okicici&am=100&cu=INR&tn=Payment%20for%20Coffee" }, { "name": "PhonePe", "url": "phonepe://upi/pay?pa=chirayusahu2@okicici&am=100&cu=INR&tn=Payment%20for%20Coffee" }, { "name": "Paytm", "url": "paytmmp://pay?pa=chirayusahu2@okicici&am=100&cu=INR&tn=Payment%20for%20Coffee" }, { "name": "AmazonPay", "url": "amazonpay://upi/pay?pa=chirayusahu2@okicici&am=100&cu=INR&tn=Payment%20for%20Coffee" }, { "name": "BHIM", "url": "bhim://upi/pay?pa=chirayusahu2@okicici&am=100&cu=INR&tn=Payment%20for%20Coffee" }, { "name": "WhatsApp", "url": "whatsapp://upi/pay?pa=chirayusahu2@okicici&am=100&cu=INR&tn=Payment%20for%20Coffee" } ] }, "success": true, "message": "Payment links generated successfully" }
/v1/upi/linksResponse
{ "data": { "links": [ "UPI","PhonePe","GooglePay","Paytm","AmazonPay","BHIM","WhatsApp", "Mobikwik","Freecharge","Truecaller","Cred","MiPay","SamsungPay", "JioPay","OlaMoney","AirtelThanks","YonoSBI","AxisBank","ICICIiMobile", "HDFCPayZapp","RealmePaySa" ] }, "success": true, "message": "Payment links generated successfully" }
/v1/upi/handlesResponse
{ "data": { "updatedAt": "2025-12-14T13:56:05.119Z", "handles": [ { "name": "Google Pay", "handleName": "@okicici", "link": "https://support.google.com/pay/india/", "bank": "ICICI Bank" }, { "name": "PhonePe", "handleName": "@ybl", "link": "https://www.phonepe.com/contact-us/", "bank": "Yes Bank" }, { "name": "Paytm", "handleName": "@paytm", "link": "https://paytm.com/", "bank": "Yes Bank" }, { "name": "WhatsApp", "handleName": "@waicici", "link": "https://www.whatsapp.com/contact/", "bank": "ICICI Bank" } ] }, "success": true, "message": "Valid Handles fetched successfully" }
/v1/upi/ifsc/YESB0DNB002Response
{ "data": { "BRANCH": "Delhi Nagrik Sehkari Bank IMPS", "CENTRE": "DELHI", "DISTRICT": "DELHI", "STATE": "MAHARASHTRA", "ADDRESS": "720, NEAR GHANTAGHAR, SUBZI MANDI, DELHI - 110007", "CONTACT": "+919560344685", "IMPS": true, "CITY": "MUMBAI", "UPI": true, "MICR": "110196002", "RTGS": true, "NEFT": true, "SWIFT": null, "ISO3166": "IN-MH", "BANK": "Delhi Nagrik Sehkari Bank", "BANKCODE": "DENS", "IFSC": "YESB0DNB002" }, "success": true, "message": "Bank details fetched successfully" }
QR Code APIs
/v1/qr/generate?data=hello-world&format=jsonGenerates a QR code for the provided input data. Supports multiple output formats including PNG image, SVG, terminal-friendly (ASCII/UTF-8), and JSON (Base64-encoded image). The QR content is passed using the data query parameter, and the desired response format can be specified using the format parameter. If no format is provided, the API defaults to returning a PNG image.
Supported formats: image, svg, terminal, json
Example: /v1/qr/generate?data=hello-world&format=json
Response
{ "data": { "qrCode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHQA...." }, "success": true, "message": "QR code generated successfully" }