Send a 15-character GST number, get back who it belongs to, whether it is still active, when it was registered and where — live from the GST network, in JSON, with one header.
No credit card · Credits never expire · Every call hits the live GST network
No SDK required, no OAuth dance, no GST portal credentials. An API key in a header is the entire integration.
Request
curl "https://www.gstinapi.in/v1/gstin/22AAAAA0000A1Z5" \ -H "x-api-key: gak_your_api_key"
What each field means
| legal_name | Registered legal name of the taxpayer |
| trade_name | Trade name, if different from the legal name |
| status | Active, Cancelled, Suspended or Inactive — as the GST network holds it today |
| taxpayer_type | Regular, Composition, SEZ, Casual and so on |
| registration_date | When the GSTIN was granted |
| cancellation_date | Set when the registration has been cancelled |
| address | Principal place of business, plus a structured address_details object |
| state_code | The two-digit state code the GSTIN was issued in |
| block_status | Whether e-way bill generation is blocked for this GSTIN |
Response
{
"success": true,
"gstin": "22AAAAA0000A1Z5",
"credits_remaining": 96,
"response_ms": 412,
"data": {
"legal_name": "EXAMPLE PRIVATE LIMITED",
"trade_name": "EXAMPLE PVT LTD",
"status": "Active",
"taxpayer_type": "Regular",
"registration_date": "2017-07-01",
"cancellation_date": null,
"state_code": "22",
"address": "SHOP NO. 12, 1ST FLOOR, 123 BUSINESS PARK, RAIPUR",
"pincode": "492001",
"block_status": "Unblocked"
}
}Abridged. The full response also carries a structured address_details object, and ?include=profile adds e-invoice status, nature of business, jurisdiction and additional addresses at the same credit cost.
A GST number can be Active and months behind on returns. The same key answers the questions a status field cannot — and every endpoint uses the same credits.
GET/v1/gstin/{gstin}
Verify a GST number
Name, status, type, registration date and address in one call. Add ?include=profile for e-invoice status, nature of business and jurisdiction.
GET/v1/gstin/{gstin}/returns
Return filing history
Every GSTR-1 and GSTR-3B filed in a financial year, with filing dates and ARNs. Active on paper, silent on returns — this is how you tell.
GET/v1/gstin/{gstin}/compliance
Compliance summary
Filed counts, last filed period and average filing delay per return type — a vendor risk score you can threshold on.
GET/v1/gstin/{gstin}/filing-preference
Monthly or quarterly filer
QRMP preference quarter by quarter, so your reconciliation expects the right cadence.
Also on the same key: HSN / SAC code lookup and vendor monitoring that re-checks your suppliers and alerts you on change.
One credit per successful lookup. Up to 75 free to start, then prepaid packs that never expire. A malformed number, an unregistered one, or a provider error costs nothing.
Starter
₹199
250 lookups
₹0.80 / lookup
Business
₹999
2,000 lookups
₹0.50 / lookup
Scale
₹2,499
6,250 lookups
₹0.40 / lookup
Prices exclusive of 18% GST. Volume above 25,000 lookups a month from ₹0.30 per lookup — ask for a quote. Compare us honestly with other providers on the comparison page.
Official libraries
npm install gstinapi · pip install gstinapi. Both validate the checksum before calling, so a typo never spends a credit, and retry the right status codes.
Same shape every time
success is true or false on every response. One check is all your code strictly needs; the data schema never changes between lookups.
Free test GSTIN
00AAAAA0000A1ZT returns a fixed, real-shaped response and never consumes a credit — CI keeps passing when the wallet is empty.
60 requests a minute
Per key, with RateLimit headers on every response. Higher limits on request for bulk jobs.
OpenAPI spec and Postman
Import /openapi.json straight into Postman or Insomnia. Every endpoint, parameter and response schema is in there.
Public status page
Health, success rate and response times over the last hour are published live at /status, so you see an upstream wobble before your users report it.
Step-by-step guides: Python · Node.js · PHP · C# · Java · Go · Excel and Google Sheets · n8n and Zapier · Tally, Vyapar and Marg
Vendor onboarding
Verify a supplier's GST number before the first purchase order, and store the legal name the invoices must carry.
Invoice validation in ERP and billing software
Check the buyer or seller GSTIN as the invoice is raised, so a typo never reaches an e-invoice or e-way bill.
CA firms and bulk checks
Run a client's whole vendor master through the API before a return period, and flag the cancelled ones before ITC is claimed.
Marketplace and fintech KYC
Confirm a business is registered and active before it can sell, borrow or be paid on your platform.
Yes. Every gstinapi.in account gets up to 75 free lookups — 10 on signup and 65 more across the setup steps on the dashboard — with no credit card, and the credits never expire. There is also a free public GST number search on this site for one-off checks without an account.
No. There is no setup fee, no annual fee and no minimum term. Integrate free first: the test GSTIN 00AAAAA0000A1ZT and the test PAN AAAAA0000A answer every GSTIN and PAN endpoint with a sample in the live response shape, without spending a credit. Buy a pack only when you switch to real GSTINs.
On gstinapi.in a successful lookup costs one credit. Credit packs start at ₹199 for 250 lookups (₹0.80 each) and fall to ₹0.40 per lookup on the 6,250-credit pack — level with the cheapest published rate we know of; volume plans above 25,000 lookups a month start at ₹0.30. Prices are exclusive of 18% GST, shown before payment. Malformed numbers, unregistered numbers and provider errors are never charged.
Validation checks the format — 15 characters, a valid state code, a PAN in the middle and a correct checksum digit — and can be done offline. Verification asks the GST network whether that number is actually registered, to whom, and whether it is still active. A GSTIN can pass validation and still be cancelled or fabricated; only verification catches that. Our client libraries validate first so a typo never spends a credit, then verify.
Yes. The status field returns the registration status the GST network holds at the moment of the call — Active, Cancelled, Suspended or Inactive — and cancellation_date is filled when a registration has been cancelled. For vendors you deal with repeatedly, monitoring re-checks them on a schedule and alerts you the day the status changes.
Every lookup is made against the GST network through licensed GSP infrastructure at the time you call. Nothing is served from a cache, so a cancellation that happened this morning shows this afternoon. Responses carry a response_ms field so you can see the round trip; most complete in well under a second.
No. The GST portal's own API access is meant for taxpayers filing through an ASP/GSP and needs a registered application and OTP flows. gstinapi.in sits on top of that infrastructure and exposes a plain REST API — sign up, copy your key, send one header. There is nothing to enable on the GST portal.
Yes, with the same key. The returns endpoint lists every GSTR-1 and GSTR-3B filed in a financial year with dates and ARNs, and the compliance endpoint summarises it into filed counts, last filed period and average delay. A registration can be Active and months behind on filings — for input tax credit that is usually the question that matters.
Anything that can make an HTTPS request. There are official Node.js (npm install gstinapi) and Python (pip install gstinapi) libraries, step-by-step guides for PHP, C#, Java and Go, an OpenAPI spec for Postman or Insomnia, and a test GSTIN that never consumes a credit so your CI keeps passing.
Sign up, copy the key, paste the curl. Up to 75 lookups on us.
Just need to check one number? Use the free GST number search — no account needed.