GST Verification India - GSTIN Lookup & Business Details avatar

GST Verification India - GSTIN Lookup & Business Details

Pricing

from $1.20 / 1,000 results

Go to Apify Store
GST Verification India - GSTIN Lookup & Business Details

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

Thirdwatch

Maintained by Community

Actor 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, and invalid_checksum.
  • No billing for transport failures — upstream HTTP failures go to the ERRORS key-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
}
FieldRequiredDefaultDescription
queriesYesGSTIN strings. Spaces and hyphens are removed; duplicates are ignored.
maxResultsNo100Maximum unique inputs to process, up to 10,000. The run log reports how many additional unique inputs were capped.
concurrencyNo8Parallel 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

StatusMeaningRecommended action
verifiedA detailed record was found in the public index.Use the returned snapshot; cross-check for high-risk decisions.
not_indexedFormat and checksum are valid, but no detailed indexed record was returned.Check the official portal/GSP before treating it as unregistered.
invalid_formatThe input is not a 15-character GSTIN.Correct the source data.
invalid_checksumThe 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 tierPrice per validationPrice 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

  1. Export the active vendor GSTIN list from the ERP or AP system.
  2. Run the Actor monthly with the full list.
  3. Upsert rows by gstin, retaining the prior snapshot.
  4. Alert on status changes such as Active → Suspended or Cancelled.
  5. Route not_indexed and 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_indexed does 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