TradeIndia Suppliers Scraper
Pricing
from $0.84 / 1,000 results
TradeIndia Suppliers Scraper
Search TradeIndia's B2B supplier directory by product/service category and get every listed manufacturer — company name, location, business type, product details, and optionally full profile enrichment (address, GST number, owner, seller tier).
Pricing
from $0.84 / 1,000 results
Rating
0.0
(0)
Developer
Ibnu Adzim
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
TradeIndia Suppliers Scraper — B2B Directory
Search TradeIndia's B2B supplier directory by product/service category and get every manufacturer listed — company name, location, business type, product detail, and (optionally) full profile enrichment: address, GST number, owner name, seller tier. No login, no cookies, no browser.
Why this actor's shape differs from a normal search scraper
TradeIndia's robots.txt closes every pagination mechanism this actor
could otherwise use — query-string paging (?page=) is disallowed
site-wide, and the internal REST/catalog APIs a prior recon session found
are separately blocked (/restapi/, /catalog_apis/, /ai-search/). This
actor does not try to route around that. Each category keyword returns
one page's worth of suppliers (typically ~28) — an honest ceiling
reported on CATEGORY_SUMMARY, not implied to be a partial slice of a
larger reachable set.
A plain slugified guess only matches TradeIndia's own category taxonomy
about 13% of the time — "solar panels" isn't solar-panels, it's
rec-solar-panels; "cotton fabric" isn't cotton-fabric, it's
raw-cotton-fabric. So a category term that doesn't match directly falls
back to the site's own published sitemap (sitemap_manufacturers_index.xml
— robots.txt-endorsed, ~110,000 real category slugs) and resolves to the
best token-overlap match. This fallback loads once per run, lazily, only
if at least one term needs it.
Why one actor, not "search" + "profile lookup" as separate actors
A category search naturally produces profile URLs, and a user who wants
company details (address, GST, owner) inlined shouldn't have to glue two
actor runs together. enrichProfiles is a checklist toggle on one
pipeline; profileUrls (direct profile input, skipping search) reuses the
same enrichment code path.
What you get
SUPPLIER
| Field | Notes |
|---|---|
companyName, city, state, country, businessType | |
establishedYear, memberSinceYears | Not the same thing — memberSinceYears is a duration ("11 years on TradeIndia"), not a year or date |
categoryName, productName, productDescription, priceRange | |
profileUrl, productUrl | |
numberMasked | Always true for unauthenticated visitors — TradeIndia's own privacy gate, not something this actor bypasses. Present so you know not to expect a working phone field, rather than reading a silent None as a scrape failure. |
With enrichProfiles: true (or via profileUrls), also: address,
gstNumber, ownerName, designation, catalogDomain, intro,
sellerTier.
CATEGORY_SUMMARY — one per category term
rowsOnPage (the honest per-category ceiling), profilesEnriched,
finalUrl, and notes — including whether the sitemap fallback had to
resolve your term to a different real slug.
ERROR — one per input that failed
Known limits
- ~28 suppliers per category term. This is TradeIndia's own per-page batch with no policy-compliant way to reach a second page (see above). Search several related keywords to broaden coverage instead of expecting deep pagination on one.
- Phone numbers are always masked for unauthenticated access — a TradeIndia privacy feature, not an extraction gap.
- This host rate-limits hard by IP. Recon burned through a local dev IP's budget after ~40-50 requests in a few minutes; TLS-profile rotation alone did not clear the block, a different exit IP did. Residential proxy is the default for exactly this reason — not a generic caution, load- bearing for this specific host.
Proxy
Residential is the default and matters more here than on most targets in this portfolio — see "Known limits" above.