Verify Indian GSTINs against the official GST portal: legal name, trade name, registration status, constitution, registration and cancellation dates, jurisdiction, principal address, and declared HSN/SAC codes with a plain-English line of business. Solves the portal's CAPTCHA with a vision model, no manual step, no third-party GSTIN database. Failed and empty results are never charged.
Run it on Apify: apify.com/themineworks/gst-taxpayer-lookup Docs, FAQ and pricing: themineworks.com/actors/gst-taxpayer-lookup
Price: From $3.00 per 1,000 GSTINs on Apify's higher plans ($4.00 on the free plan), plus a $0.02 start fee per run. Failed and empty results are never charged.
- Legal name, trade name, status, and constitution per GSTIN
- Registration and cancellation dates, jurisdiction, and address
- Declared HSN/SAC codes with a plain-English business summary
- Solves the GST portal CAPTCHA automatically via vision model
- Short-term cache avoids re-billing repeat lookups
- Failed lookups are never charged
You need a free Apify account and its API token (Settings, API & Integrations).
pip install apify-clientfrom apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("themineworks/gst-taxpayer-lookup").call(run_input={
"gstins": [
"27ABQFM7569K1Z9",
"24AAWFA8982B1Z3"
],
"maxAttempts": 6,
"concurrency": 5,
"describeBusiness": true
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)npm install apify-clientimport { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/gst-taxpayer-lookup').call({
"gstins": [
"27ABQFM7569K1Z9",
"24AAWFA8982B1Z3"
],
"maxAttempts": 6,
"concurrency": 5,
"describeBusiness": true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);One request that runs the actor and returns the results in the response (for runs under 5 minutes):
curl -X POST "https://api.apify.com/v2/acts/themineworks~gst-taxpayer-lookup/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"gstins": ["27ABQFM7569K1Z9", "24AAWFA8982B1Z3"], "maxAttempts": 6, "concurrency": 5, "describeBusiness": true}'This repo includes ready-made clients that save results to JSON and CSV:
python3 gst_number_search.py --token YOUR_APIFY_TOKEN --gstins "27ABQFM7569K1Z9,24AAWFA8982B1Z3" --max-attempts "6" --concurrency "5" --describe-business
node gst_number_search.mjs --token YOUR_APIFY_TOKEN --gstins "27ABQFM7569K1Z9,24AAWFA8982B1Z3" --max-attempts "6" --concurrency "5" --describe-business| Field | Type | Default | Description |
|---|---|---|---|
gstins (required) |
array | One or more GSTINs to verify, standard 15-character format (for example 27ABQFM7569K1Z9) | |
maxAttempts |
integer | 6 |
The portal returns a generic session error on a wrong CAPTCHA, so recovery means a fresh session and a fresh… |
concurrency |
integer | 5 |
How many GSTINs to look up at once |
describeBusiness |
boolean | true |
Writes a one-sentence description of what the supplier actually deals in, generated strictly from the HSN and… |
cacheMaxAgeDays |
integer | 7 |
A GSTIN looked up within this many days is served from your own cache and is NOT charged again |
One row per result, as JSON, CSV, Excel or through the API.
| Field | Type | Description |
|---|---|---|
gstin |
string | The 15-character GSTIN looked up |
found |
boolean | Whether a real taxpayer record was found |
legalName |
string | Registered legal name |
tradeName |
string | Trade name, if different from legal name |
status |
string | Registration status (Active, Cancelled, etc) |
constitutionOfBusiness |
string | Business constitution (Proprietorship, Private Limited, etc) |
taxpayerType |
string | Taxpayer type (Regular, Composition, etc) |
registrationDate |
string | GST registration date |
principalAddress |
string | Principal place of business address |
natureOfBusinessActivities |
array | Declared business activities |
goodsHsn |
array | HSN codes and descriptions for goods dealt in |
servicesSac |
array | SAC codes and descriptions for services offered |
error |
string | Error reason when found is false |
The actor works as a tool in Claude, Cursor or any MCP client through Apify's MCP server:
https://mcp.apify.com/?tools=themineworks/gst-taxpayer-lookup
A 15-character Goods and Services Tax Identification Number assigned to every business registered under India's GST regime. It encodes the state code and PAN, and is required on every B2B invoice.
The official GST portal (services.gst.gov.in), not a resold or cached third-party dataset. The portal's own CAPTCHA is solved automatically with a vision model, so there is no manual step and no stale data.
It synthesizes the declared HSN (goods) and SAC (services) codes into a one-sentence, plain-English description of what the business actually does, useful when a company name alone does not tell you.
Yes. Status, registration date, and cancellation date (if applicable) come back per GSTIN, which is the standard first check before onboarding a new vendor or reconciling an old invoice.
Pay per result: from $3.00 per 1,000 GSTINs on Apify's higher plans, $4.00 on the free plan, plus a $0.02 start fee per run. A failed lookup, including one blocked by the portal, is never charged, and repeat lookups within the cache window are not re-billed.
Yes. Every run saves to an Apify dataset you can download as JSON, CSV, Excel or XML, or read through the API. The Python and Node clients in this repo also write the results to local files.
Yes. Save your input as a task on Apify and attach a schedule, or call the API from your own cron job. Scheduled runs are billed the same way as manual ones.
- World Bank Trade Scraper: Imports and exports by country and product, from World Bank WITS
- EU VAT Validator: Bulk EU VAT number verification via official VIES
- SEC EDGAR Filings: Structured SEC filings ready for AI and RAG pipelines
Part of The Mine Works: 151 pay-per-result scrapers with no login and no browser setup on your side.
MIT © The Mine Works