{
  "data": {
    "id": "Kw2mExxbbkuj6wSRV",
    "actId": "0DBfCnh9xJK5PP48C",
    "userId": "IYgBDiXtHOijAaUel",
    "startedAt": "2026-10-25T07:47:50.078Z",
    "finishedAt": "2026-10-25T07:48:17.322Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 27184,
      "runTimeSecs": 27.184,
      "computeUnits": 0.030204444444444443,
      "imageSizeBytes": 3103213568
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "QYo53EZkJk0prePWY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"US Wholesale Supplier Directory Scraper Input\",\n  \"description\": \"Find US wholesale, dropship and closeout suppliers on WholesaleCentral.com by keyword, live category, or supplier URL. Filter by state, minimum order, keyword, or featured placement.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"How to discover suppliers. `search` uses the supplier-only search tab; `bySupplier` refreshes a known list of supplier URLs/slugs.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"byCategory\",\n        \"search\",\n        \"bySupplier\"\n      ],\n      \"enumTitles\": [\n        \"Browse live categories\",\n        \"Keyword search suppliers\",\n        \"Fetch specific supplier URLs\"\n      ],\n      \"default\": \"byCategory\",\n      \"prefill\": \"byCategory\"\n    },\n    \"category\": {\n      \"title\": \"Category\",\n      \"type\": \"string\",\n      \"description\": \"One of the 54 live top-level supplier categories (mode=byCategory). Use `categories` to crawl several at once, or `customCategorySlug` for a narrower sub-category.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"Amazon-FBA\",\n        \"Apparel\",\n        \"Art-Supplies\",\n        \"As-Seen-On-TV\",\n        \"Automotive\",\n        \"Baby-Products\",\n        \"Business-Opportunities\",\n        \"Business-Services\",\n        \"C-Store-Items\",\n        \"Candles-Incense-Potpourri\",\n        \"CBD-products\",\n        \"Closeout-Suppliers\",\n        \"Collectibles\",\n        \"Computer-Products\",\n        \"Crafts-Supplies\",\n        \"Dollar-Store\",\n        \"Dropshippers\",\n        \"Electronics\",\n        \"Fashion-Accessories\",\n        \"Food-Grocery\",\n        \"General-Merchandise\",\n        \"Gifts\",\n        \"Handbags-Luggage\",\n        \"Health-Beauty\",\n        \"Holiday-Seasonal\",\n        \"Home-Furnishing-Housewares\",\n        \"Jewelry\",\n        \"Knives\",\n        \"Lawn-Garden\",\n        \"Leather\",\n        \"Made-In-USA\",\n        \"Military-Goods\",\n        \"Novelties\",\n        \"Office-Supplies\",\n        \"Party-Items-Greeting-Cards\",\n        \"Perfume\",\n        \"Pet-Supplies\",\n        \"Professional-Supplies\",\n        \"Promotional\",\n        \"Regional-Ethnic\",\n        \"Religious-Items\",\n        \"Self-Defense-Security\",\n        \"Shoes-Footwear\",\n        \"Smoking-Products\",\n        \"Souvenirs\",\n        \"Sporting-Goods\",\n        \"Store-Dealer-Supplies\",\n        \"Sunglasses-Eyewear\",\n        \"Survival-emergency-kits\",\n        \"Telephone-Cellular\",\n        \"Tools-Hardware\",\n        \"Toys-Hobbies\",\n        \"Vape-Products-Eliquids-Smoking-Products\",\n        \"Watches\"\n      ],\n      \"enumTitles\": [\n        \"Amazon FBA Suppliers\",\n        \"Wholesale Clothing\",\n        \"Art & Supplies\",\n        \"As Seen On TV\",\n        \"Automotive\",\n        \"Baby Items\",\n        \"Business Opportunities\",\n        \"Business Services\",\n        \"C-Store Items\",\n        \"Candles, Oils, Incense\",\n        \"CBD\",\n        \"Closeout Suppliers\",\n        \"Collectibles\",\n        \"Computer Products\",\n        \"Crafts & Supplies\",\n        \"Dollar Store\",\n        \"Dropshippers\",\n        \"Wholesale Electronics\",\n        \"Wholesale Fashion Accessories\",\n        \"Food & Grocery\",\n        \"General Merchandise\",\n        \"Gifts\",\n        \"Wholesale Handbags\",\n        \"Wholesale Health & Beauty\",\n        \"Holiday & Seasonal\",\n        \"Housewares / Home Decor\",\n        \"Wholesale Jewelry\",\n        \"Wholesale Knives & Swords\",\n        \"Lawn & Garden\",\n        \"Wholesale Leather\",\n        \"Made In USA\",\n        \"Military Goods\",\n        \"Novelties\",\n        \"Wholesale School Supplies\",\n        \"Party Supplies & Greeting Cards\",\n        \"Perfume\",\n        \"Pet Supplies\",\n        \"Professional Supplies\",\n        \"Promotional Products\",\n        \"Regional & Ethnic\",\n        \"Religious Items\",\n        \"Self-Defense, Security\",\n        \"Wholesale Shoes & Footwear\",\n        \"Wholesale Smoking Products\",\n        \"Souvenirs\",\n        \"Wholesale Sporting Goods\",\n        \"Store / Dealer Supplies\",\n        \"Wholesale Sunglasses\",\n        \"Survival & Emergency Kits\",\n        \"Cell Phone Accessories\",\n        \"Wholesale Tools & Hardware\",\n        \"Wholesale Toys & Games\",\n        \"Vape Products / E-Liquids\",\n        \"Wholesale Watches\"\n      ],\n      \"default\": \"Apparel\",\n      \"prefill\": \"Apparel\"\n    },\n    \"categories\": {\n      \"title\": \"Categories (multi-category crawl)\",\n      \"type\": \"array\",\n      \"description\": \"Crawl up to 10 live category slugs in one run, e.g. [\\\"Apparel\\\", \\\"Electronics\\\", \\\"Pet-Supplies\\\"]. Values must come from the `category` list. Overrides `category`; `customCategorySlug` is ignored when this is set.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"customCategorySlug\": {\n      \"title\": \"Custom category slug (advanced)\",\n      \"type\": \"string\",\n      \"description\": \"Use any narrower WholesaleCentral.com category slug, e.g. `Mens-Apparel` or `Apparel-Dropshippers`. Overrides `category`; leave empty to use the live dropdown list.\",\n      \"editor\": \"textfield\"\n    },\n    \"searchQuery\": {\n      \"title\": \"Search query\",\n      \"type\": \"string\",\n      \"description\": \"Keyword search over supplier names/profiles (mode=search), e.g. `candles` or `bluetooth speakers`. Required in search mode.\",\n      \"editor\": \"textfield\"\n    },\n    \"supplierUrls\": {\n      \"title\": \"Supplier URLs (mode=bySupplier)\",\n      \"type\": \"array\",\n      \"description\": \"Full supplier URLs, paths, or slugs to refresh, e.g. [\\\"https://www.wholesalecentral.com/suppliers/fourse0001\\\"]. Duplicates are removed.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"state\": {\n      \"title\": \"US state filter\",\n      \"type\": \"string\",\n      \"description\": \"Keep suppliers in one US state. Accepts a full name or two-letter code (`NY`, `New York`, `California`). Matches the state exactly; it never matches a city substring.\",\n      \"editor\": \"textfield\"\n    },\n    \"maxMinimumOrderUSD\": {\n      \"title\": \"Max minimum order (USD)\",\n      \"type\": \"integer\",\n      \"description\": \"Only include suppliers whose minimum order is at most this amount. Suppliers with no disclosed minimum are always included.\",\n      \"minimum\": 0,\n      \"maximum\": 100000\n    },\n    \"keyword\": {\n      \"title\": \"Keyword filter\",\n      \"type\": \"string\",\n      \"description\": \"Only include suppliers whose name or description contains this text (case-insensitive).\",\n      \"editor\": \"textfield\"\n    },\n    \"featuredOnly\": {\n      \"title\": \"Featured listings only\",\n      \"type\": \"boolean\",\n      \"description\": \"Only include suppliers the directory badges as a Featured (premium/paid) listing.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeDetails\": {\n      \"title\": \"Fetch supplier detail pages\",\n      \"type\": \"boolean\",\n      \"description\": \"Read each supplier page for phone, full address, website, description, social links, postal code, and product-catalog summary. Turn off for the fastest listing-only run.\",\n      \"default\": true,\n      \"prefill\": true\n    },\n    \"includeProductSummary\": {\n      \"title\": \"Include product-catalog summary\",\n      \"type\": \"boolean\",\n      \"description\": \"When details are fetched, include productCount, categoryCounts, collectionsCount, sampleProducts, and shipsFrom. No extra request is made.\",\n      \"default\": true,\n      \"prefill\": true\n    },\n    \"includeEmbeddedContact\": {\n      \"title\": \"Include embedded email/extra phones\",\n      \"type\": \"boolean\",\n      \"description\": \"Opt in to business email addresses and extra phone/fax numbers that the site embeds in the supplier page payload but does not display. Off by default. Review your privacy and outreach obligations before enabling.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"proxyConfiguration\": {\n      \"title\": \"Proxy configuration\",\n      \"type\": \"object\",\n      \"description\": \"Optional. The actor connects directly first and automatically picks a working Apify connection if the site blocks it; you do not need to configure anything.\",\n      \"editor\": \"proxy\",\n      \"prefill\": {\n        \"useApifyProxy\": true\n      },\n      \"default\": {\n        \"useApifyProxy\": false\n      }\n    },\n    \"maxItems\": {\n      \"title\": \"Max items\",\n      \"type\": \"integer\",\n      \"description\": \"Hard cap on emitted supplier records. Each category is additionally capped at 100 cards.\",\n      \"minimum\": 1,\n      \"maximum\": 500,\n      \"default\": 20,\n      \"prefill\": 1\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# US Wholesale Supplier Directory Scraper (Wholesale Central)\r\n\r\nBuild a clean list of **US wholesale, dropship and closeout suppliers** from [WholesaleCentral.com](https://www.wholesalecentral.com). Search by keyword, browse any of the 54 live supplier categories, crawl several categories in one run, or refresh a known list of supplier URLs. Get public company contact data, location, minimum-order terms, social links and an optional product-catalog summary — with no login. Wholesale prices are not published by the source and are not claimed here.\r\n\r\n## What this actor does\r\n\r\n- **Three discovery modes:** keyword search on the supplier tab, live-category browsing (one or up to 10 categories), and direct supplier-URL refresh\r\n- **Supplier-first search:** uses the site's supplier tab (`tab=suppliers`), so results are companies rather than the default product cards\r\n- **Contact detail:** phone, full address, website, company description and social profiles from each supplier page\r\n- **Location precision:** city, state name, two-letter state code, postal code and country, plus exact state filtering (`NY` / `New York` no longer matches Albany, Oregon)\r\n- **Product-catalog summary:** product count, per-category counts, collection count, up to 8 sample products (name, SKU, link) and ships-from country — no extra request\r\n- **Optional embedded contacts:** business email addresses and extra phone/fax numbers that the page payload contains but the site does not visibly publish; off by default\r\n- **Reliable crawling:** handles the site's AWS WAF browser challenge, paginates 30-card category pages and 40-card search pages, deduplicates by supplier URL, and stops at `maxItems` or source exhaustion\r\n- **Empty fields are omitted** — no null, blank or sentinel noise in the output\r\n\r\n## Output per supplier\r\n\r\nIdentity and listing fields:\r\n\r\n- `recordType`: always `\"supplier\"`\r\n- `name`, `slug`\r\n- `detailUrl`, `sourceUrl`: the supplier's public WholesaleCentral page\r\n- `category`: readable label of the category page the supplier was found on\r\n- `supplierType`: legacy label echoed only for old saved inputs that still send `supplierType`; omitted for new inputs\r\n- `location`, `city`, `state`, `stateCode`, `postalCode`, `country`\r\n- `memberSince`: year the supplier joined the directory\r\n- `minimumOrderUSD`: minimum order in USD (`0` means the listing says “No minimum order”)\r\n- `isFeaturedListing`: `true` when the listing carries a Featured badge\r\n- `websiteUrl`: the supplier's own website\r\n- `phone`, `address`, `companyDescription`\r\n- `socialMediaLinks`: Instagram, TikTok, Facebook, X/Twitter, Pinterest, YouTube or LinkedIn links\r\n- `categories`: the supplier's main directory categories\r\n- `scrapedAt`: ISO 8601 UTC timestamp\r\n\r\nAdded from the supplier page (when `includeDetails` is on):\r\n\r\n- `productCount`, `collectionsCount`\r\n- `categoryCounts`: array of `{name, count}` product categories\r\n- `sampleProducts`: up to 8 objects with `name`, `sku` (when shown) and `url`\r\n- `shipsFrom`: the shipping-origin country shown on the page\r\n\r\nAdded only when `includeEmbeddedContact` is explicitly enabled:\r\n\r\n- `email`, `emails[]`, `salesEmail`\r\n- `fax`, `additionalPhones[]`\r\n\r\nThese contact values come from the supplier profile payload embedded in the public page — they are business contacts, not displayed contact buttons. Review your privacy, consent and outreach obligations before enabling this option. Website footer or directory-operator addresses are filtered out.\r\n\r\n## Input\r\n\r\n| Field | Type | Default | Description |\r\n|---|---|---|---|\r\n| `mode` | string | `byCategory` | `byCategory` (browse), `search` (keyword), or `bySupplier` (specific URLs) |\r\n| `category` | string | `Apparel` | One of the 54 live top-level categories (mode=byCategory) |\r\n| `categories` | array | – | Crawl up to 10 live categories in one run; overrides `category` |\r\n| `customCategorySlug` | string | – | Advanced: a narrower category slug, e.g. `Mens-Apparel`; overrides `category` |\r\n| `searchQuery` | string | – | Keyword for supplier search (mode=search); required in that mode |\r\n| `supplierUrls` | array | – | Full URLs, paths, or slugs to refresh (mode=bySupplier) |\r\n| `state` | string | – | Exact US state filter; accepts `NY` or `New York` |\r\n| `maxMinimumOrderUSD` | int | – | Keep suppliers whose minimum order is at most this amount; undisclosed minimums pass |\r\n| `keyword` | string | – | Keep suppliers whose name or description contains this text |\r\n| `featuredOnly` | bool | `false` | Keep only Featured (premium/paid) listings |\r\n| `includeDetails` | bool | `true` | Read each supplier page for contact and product-summary fields |\r\n| `includeProductSummary` | bool | `true` | Include product count, category counts, sample products and ships-from |\r\n| `includeEmbeddedContact` | bool | `false` | Opt in to page-embedded business email and extra phone/fax numbers |\r\n| `proxyConfiguration` | object | off | Optional Apify proxy; the actor connects directly first and picks a working connection automatically if the site blocks it |\r\n| `maxItems` | int | `20` | Hard cap on records (1–500); each category is additionally capped at 100 cards |\r\n\r\n### Example: apparel suppliers with full contacts and product catalogs\r\n\r\n```json\r\n{\r\n  \"mode\": \"byCategory\",\r\n  \"category\": \"Apparel\",\r\n  \"includeDetails\": true,\r\n  \"includeProductSummary\": true,\r\n  \"maxItems\": 50\r\n}\r\n```\r\n\r\n### Example: supplier search for candles\r\n\r\n```json\r\n{\r\n  \"mode\": \"search\",\r\n  \"searchQuery\": \"candles\",\r\n  \"includeDetails\": true,\r\n  \"maxItems\": 30\r\n}\r\n```\r\n\r\n### Example: multi-category crawl filtered to New York\r\n\r\n```json\r\n{\r\n  \"mode\": \"byCategory\",\r\n  \"categories\": [\"Apparel\", \"Fashion-Accessories\", \"Jewelry\"],\r\n  \"state\": \"NY\",\r\n  \"includeDetails\": true,\r\n  \"maxItems\": 100\r\n}\r\n```\r\n\r\n### Example: refresh a known supplier list\r\n\r\n```json\r\n{\r\n  \"mode\": \"bySupplier\",\r\n  \"supplierUrls\": [\r\n    \"https://www.wholesalecentral.com/suppliers/fourse0001\",\r\n    \"https://www.wholesalecentral.com/suppliers/sheandsky\"\r\n  ],\r\n  \"includeDetails\": true,\r\n  \"includeEmbeddedContact\": false\r\n}\r\n```\r\n\r\n## Use cases\r\n\r\n- **US sourcing shortlists** — find domestic wholesale suppliers by category and state without browsing the directory by hand\r\n- **Dropship and closeout research** — map the Dropshippers and Closeout Suppliers departments, then compare minimum orders\r\n- **B2B lead lists** — collect public company phone, address and website data for retail-buyer outreach\r\n- **Catalog discovery** — see how many products a supplier carries and which product categories dominate its storefront\r\n- **Geographic market mapping** — compare supplier density across states and categories\r\n- **Refresh existing vendor lists** — re-scrape a saved set of supplier URLs to pick up changed contacts or catalogs\r\n\r\n## FAQ\r\n\r\n**Does this need a login or a proxy?** No login. Every supplier page used here is public. The actor connects directly first, solves the site's browser challenge, reuses that session, and automatically picks a working Apify connection if the site blocks it. You do not need to configure a proxy.\r\n\r\n**Why are there no wholesale prices?** The directory shows “Unlock wholesale price” to signed-in buyers. Public pages — and this actor — do not expose wholesale prices, tiers or MOQs beyond the published minimum-order amount.\r\n\r\n**Why does search return a different number of suppliers than a category?** The site's supplier search returns roughly 51–136 matches for common queries, while top-level categories contain 2–90 suppliers each. `maxItems` still caps what is emitted.\r\n\r\n**Why did `state: \"NY\"` previously return an Oregon supplier?** The old filter searched for `ny` inside city names and matched “ALbany”. This version normalizes US state names and two-letter codes and compares the state/state-code fields exactly; the city is never searched.\r\n\r\n**What is `minimumOrderUSD: 0`?** It means the listing explicitly says “No minimum order” — a real value. If the minimum order is not disclosed, the field is omitted.\r\n\r\n**What does `productCount: 0` mean?** The supplier has no products in its public storefront. `productCount` is omitted when the page does not show a count at all.\r\n\r\n**Why is `includeEmbeddedContact` off by default?** The site embeds supplier business email addresses and extra phone/fax numbers in the page payload but does not display them in the contact panel. Because that is a privacy-sensitive difference, the actor emits them only when you explicitly opt in and warns you to use them lawfully.\r\n\r\n**Why do some records lack a phone, website, description or social links?** Not every supplier publishes every field. Empty values are omitted rather than written as null or a placeholder.\r\n\r\n**Can I get the whole directory in one run?** The public category/search crawl reaches about 368 unique suppliers across the 54 live categories. `maxItems` can be set up to 500. A single category is capped at 100 cards per run (the largest live category has 90), and a run can crawl up to 10 categories.\r\n\r\n**Is this affiliated with WholesaleCentral.com?** No. This is an independent tool that reads the directory's public supplier pages; it is not run or endorsed by WholesaleCentral.com.\r\n\r\n## Limitations\r\n\r\n- Wholesale prices, buyer-only MOQ tiers and order terms are login-gated and are not included.\r\n- The site does not expose a per-supplier “verified” badge, so no verification field is invented; Featured placement is the only premium-listing signal.\r\n- The directory's marketing figure (“1,400+ suppliers”) is larger than what the public category and search pages expose; a full audit in October 2026 reached 368 unique supplier pages across 54 live categories.\r\n- The site uses an AWS WAF browser challenge, so the first request of a run can take a few seconds longer while the session is established.\r\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "wholesale-central-supplier-directory-scraper",
      "title": "Wholesale Central Supplier Directory Scraper",
      "description": "Find US wholesale, dropship and closeout suppliers by keyword, category, or URL. Returns public phone, address, website, description, social links, member-since year, minimum order, state/postal code, and optional product-catalog summary. No login required; wholesale prices are not published.",
      "version": "1.2",
      "buildTag": "latest",
      "defaultRunOptions": {
        "memoryMbytes": 2048
      },
      "dockerfile": "./Dockerfile",
      "readme": "# US Wholesale Supplier Directory Scraper (Wholesale Central)\r\n\r\nBuild a clean list of **US wholesale, dropship and closeout suppliers** from [WholesaleCentral.com](https://www.wholesalecentral.com). Search by keyword, browse any of the 54 live supplier categories, crawl several categories in one run, or refresh a known list of supplier URLs. Get public company contact data, location, minimum-order terms, social links and an optional product-catalog summary — with no login. Wholesale prices are not published by the source and are not claimed here.\r\n\r\n## What this actor does\r\n\r\n- **Three discovery modes:** keyword search on the supplier tab, live-category browsing (one or up to 10 categories), and direct supplier-URL refresh\r\n- **Supplier-first search:** uses the site's supplier tab (`tab=suppliers`), so results are companies rather than the default product cards\r\n- **Contact detail:** phone, full address, website, company description and social profiles from each supplier page\r\n- **Location precision:** city, state name, two-letter state code, postal code and country, plus exact state filtering (`NY` / `New York` no longer matches Albany, Oregon)\r\n- **Product-catalog summary:** product count, per-category counts, collection count, up to 8 sample products (name, SKU, link) and ships-from country — no extra request\r\n- **Optional embedded contacts:** business email addresses and extra phone/fax numbers that the page payload contains but the site does not visibly publish; off by default\r\n- **Reliable crawling:** handles the site's AWS WAF browser challenge, paginates 30-card category pages and 40-card search pages, deduplicates by supplier URL, and stops at `maxItems` or source exhaustion\r\n- **Empty fields are omitted** — no null, blank or sentinel noise in the output\r\n\r\n## Output per supplier\r\n\r\nIdentity and listing fields:\r\n\r\n- `recordType`: always `\"supplier\"`\r\n- `name`, `slug`\r\n- `detailUrl`, `sourceUrl`: the supplier's public WholesaleCentral page\r\n- `category`: readable label of the category page the supplier was found on\r\n- `supplierType`: legacy label echoed only for old saved inputs that still send `supplierType`; omitted for new inputs\r\n- `location`, `city`, `state`, `stateCode`, `postalCode`, `country`\r\n- `memberSince`: year the supplier joined the directory\r\n- `minimumOrderUSD`: minimum order in USD (`0` means the listing says “No minimum order”)\r\n- `isFeaturedListing`: `true` when the listing carries a Featured badge\r\n- `websiteUrl`: the supplier's own website\r\n- `phone`, `address`, `companyDescription`\r\n- `socialMediaLinks`: Instagram, TikTok, Facebook, X/Twitter, Pinterest, YouTube or LinkedIn links\r\n- `categories`: the supplier's main directory categories\r\n- `scrapedAt`: ISO 8601 UTC timestamp\r\n\r\nAdded from the supplier page (when `includeDetails` is on):\r\n\r\n- `productCount`, `collectionsCount`\r\n- `categoryCounts`: array of `{name, count}` product categories\r\n- `sampleProducts`: up to 8 objects with `name`, `sku` (when shown) and `url`\r\n- `shipsFrom`: the shipping-origin country shown on the page\r\n\r\nAdded only when `includeEmbeddedContact` is explicitly enabled:\r\n\r\n- `email`, `emails[]`, `salesEmail`\r\n- `fax`, `additionalPhones[]`\r\n\r\nThese contact values come from the supplier profile payload embedded in the public page — they are business contacts, not displayed contact buttons. Review your privacy, consent and outreach obligations before enabling this option. Website footer or directory-operator addresses are filtered out.\r\n\r\n## Input\r\n\r\n| Field | Type | Default | Description |\r\n|---|---|---|---|\r\n| `mode` | string | `byCategory` | `byCategory` (browse), `search` (keyword), or `bySupplier` (specific URLs) |\r\n| `category` | string | `Apparel` | One of the 54 live top-level categories (mode=byCategory) |\r\n| `categories` | array | – | Crawl up to 10 live categories in one run; overrides `category` |\r\n| `customCategorySlug` | string | – | Advanced: a narrower category slug, e.g. `Mens-Apparel`; overrides `category` |\r\n| `searchQuery` | string | – | Keyword for supplier search (mode=search); required in that mode |\r\n| `supplierUrls` | array | – | Full URLs, paths, or slugs to refresh (mode=bySupplier) |\r\n| `state` | string | – | Exact US state filter; accepts `NY` or `New York` |\r\n| `maxMinimumOrderUSD` | int | – | Keep suppliers whose minimum order is at most this amount; undisclosed minimums pass |\r\n| `keyword` | string | – | Keep suppliers whose name or description contains this text |\r\n| `featuredOnly` | bool | `false` | Keep only Featured (premium/paid) listings |\r\n| `includeDetails` | bool | `true` | Read each supplier page for contact and product-summary fields |\r\n| `includeProductSummary` | bool | `true` | Include product count, category counts, sample products and ships-from |\r\n| `includeEmbeddedContact` | bool | `false` | Opt in to page-embedded business email and extra phone/fax numbers |\r\n| `proxyConfiguration` | object | off | Optional Apify proxy; the actor connects directly first and picks a working connection automatically if the site blocks it |\r\n| `maxItems` | int | `20` | Hard cap on records (1–500); each category is additionally capped at 100 cards |\r\n\r\n### Example: apparel suppliers with full contacts and product catalogs\r\n\r\n```json\r\n{\r\n  \"mode\": \"byCategory\",\r\n  \"category\": \"Apparel\",\r\n  \"includeDetails\": true,\r\n  \"includeProductSummary\": true,\r\n  \"maxItems\": 50\r\n}\r\n```\r\n\r\n### Example: supplier search for candles\r\n\r\n```json\r\n{\r\n  \"mode\": \"search\",\r\n  \"searchQuery\": \"candles\",\r\n  \"includeDetails\": true,\r\n  \"maxItems\": 30\r\n}\r\n```\r\n\r\n### Example: multi-category crawl filtered to New York\r\n\r\n```json\r\n{\r\n  \"mode\": \"byCategory\",\r\n  \"categories\": [\"Apparel\", \"Fashion-Accessories\", \"Jewelry\"],\r\n  \"state\": \"NY\",\r\n  \"includeDetails\": true,\r\n  \"maxItems\": 100\r\n}\r\n```\r\n\r\n### Example: refresh a known supplier list\r\n\r\n```json\r\n{\r\n  \"mode\": \"bySupplier\",\r\n  \"supplierUrls\": [\r\n    \"https://www.wholesalecentral.com/suppliers/fourse0001\",\r\n    \"https://www.wholesalecentral.com/suppliers/sheandsky\"\r\n  ],\r\n  \"includeDetails\": true,\r\n  \"includeEmbeddedContact\": false\r\n}\r\n```\r\n\r\n## Use cases\r\n\r\n- **US sourcing shortlists** — find domestic wholesale suppliers by category and state without browsing the directory by hand\r\n- **Dropship and closeout research** — map the Dropshippers and Closeout Suppliers departments, then compare minimum orders\r\n- **B2B lead lists** — collect public company phone, address and website data for retail-buyer outreach\r\n- **Catalog discovery** — see how many products a supplier carries and which product categories dominate its storefront\r\n- **Geographic market mapping** — compare supplier density across states and categories\r\n- **Refresh existing vendor lists** — re-scrape a saved set of supplier URLs to pick up changed contacts or catalogs\r\n\r\n## FAQ\r\n\r\n**Does this need a login or a proxy?** No login. Every supplier page used here is public. The actor connects directly first, solves the site's browser challenge, reuses that session, and automatically picks a working Apify connection if the site blocks it. You do not need to configure a proxy.\r\n\r\n**Why are there no wholesale prices?** The directory shows “Unlock wholesale price” to signed-in buyers. Public pages — and this actor — do not expose wholesale prices, tiers or MOQs beyond the published minimum-order amount.\r\n\r\n**Why does search return a different number of suppliers than a category?** The site's supplier search returns roughly 51–136 matches for common queries, while top-level categories contain 2–90 suppliers each. `maxItems` still caps what is emitted.\r\n\r\n**Why did `state: \"NY\"` previously return an Oregon supplier?** The old filter searched for `ny` inside city names and matched “ALbany”. This version normalizes US state names and two-letter codes and compares the state/state-code fields exactly; the city is never searched.\r\n\r\n**What is `minimumOrderUSD: 0`?** It means the listing explicitly says “No minimum order” — a real value. If the minimum order is not disclosed, the field is omitted.\r\n\r\n**What does `productCount: 0` mean?** The supplier has no products in its public storefront. `productCount` is omitted when the page does not show a count at all.\r\n\r\n**Why is `includeEmbeddedContact` off by default?** The site embeds supplier business email addresses and extra phone/fax numbers in the page payload but does not display them in the contact panel. Because that is a privacy-sensitive difference, the actor emits them only when you explicitly opt in and warns you to use them lawfully.\r\n\r\n**Why do some records lack a phone, website, description or social links?** Not every supplier publishes every field. Empty values are omitted rather than written as null or a placeholder.\r\n\r\n**Can I get the whole directory in one run?** The public category/search crawl reaches about 368 unique suppliers across the 54 live categories. `maxItems` can be set up to 500. A single category is capped at 100 cards per run (the largest live category has 90), and a run can crawl up to 10 categories.\r\n\r\n**Is this affiliated with WholesaleCentral.com?** No. This is an independent tool that reads the directory's public supplier pages; it is not run or endorsed by WholesaleCentral.com.\r\n\r\n## Limitations\r\n\r\n- Wholesale prices, buyer-only MOQ tiers and order terms are login-gated and are not included.\r\n- The site does not expose a per-supplier “verified” badge, so no verification field is invented; Featured placement is the only premium-listing signal.\r\n- The directory's marketing figure (“1,400+ suppliers”) is larger than what the public category and search pages expose; a full audit in October 2026 reached 368 unique supplier pages across 54 live categories.\r\n- The site uses an AWS WAF browser challenge, so the first request of a run can take a few seconds longer while the session is established.\r\n",
      "input": {
        "title": "US Wholesale Supplier Directory Scraper Input",
        "description": "Find US wholesale, dropship and closeout suppliers on WholesaleCentral.com by keyword, live category, or supplier URL. Filter by state, minimum order, keyword, or featured placement.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "description": "How to discover suppliers. `search` uses the supplier-only search tab; `bySupplier` refreshes a known list of supplier URLs/slugs.",
            "editor": "select",
            "enum": [
              "byCategory",
              "search",
              "bySupplier"
            ],
            "enumTitles": [
              "Browse live categories",
              "Keyword search suppliers",
              "Fetch specific supplier URLs"
            ],
            "default": "byCategory",
            "prefill": "byCategory"
          },
          "category": {
            "title": "Category",
            "type": "string",
            "description": "One of the 54 live top-level supplier categories (mode=byCategory). Use `categories` to crawl several at once, or `customCategorySlug` for a narrower sub-category.",
            "editor": "select",
            "enum": [
              "Amazon-FBA",
              "Apparel",
              "Art-Supplies",
              "As-Seen-On-TV",
              "Automotive",
              "Baby-Products",
              "Business-Opportunities",
              "Business-Services",
              "C-Store-Items",
              "Candles-Incense-Potpourri",
              "CBD-products",
              "Closeout-Suppliers",
              "Collectibles",
              "Computer-Products",
              "Crafts-Supplies",
              "Dollar-Store",
              "Dropshippers",
              "Electronics",
              "Fashion-Accessories",
              "Food-Grocery",
              "General-Merchandise",
              "Gifts",
              "Handbags-Luggage",
              "Health-Beauty",
              "Holiday-Seasonal",
              "Home-Furnishing-Housewares",
              "Jewelry",
              "Knives",
              "Lawn-Garden",
              "Leather",
              "Made-In-USA",
              "Military-Goods",
              "Novelties",
              "Office-Supplies",
              "Party-Items-Greeting-Cards",
              "Perfume",
              "Pet-Supplies",
              "Professional-Supplies",
              "Promotional",
              "Regional-Ethnic",
              "Religious-Items",
              "Self-Defense-Security",
              "Shoes-Footwear",
              "Smoking-Products",
              "Souvenirs",
              "Sporting-Goods",
              "Store-Dealer-Supplies",
              "Sunglasses-Eyewear",
              "Survival-emergency-kits",
              "Telephone-Cellular",
              "Tools-Hardware",
              "Toys-Hobbies",
              "Vape-Products-Eliquids-Smoking-Products",
              "Watches"
            ],
            "enumTitles": [
              "Amazon FBA Suppliers",
              "Wholesale Clothing",
              "Art & Supplies",
              "As Seen On TV",
              "Automotive",
              "Baby Items",
              "Business Opportunities",
              "Business Services",
              "C-Store Items",
              "Candles, Oils, Incense",
              "CBD",
              "Closeout Suppliers",
              "Collectibles",
              "Computer Products",
              "Crafts & Supplies",
              "Dollar Store",
              "Dropshippers",
              "Wholesale Electronics",
              "Wholesale Fashion Accessories",
              "Food & Grocery",
              "General Merchandise",
              "Gifts",
              "Wholesale Handbags",
              "Wholesale Health & Beauty",
              "Holiday & Seasonal",
              "Housewares / Home Decor",
              "Wholesale Jewelry",
              "Wholesale Knives & Swords",
              "Lawn & Garden",
              "Wholesale Leather",
              "Made In USA",
              "Military Goods",
              "Novelties",
              "Wholesale School Supplies",
              "Party Supplies & Greeting Cards",
              "Perfume",
              "Pet Supplies",
              "Professional Supplies",
              "Promotional Products",
              "Regional & Ethnic",
              "Religious Items",
              "Self-Defense, Security",
              "Wholesale Shoes & Footwear",
              "Wholesale Smoking Products",
              "Souvenirs",
              "Wholesale Sporting Goods",
              "Store / Dealer Supplies",
              "Wholesale Sunglasses",
              "Survival & Emergency Kits",
              "Cell Phone Accessories",
              "Wholesale Tools & Hardware",
              "Wholesale Toys & Games",
              "Vape Products / E-Liquids",
              "Wholesale Watches"
            ],
            "default": "Apparel",
            "prefill": "Apparel"
          },
          "categories": {
            "title": "Categories (multi-category crawl)",
            "type": "array",
            "description": "Crawl up to 10 live category slugs in one run, e.g. [\"Apparel\", \"Electronics\", \"Pet-Supplies\"]. Values must come from the `category` list. Overrides `category`; `customCategorySlug` is ignored when this is set.",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "customCategorySlug": {
            "title": "Custom category slug (advanced)",
            "type": "string",
            "description": "Use any narrower WholesaleCentral.com category slug, e.g. `Mens-Apparel` or `Apparel-Dropshippers`. Overrides `category`; leave empty to use the live dropdown list.",
            "editor": "textfield"
          },
          "searchQuery": {
            "title": "Search query",
            "type": "string",
            "description": "Keyword search over supplier names/profiles (mode=search), e.g. `candles` or `bluetooth speakers`. Required in search mode.",
            "editor": "textfield"
          },
          "supplierUrls": {
            "title": "Supplier URLs (mode=bySupplier)",
            "type": "array",
            "description": "Full supplier URLs, paths, or slugs to refresh, e.g. [\"https://www.wholesalecentral.com/suppliers/fourse0001\"]. Duplicates are removed.",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "state": {
            "title": "US state filter",
            "type": "string",
            "description": "Keep suppliers in one US state. Accepts a full name or two-letter code (`NY`, `New York`, `California`). Matches the state exactly; it never matches a city substring.",
            "editor": "textfield"
          },
          "maxMinimumOrderUSD": {
            "title": "Max minimum order (USD)",
            "type": "integer",
            "description": "Only include suppliers whose minimum order is at most this amount. Suppliers with no disclosed minimum are always included.",
            "minimum": 0,
            "maximum": 100000
          },
          "keyword": {
            "title": "Keyword filter",
            "type": "string",
            "description": "Only include suppliers whose name or description contains this text (case-insensitive).",
            "editor": "textfield"
          },
          "featuredOnly": {
            "title": "Featured listings only",
            "type": "boolean",
            "description": "Only include suppliers the directory badges as a Featured (premium/paid) listing.",
            "default": false,
            "prefill": false
          },
          "includeDetails": {
            "title": "Fetch supplier detail pages",
            "type": "boolean",
            "description": "Read each supplier page for phone, full address, website, description, social links, postal code, and product-catalog summary. Turn off for the fastest listing-only run.",
            "default": true,
            "prefill": true
          },
          "includeProductSummary": {
            "title": "Include product-catalog summary",
            "type": "boolean",
            "description": "When details are fetched, include productCount, categoryCounts, collectionsCount, sampleProducts, and shipsFrom. No extra request is made.",
            "default": true,
            "prefill": true
          },
          "includeEmbeddedContact": {
            "title": "Include embedded email/extra phones",
            "type": "boolean",
            "description": "Opt in to business email addresses and extra phone/fax numbers that the site embeds in the supplier page payload but does not display. Off by default. Review your privacy and outreach obligations before enabling.",
            "default": false,
            "prefill": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. The actor connects directly first and automatically picks a working Apify connection if the site blocks it; you do not need to configure anything.",
            "editor": "proxy",
            "prefill": {
              "useApifyProxy": true
            },
            "default": {
              "useApifyProxy": false
            }
          },
          "maxItems": {
            "title": "Max items",
            "type": "integer",
            "description": "Hard cap on emitted supplier records. Each category is additionally capped at 100 cards.",
            "minimum": 1,
            "maximum": 500,
            "default": 20,
            "prefill": 1
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "US Wholesale Supplier Directory Scraper Output",
        "description": "US wholesale, dropship and closeout suppliers from WholesaleCentral.com — public contact details, location, membership and minimum-order data, social links, optional page-embedded business contacts, and product-catalog summaries. Wholesale prices are login-gated and are not included.",
        "properties": {
          "suppliers": {
            "type": "string",
            "title": "Wholesale suppliers",
            "description": "Dataset containing one record per supplier.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Suppliers",
              "transformation": {
                "fields": [
                  "name",
                  "category",
                  "city",
                  "stateCode",
                  "minimumOrderUSD",
                  "phone",
                  "websiteUrl",
                  "productCount",
                  "detailUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "1.2.1",
    "imageDigest": "58bd345ecff7631cbc8b1a260006fb8a711adab048024796f5410955c0174bf8",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.2"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.030204444444444443
    }
  }
}