Endpoint
Business360
GSTIN, CIN or PAN → Combined profile + risk flags. ₹10.00 per successful call, GST included.
POST/v1/business360₹10.00 incl. GST · failed ₹0
Send any one identifier. Business360 resolves the rest, runs every module in parallel with source fallback, and returns one normalized profile with risk flags. Pick modules with include, pay only for the ones that succeed.
Request
POST /v1/business360
curl https://api.apiserver.in/v1/business360 \
-H "Authorization: Bearer as_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"gstin":"29AAJCK4821M1Z1","include":["gst","gst_returns","pan","company","directors","cin_pan"]}'const res = await fetch("https://api.apiserver.in/v1/business360", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.APISERVER_KEY ?? "as_test_YOUR_KEY"}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"gstin": "29AAJCK4821M1Z1",
"include": [
"gst",
"gst_returns",
"pan",
"company",
"directors",
"cin_pan"
]
}),
});
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/business360",
headers={
"Authorization": f"Bearer {os.getenv('APISERVER_KEY', 'as_test_YOUR_KEY')}",
},
json={
"gstin": "29AAJCK4821M1Z1",
"include": ["gst", "gst_returns", "pan", "company", "directors", "cin_pan"],
},
timeout=10,
)
body = res.json()
print(body["meta"]["charged"], body["meta"]["amount_inr"])<?php
$ch = curl_init('https://api.apiserver.in/v1/business360');
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',
'include' => ['gst', 'gst_returns', 'pan', 'company', 'directors', 'cin_pan'],
]),
]);
$body = json_decode(curl_exec($ch), true);
echo $body['meta']['charged'] ? 'charged' : 'not charged';| Field | Type | Description |
|---|---|---|
| gstin | string | 15-character GSTIN. Validated locally (state code, embedded PAN, mod-36 checksum) before any source is called. |
| cin | string | 21-character Corporate Identification Number. |
| pan | string | 10-character PAN. The 4th character encodes the holder type. |
| include | "gst" | "gst_returns" | "pan" | "company" | "directors" | "cin_pan"[] | Modules to run. Omit for the full bundle. Each module is billed at its single-API price only if it succeeds; the total never exceeds the bundle price. |
Response
{ : true, : "as_req_01J9X2K7R8M4V6T2Q9W3E5Y1ZB", : "business360", : "2026-10-01", : { : { : "KAVERI TEXTILES PRIVATE LIMITED", : "Kaveri Textiles", : "company", : "AAJCK4821M", : "29AAJCK4821M1Z1", : "U17120KA2016PTC094312", : null, : "Karnataka", : { : "low", : [] } }, : { : "ok", : { : "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, : 1, : 300 }, : { : "ok", : { : "29AAJCK4821M1Z1", : "monthly", : [ { : "2026-08", : { : "filed", : "2026-09-10", : "2026-09-11" }, : { : "filed", : "2026-09-18", : "2026-09-20" } }, { : "2026-07", : { : "filed", : "2026-08-10", : "2026-08-11" }, : { : "filed", : "2026-08-18", : "2026-08-20" } }, { : "2026-06", : { : "filed", : "2026-07-10", : "2026-07-11" }, : { : "filed", : "2026-07-18", : "2026-07-20" } }, { : "2026-05", : { : "filed", : "2026-06-10", : "2026-06-11" }, : { : "filed", : "2026-06-18", : "2026-06-20" } }, { : "2026-04", : { : "filed", : "2026-05-10", : "2026-05-11" }, : { : "filed", : "2026-05-18", : "2026-05-20" } }, { : "2026-03", : { : "filed", : "2026-04-10", : "2026-04-11" }, : { : "filed", : "2026-04-18", : "2026-04-20" } }, { : "2026-02", : { : "filed", : "2026-03-10", : "2026-03-11" }, : { : "filed", : "2026-03-18", : "2026-03-20" } }, { : "2026-01", : { : "filed", : "2026-02-10", : "2026-02-11" }, : { : "filed", : "2026-02-18", : "2026-02-20" } }, { : "2025-12", : { : "filed", : "2026-01-10", : "2026-01-11" }, : { : "filed", : "2026-01-18", : "2026-01-20" } }, { : "2025-11", : { : "filed", : "2025-12-10", : "2025-12-11" }, : { : "filed", : "2025-12-18", : "2025-12-20" } }, { : "2025-10", : { : "filed", : "2025-11-10", : "2025-11-11" }, : { : "filed", : "2025-11-18", : "2025-11-20" } }, { : "2025-09", : { : "filed", : "2025-10-10", : "2025-10-11" }, : { : "filed", : "2025-10-18", : "2025-10-20" } } ], : { : 12, : 24, : 0, : 0, : "2026-08" } }, : true, : 1, : 1, : 337 }, : { : "ok", : { : "AAJCK4821M", : true, : "Valid", : "Company", : "KAVERI TEXTILES PRIVATE LIMITED", : null }, : true, : 2, : 1, : 374 }, : { : "ok", : { : "company", : "U17120KA2016PTC094312", : null, : "KAVERI TEXTILES PRIVATE LIMITED", : "Active", : "Private", : "Company limited by shares", : "Non-government company", : "2016-05-12", : "RoC-Bengaluru", : "Unlisted", : 5000000, : 3250000, : { : "17120", : "Textiles" }, : "2025-09-26", : "2025-03-31", : { : "No. 14, 3rd Cross, Phase II", : "Peenya Industrial Area", : "Bengaluru", : "Bengaluru Urban", : "Karnataka", : "560058" } }, : true, : 3.5, : 1, : 411 }, : { : "ok", : { : "U17120KA2016PTC094312", : null, : "KAVERI TEXTILES PRIVATE LIMITED", : 3, : 2, : [ { : "07419266", : "Anand Raghavan", : "Managing Director", : "2016-05-12", : null, : "Approved" }, { : "08133570", : "Kavitha Subramanian", : "Director", : "2018-04-02", : null, : "Approved" }, { : "06522419", : "Prakash Iyer", : "Director", : "2016-05-12", : "2021-03-31", : "Approved" } ] }, : true, : 4, : 1, : 448 }, : { : "ok", : { : "U17120KA2016PTC094312", : null, : "AAJCK4821M", : "KAVERI TEXTILES PRIVATE LIMITED", : "cin_to_pan" }, : true, : 3.5, : 1, : 485 } }, : { : true, : 10, : 612, : "live", : 6, : "2026-10-03T09:12:00+05:30", : "live", : 6, : 6, : { : 14.75, : 10, : 4.75 } }}Response fields
| Field | Type | Description |
|---|---|---|
| summary | object | — |
| ↳legal_name | string | null | — |
| ↳trade_name | string | null | — |
| ↳entity_type | "company" | "llp" | "proprietorship" | null | — |
| ↳pan | string | null | — |
| ↳gstin | string | null | — |
| ↳cin | string | null | — |
| ↳llpin | string | null | — |
| ↳state | string | null | — |
| ↳risk | object | — |
| gst | object | — |
| ↳status | "ok" | "failed" | "not_found" | "skipped" | — |
| ↳data | object | null | — |
| ↳error | object | — |
| ↳reason | string | Why a module was skipped |
| ↳charged | boolean | — |
| ↳amount_inr | number | — |
| ↳attempts | integer | — |
| ↳latency_ms | integer | — |
| gst_returns | object | — |
| ↳status | "ok" | "failed" | "not_found" | "skipped" | — |
| ↳data | object | null | — |
| ↳error | object | — |
| ↳reason | string | Why a module was skipped |
| ↳charged | boolean | — |
| ↳amount_inr | number | — |
| ↳attempts | integer | — |
| ↳latency_ms | integer | — |
| pan | object | — |
| ↳status | "ok" | "failed" | "not_found" | "skipped" | — |
| ↳data | object | null | — |
| ↳error | object | — |
| ↳reason | string | Why a module was skipped |
| ↳charged | boolean | — |
| ↳amount_inr | number | — |
| ↳attempts | integer | — |
| ↳latency_ms | integer | — |
| company | object | — |
| ↳status | "ok" | "failed" | "not_found" | "skipped" | — |
| ↳data | object | null | — |
| ↳error | object | — |
| ↳reason | string | Why a module was skipped |
| ↳charged | boolean | — |
| ↳amount_inr | number | — |
| ↳attempts | integer | — |
| ↳latency_ms | integer | — |
| directors | object | — |
| ↳status | "ok" | "failed" | "not_found" | "skipped" | — |
| ↳data | object | null | — |
| ↳error | object | — |
| ↳reason | string | Why a module was skipped |
| ↳charged | boolean | — |
| ↳amount_inr | number | — |
| ↳attempts | integer | — |
| ↳latency_ms | integer | — |
| cin_pan | object | — |
| ↳status | "ok" | "failed" | "not_found" | "skipped" | — |
| ↳data | object | null | — |
| ↳error | object | — |
| ↳reason | string | Why a module was skipped |
| ↳charged | boolean | — |
| ↳amount_inr | number | — |
| ↳attempts | integer | — |
| ↳latency_ms | integer | — |
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