Email Verifier + GSTIN/PAN/IFSC Validator (Half Price)
Pricing
Pay per usage
Email Verifier + GSTIN/PAN/IFSC Validator (Half Price)
Bulk email check: syntax, MX / null-MX DNS, disposable domains, role and free-provider flags, typo hints (no SMTP probing). Also validates Indian phone numbers, GSTIN checksum, PAN and IFSC. $0.445 per 1,000.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Unadhi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
Email Verifier + GSTIN / PAN / IFSC / Indian Phone Validator (half price, no SMTP)
This actor cleans a list before you use it. It checks emails, Indian phone numbers, GSTINs, PANs and IFSC codes in bulk. Everything runs offline or through a DNS lookup. It never opens an SMTP connection to anyone's mail server, so it can't get your IP blocklisted or look like spam probing.
Price: $0.445 per 1,000 values (email-verified / value-validated at $0.000445). That is half the most-used Store email verifier's $0.89 per 1,000, which also bills platform usage to the user. Duplicates are removed before charging. Rows that fail a check are still charged, because the check itself is the work.
What you get
| Type | Checks | Key output fields |
|---|---|---|
| Syntax (practical RFC 5321/5322, IDN → punycode). DNS: MX, null MX (RFC 7505) and NXDOMAIN, with A/AAAA as the implicit MX. Disposable domain (9,185-domain CC0 list, subdomains included). Role mailbox (info@, sales@…). Free provider. Typo hint (gmial.com → gmail.com) | verdict (valid / risky / invalid / unknown), reason, mxHosts, disposable, role, freeProvider, didYouMean | |
| Phone | libphonenumber: valid for its country, line type (mobile / fixed / toll-free…). Default region IN, and handles 0- and 91-prefixed inputs | e164, national, international, lineType, waMe (mobiles only) |
| GSTIN | 15-character format, state code (01–38, 97, 99), embedded PAN, non-zero entity number, official mod-36 check character | valid, state, pan, panHolderType, checksumOk, reason (gives the expected check character) |
| PAN | Format AAAAA9999A plus the 4th-character holder type (C company, P individual, F firm…) | valid, holderType |
| IFSC | Format AAAA0XXXXXX, with the bank name from the bundled RBI bank list (1,511 codes) | validFormat, bank, bankKnown |
What "valid" means (and what it doesn't)
- Email
valid= correct syntax, the domain publishes MX records, it isn't disposable and there's no likely typo. We don't check that the mailbox exists. Nobody can do that without SMTP probing, and even SMTP probing is unreliable on catch-all servers and Gmail/Outlook. If you need mailbox-level checks, use an SMTP verifier and pay for it. risky= disposable domain, an A-record-only domain (no MX), or a likely typo.unknown= DNS timeout or SERVFAIL, so run it again later.- PAN has no public checksum, so we check format and holder type only. IFSC has no checksum, and we don't confirm offline that the branch exists.
- GSTIN
validmeans the number is well-formed and its check character is correct. It does not mean the registration is active, which only the GST portal can confirm.
Input
Pass emails, phones, gstins, pans and ifscs as lists. You can also pass a datasetId, such as the output of a contact-details scraper run. Set datasetEmailField (default emails; it accepts strings, lists of strings, or lists of {email: …} objects) and optionally datasetPhoneField. Set checkDns: false for a check with no network use at all.
Measured (box, 29 Sep 2026)
See test/RESULTS.md.
- Hand-labelled sample of 94 emails: 94/94 correct verdicts. The reference
python-email-validator(syntax + MX) got 75/94, missing all 12 disposables and 5 of 6 typos. Role flag: 69/69 (66/69 before 3 words were added). - 19 real public GSTINs (TCS, Infosys, Wipro, Reliance, HDFC Bank, L&T, HUL, Maruti, Airtel, ITC): 19/19 pass.
- GSTIN mutations: all 9,975 single-character substitutions were caught (100%), and 224 of 225 adjacent transpositions (99.56%).
- Speed: 929 unique emails over 209 domains took 3.1 s wall, 1.38 CPU-s and 76 MB peak RAM.
Privacy (DPDP Act 2023 / GDPR)
Email addresses and phone numbers are personal data. Only process lists you have a lawful basis for, such as your own customers or leads collected with a notice. The actor sends each email's domain (not the address) to public DNS resolvers. It stores results only in your run's dataset. It contacts no mail server and no third-party API.