GST Verification India - GSTIN Lookup & Business Details
Pricing
from $1.20 / 1,000 results
GST Verification India - GSTIN Lookup & Business Details
Verify Indian GST numbers (GSTIN) and get business details. Returns legal name, trade name, registration status, taxpayer type, constitution, state jurisdiction, and more. Bulk GSTIN verification supported.
Pricing
from $1.20 / 1,000 results
Rating
0.0
(0)
Developer
Thirdwatch
Maintained by CommunityActor stats
0
Bookmarked
20
Total users
7
Monthly active users
an hour ago
Last modified
Categories
Share
GST Verification India — GSTIN Lookup & Bulk Validation
Thirdwatch portfolio: 5K users across 88 public Actors, 2M+ records delivered, and >99% run success. Explore all Thirdwatch Actors.
Validate Indian GSTIN format and checksum, then retrieve public registration metadata including legal name, trade name, status, taxpayer type, constitution, jurisdiction, and registration date.
The Actor is built for vendor onboarding, KYB, accounts-payable controls, supplier-master cleanup, and recurring registration-status monitoring. It runs over HTTP at 256 MB—no browser, captcha solver, login, or user API key. Direct requests are used first; a low-cost rotating datacenter request is used only when the public source persistently rejects the Actor's normal IP.
Why use this Actor
- Real checksum validation — catches well-shaped GSTIN typos that a regular expression misses.
- One useful outcome per input — invalid format and checksum values become explicit validation rows instead of disappearing.
- Bulk-ready — up to 10,000 unique inputs, with bounded concurrency and a conservative global three-request-per-second limit.
- Deadline-safe — exits before the Apify timeout and records any unprocessed inputs for a follow-up run.
- Honest source states — distinguishes
verified,not_indexed,invalid_format, andinvalid_checksum. - No billing for transport failures — upstream HTTP failures go to the
ERRORSkey-value-store record, not the paid dataset. - No duplicate billing — whitespace/hyphen variants and repeated GSTINs are normalized and deduplicated across the run.
Data source and freshness
Detailed registration metadata comes from Razorpay's public, server-rendered GST number index. This is a public business index that mirrors registration metadata; it is not a direct authenticated GSTN/GSP feed.
When the index has no detailed record for a checksum-valid GSTIN, the Actor returns verification_status: "not_indexed" and derives the PAN, state, state code, and entity number from the GSTIN itself. Treat not_indexed as “not present in this public index,” not as proof that the registration does not exist.
For regulated decisions requiring authoritative real-time confirmation, cross-check verified and not_indexed outcomes with the official GST portal or a licensed GSP.
Input
{"queries": ["27AADCB2230M1ZT","27AAACT2727Q1ZW"],"maxResults": 100,"concurrency": 8}
| Field | Required | Default | Description |
|---|---|---|---|
queries | Yes | — | GSTIN strings. Spaces and hyphens are removed; duplicates are ignored. |
maxResults | No | 100 | Maximum unique inputs to process, up to 10,000. The run log reports how many additional unique inputs were capped. |
concurrency | No | 8 | Parallel workers, 1–16. All workers share a three-request-per-second cap. |
The advanced concurrency setting controls overlap, not request rate. Raising it can hide network latency but cannot exceed the global upstream-friendly rate limit.
Output
{"gstin": "27AADCB2230M1ZT","business_name": "BILT GRAPHIC PAPER PRODUCTS LIMITED","trade_name": null,"status": "Active","registration_date": "June 30, 2017","registration_date_iso": "2017-06-30","taxpayer_type": "Regular","constitution": "Public Limited Company","state": "Maharashtra","state_jurisdiction": "CHANDRAPUR_501","central_jurisdiction": null,"address": null,"pan": "AADCB2230M","state_code": "27","entity_number": "1","valid_format": true,"checksum_valid": true,"verification_status": "verified","data_source": "razorpay","source_url": "https://razorpay.com/gst-number-search/27AADCB2230M1ZT/","source_http_status": 200,"attempts": 1,"verified_at": "2026-07-16T16:30:00+00:00","query": "27AADCB2230M1ZT"}
Verification statuses
| Status | Meaning | Recommended action |
|---|---|---|
verified | A detailed record was found in the public index. | Use the returned snapshot; cross-check for high-risk decisions. |
not_indexed | Format and checksum are valid, but no detailed indexed record was returned. | Check the official portal/GSP before treating it as unregistered. |
invalid_format | The input is not a 15-character GSTIN. | Correct the source data. |
invalid_checksum | The shape is valid but the check digit is wrong. | Treat as a probable typo or fabricated identifier. |
Error handling
Transient 403, 408, 425, 429, and 5xx responses use bounded exponential backoff and honor Retry-After. Persistent 403s receive one browser-shaped TLS retry and, only if necessary, one rotating datacenter-IP retry. A persistent upstream failure is not written to the paid dataset. Instead, inspect the Actor output property Unbilled Source Errors or the default key-value store record named ERRORS:
{"count": 1,"unprocessedInputs": 0,"items": [{"gstin": "27AADCB2230M1ZT","attempts": 4,"http_status": 503,"error": "Transient HTTP 503"}]}
Pricing
Pay per dataset result. Source transport failures are not dataset results and are not billed.
| Apify tier | Price per validation | Price per 1,000 |
|---|---|---|
| FREE | $0.0020 | $2.00 |
| BRONZE | $0.0018 | $1.80 |
| SILVER | $0.0016 | $1.60 |
| GOLD | $0.0012 | $1.20 |
verified, not_indexed, invalid_format, and invalid_checksum rows are completed validation outcomes and count as results. Repeated normalized GSTINs are emitted only once.
For backward compatibility, registration_date retains the source's display string and data_source retains the value razorpay. New integrations should use registration_date_iso for comparisons and verification_status for the explicit outcome.
Recurring vendor-monitoring workflow
- Export the active vendor GSTIN list from the ERP or AP system.
- Run the Actor monthly with the full list.
- Upsert rows by
gstin, retaining the prior snapshot. - Alert on
statuschanges such as Active → Suspended or Cancelled. - Route
not_indexedand input-validation failures to a manual/GSP verification queue.
Status data changes infrequently, so monthly full-list verification plus on-demand checks for newly onboarded vendors is usually more useful and cheaper than daily polling.
Limitations
- This Actor returns registration metadata available in the public index. It does not return GSTR filing history, e-invoice eligibility, turnover, authorized signatories, goods/services classifications, or cancellation history.
- Public-index metadata can lag the official GST portal.
- Address, trade name, and central jurisdiction are absent for some records.
not_indexeddoes not mean “invalid” or “cancelled.”
Pairs well with IndiaMart Supplier Scraper for supplier discovery and MCA India Scraper for company-registry cross-checks.
More workflow recipes are available at thirdwatch.dev.
Last verified: 2026-07