Endpoint
GST Verify
GSTIN → Legal & trade name, status, registration date, type, address. ₹0.75 per successful call, GST included.
POST/v1/gst/verify₹0.75 incl. GST · failed ₹0
Validates the GSTIN locally (format, state code, embedded PAN, checksum) before touching a source, then returns the registered legal name, trade name, status, registration date, taxpayer type and principal address.
Also available as the
gst module of Business360.Request
POST /v1/gst/verify
curl https://api.apiserver.in/v1/gst/verify \
-H "Authorization: Bearer as_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"gstin":"29AAJCK4821M1Z1"}'const res = await fetch("https://api.apiserver.in/v1/gst/verify", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.APISERVER_KEY ?? "as_test_YOUR_KEY"}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"gstin": "29AAJCK4821M1Z1"
}),
});
const { success, data, meta, error } = await res.json();
console.log(meta.charged, meta.amount_inr); // failed calls are never chargedimport os, requests
res = requests.post(
"https://api.apiserver.in/v1/gst/verify",
headers={
"Authorization": f"Bearer {os.getenv('APISERVER_KEY', 'as_test_YOUR_KEY')}",
},
json={
"gstin": "29AAJCK4821M1Z1",
},
timeout=10,
)
body = res.json()
print(body["meta"]["charged"], body["meta"]["amount_inr"])<?php
$ch = curl_init('https://api.apiserver.in/v1/gst/verify');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . (getenv('APISERVER_KEY') ?: 'as_test_YOUR_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'gstin' => '29AAJCK4821M1Z1',
]),
]);
$body = json_decode(curl_exec($ch), true);
echo $body['meta']['charged'] ? 'charged' : 'not charged';| Field | Type | Description |
|---|---|---|
| gstinrequired | string | 15-character GSTIN. Validated locally (state code, embedded PAN, mod-36 checksum) before any source is called. |
Response
{ : true, : "as_req_01J9X2K7R8M4V6T2Q9W3E5Y1ZB", : "gst.verify", : "2026-10-01", : { : "29AAJCK4821M1Z1", : "KAVERI TEXTILES PRIVATE LIMITED", : "Kaveri Textiles", : "Active", : "2017-07-01", : null, : "Regular", : "Private Limited Company", : "Karnataka", : "29", : "AAJCK4821M", : { : "No. 14, 3rd Cross, Phase II", : "Peenya Industrial Area", : "Bengaluru", : "Bengaluru Urban", : "Karnataka", : "560058" }, : [ "Manufacturing", "Wholesale Business" ], : true }, : { : true, : 0.75, : 284, : "live", : 1, : "2026-10-03T09:12:00+05:30", : "live" }}Response fields
| Field | Type | Description |
|---|---|---|
| gstin | string | The GSTIN, normalised |
| legal_name | string | Legal name of business as registered |
| trade_name | string | Trade name, if different from legal name |
| status | "Active" | "Cancelled" | "Suspended" | Current registration status |
| registration_date | string | Effective date of registration (YYYY-MM-DD) |
| cancellation_date | string | null | Date of cancellation, if cancelled |
| taxpayer_type | "Regular" | "Composition" | Taxpayer type |
| constitution | string | Constitution of business, e.g. Private Limited Company |
| state | string | State of registration |
| state_code | string | Two-digit GST state code |
| pan | string | PAN embedded in the GSTIN |
| principal_place | object | Principal place of business |
| ↳line1 | string | — |
| ↳locality | string | — |
| ↳city | string | — |
| ↳district | string | — |
| ↳state | string | — |
| ↳pincode | string | 6-digit PIN code |
| nature_of_business | string[] | Declared nature of business activities |
| einvoice_enabled | boolean | Whether e-invoicing applies |
Errors
| HTTP | Code | What it means | Retry | Billed |
|---|---|---|---|---|
| 400 | VALIDATION_FAILED | Something in the request isn't in the right shape — usually an ID with a typo or a missing field. | no | ₹0 |
| 401 | AUTH_INVALID_KEY | We couldn't find a valid API key on this request. | no | ₹0 |
| 402 | WALLET_INSUFFICIENT_BALANCE | Your wallet doesn't have enough for this call, so we didn't run it. | no | ₹0 |
| 404 | RECORD_NOT_FOUND | The source has no record for this ID. | no | ₹0 |
| 429 | RATE_LIMITED | You sent requests faster than your key's limit. | yes | ₹0 |
| 503 | PROVIDER_UNAVAILABLE | All upstream sources for this check were down, even after fallback. | yes | ₹0 |
| 504 | PROVIDER_TIMEOUT | The upstream source took too long to answer. | yes | ₹0 |
Try it: open in playground · product page