API Sathi docs

Tutorial

Getting started with API Sathi

From sign-up to your first live API call in about 10 minutes. One account and one API key give you every API in the catalogue — PAN, GST, Aadhaar (DigiLocker), DL, RC, credit reports and more — billed from a single prepaid wallet with GST invoices.

  1. 1.Create your account
  2. 2.Add money to your wallet
  3. 3.Create an API key
  4. 4.Try an API in the portal
  5. 5.Call the API from your code
  6. 6.Go live, monitor and download reports

1Create your account

Go to apisathi.in/signup and enter your name, work email, mobile number (with country code) and a password. You land on your dashboard straight away — no paperwork is needed to start. New accounts get free sandbox credits for TEST mode.

API Sathi sign-up form

Tip: add your company's legal name, GSTIN and billing address under Onboarding so your GST invoices carry them and you can claim input credit. It cannot be added to an invoice afterwards.

API Sathi dashboard with usage and live tail

2Add money to your wallet

API Sathi is prepaid: you recharge a wallet and each successful call is deducted from it. Failed calls are never charged. Open Wallet, pick an amount (minimum ₹200) or enter a custom amount, and pay by UPI, card or net banking. 18% GST is added at checkout and you get a GST invoice for every recharge. Your balance updates within seconds.

Larger recharges earn bonus credit — up to 26.6% extra on ₹20,000. Set a low-balance alert or turn on auto-recharge on the same page so your calls never stop.

Wallet page with recharge amounts and bonus credit

You can skip this step while testing: TEST mode uses free sandbox credits, not your wallet.

3Create an API key

Open API Keys → Create key.

  • Name — where it will be used, e.g. “Production backend”.
  • Environment — test keys (start with test_) return sample data and cost nothing; live keys (live_) query real sources and charge your wallet.
  • Scopes — leave “All products” or limit the key to the APIs it needs.
  • Rate limits and allowed IPs — optional. Restricting a live key to your server's IP address is strongly recommended.
Create API key dialog

Copy the key when it is shown — it is displayed only once. Store it in your server's environment or secrets manager. Never put a live key in a mobile app, website JavaScript or a public repository. If a key leaks, revoke it on this page and create a new one.

API keys list

4Try an API in the portal

Before writing code, try any API from APIs & Pricing. Switch the toggle at the top to TEST for free sample answers, search for the API (e.g. “PAN”) and click Try it.

API catalogue with search and Try it

Fill in the inputs and run it. You see the exact JSON your code will receive, what you were charged, and a Download PDF report button that produces a readable, branded report of the result.

Try it dialog showing a sandbox response

5Call the API from your code

Every API is one POST request to the same base URL, with your key in the X-API-Key header and a JSON body:

POST https://apisathi.in/gw/v1/<api-name>/
X-API-Key: test_xxxxxxxxxxxx      (or live_…)
Content-Type: application/json

The <api-name> and its inputs are on each API's page in these docs (e.g. PAN Verification). Example — verify a PAN:

cURL

curl https://apisathi.in/gw/v1/pan-verification-v1/ \
  -H "X-API-Key: $APISATHI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pan":"ABCDE1234F"}'

Node.js

const res = await fetch('https://apisathi.in/gw/v1/pan-verification-v1/', {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.APISATHI_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ pan: 'ABCDE1234F' }),
});
const data = await res.json();
console.log(res.status, data);

Python

import os, requests

r = requests.post(
    "https://apisathi.in/gw/v1/pan-verification-v1/",
    headers={"X-API-Key": os.environ["APISATHI_KEY"]},
    json={"pan": "ABCDE1234F"},
    timeout=30,
)
print(r.status_code, r.json())

PHP

$ch = curl_init("https://apisathi.in/gw/v1/pan-verification-v1/");
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    "X-API-Key: " . getenv("APISATHI_KEY"),
    "Content-Type: application/json",
  ],
  CURLOPT_POSTFIELDS => json_encode(["pan" => "ABCDE1234F"]),
]);
$body = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), " ", $body;

Sample response

{
  "verified": true,
  "name": "ROHIT SHARMA",
  "category": "Individual",
  "aadhaar_linked": true
}

Response codes to handle

HTTPMeaning
200Success — the result is in the body. Charged.
400Invalid input — check the fields against the API page. Not charged.
401 / 403Missing, invalid or revoked API key, or the key is not scoped for this API.
402Insufficient wallet balance — recharge and retry.
404No record found at the source for that input (e.g. wrong number). Not charged.
429Rate limit or duplicate-request limit — slow down and retry.
502 / 503The upstream source is busy or down — retry after a few minutes. Not charged.

Every response carries an X-Call-Id header. Log it — it is how you (and our support team) find a call later, and how you download its PDF report.

API documentation page for PAN Verification

6Go live, monitor and download reports

  • When your integration works with a test_ key, create a live_ key, recharge the wallet and swap the key in your server configuration. Nothing else changes.
  • The Dashboard shows calls, success rate, spend by API and a live tail of your last 100 calls — each with a PDF report button.
  • Recharge invoices are under Wallet. Low-balance alerts arrive by email and SMS.
  • Install the API Sathi app (Android & iPhone) for balance, usage, keys and alerts on your phone.
  • Consent: for Aadhaar (DigiLocker) and credit reports, you must capture the individual's consent (OTP) before the call. Each API page describes what to send.

Need help?

Phone / WhatsApp +91 74130 14661 · Chat with us from any page of apisathi.in. Browse every API and price at apisathi.in/apis.