USSB Directory Business Listings Scraper
Pricing
from $1.44 / 1,000 item extracteds
USSB Directory Business Listings Scraper
Search and export public USSB Directory business listings, unique result counts, contact details, classifications, and profile URLs.
Pricing
from $1.44 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Search and export USSB Directory businesses as clean, structured records for small-business prospecting, directory analysis, enrichment, and recurring list refreshes.
The Actor reads the public USSB Directory listing pages, reports the source's unique result count, follows pagination, and optionally opens each business profile for classifications, descriptions, addresses, phone numbers, public emails, websites, and contact names.
Use a business-name query, an industry, a US state or territory, a supplied /listings URL, or an individual /listing/... profile URL.
What can this USSB Directory scraper do?
- Search the public directory by partial business name.
- Filter by one top-level industry classification.
- Filter by US state, District of Columbia, or Puerto Rico.
- Accept existing filtered USSB Directory search URLs.
- Extract a single public business profile by URL.
- Traverse result pages until the requested limit is reached.
- Deduplicate records by canonical listing URL.
- Report the source-displayed
totalAvailableresult count. - Export lightweight listing cards without opening profiles.
- Enrich cards with all supported public profile fields.
- Decode public email addresses protected by Cloudflare's page markup.
- Retry transient blocks and timeouts with bounded fresh proxy sessions.
- Save one normalized business per default-dataset row.
The Actor does not log in, bypass private records, or infer contact data that USSB does not display.
Who is it for?
Sales and lead-generation teams
Build a regional or industry-specific list of public small businesses, then send the dataset to a CRM or enrichment workflow.
Market researchers
Measure directory coverage by state or industry, inspect classifications, and compare scheduled dataset snapshots.
Agencies
Refresh public local-business prospect lists without maintaining a custom Drupal scraper and proxy retry layer.
Data engineers
Use stable JSON fields and canonical URLs in ETL, data-quality, spreadsheet, and warehouse pipelines.
Business owners
Verify how a company profile is represented in the public USSB Directory.
Why use this Actor?
USSB Directory currently exposes hundreds of thousands of listing cards and detailed public profiles. Direct server requests can receive a Cloudflare challenge even though the records are public.
This Actor provides:
- a tested HTTP-first route through Apify Proxy;
- source-specific selectors for Drupal listing cards and profiles;
- server-side filters plus record-level filter verification;
- stable deduplication and typed output;
- bounded retries instead of endless challenge loops;
- cheaper card-only exports when details are unnecessary;
- spreadsheet-ready JSON, CSV, Excel, XML, and RSS exports through Apify datasets.
It uses 256 MB of memory and does not launch a browser for ordinary runs.
What data is extracted?
| Field | Description |
|---|---|
listingId | Stable node ID or listing slug |
name | Public business name |
listingUrl | Canonical USSB Directory profile URL |
state | State or territory shown by USSB |
city | City shown by USSB |
yearEstablished | Displayed establishment year |
imageUrl | Listing image or source placeholder URL |
totalAvailable | Total records reported for the current search |
resultPosition | One-based position in traversed results |
summary | Short public profile summary |
industries | Top-level industry labels |
classifications | Detailed linked classifications |
description | Full public business description |
specialDetails | Services or special details shown on the profile |
incorporatedIn | Displayed incorporation state |
branchType | Main or branch designation |
address | Public street address |
zipCode | Public postal code |
phone | Public business phone |
email | Public business email when displayed |
website | Public business website |
contactPerson | Public contact person or role |
detailsIncluded | Whether the profile page was opened |
scrapedAt | ISO 8601 extraction timestamp |
Profile-only fields are null or empty arrays when includeDetails is disabled or when the source does not provide them.
How to get started
- Open the Actor input page.
- Leave USSB Directory URLs empty for a directory search.
- Optionally enter a business name, state, or industry.
- Keep Include business details enabled for contact and profile fields.
- Set Maximum listings to the number of records you need.
- Keep Apify Proxy enabled.
- Click Start.
- Open the Business listings dataset view.
- Export the results as JSON, CSV, Excel, XML, or RSS.
For a fast source count and card export, disable includeDetails. Every saved row includes the source-reported search total.
Input parameters
startUrls
Optional array of public USSB Directory URLs.
Supported paths:
https://www.ussbdirectory.com/listings- filtered
/listings?...URLs https://www.ussbdirectory.com/listing/<slug>
Other hosts and paths fail validation instead of being fetched.
businessName
Optional case-insensitive partial business-name filter, from 1 to 128 characters.
Example: Solar.
industryClassification
Optional top-level USSB industry classification selected from the input dropdown.
Example: Professional, Scientific, and Technical Services.
state
Optional state or territory selected from the input dropdown.
Example: Texas.
includeDetails
Defaults to true.
true: open every accepted profile and extract detail/contact fields.false: export listing cards and totals without profile requests.
maxItems
Maximum unique records to save.
- Default:
50 - Minimum:
1 - Maximum:
10000
maxConcurrency
Maximum simultaneous detail requests.
- Default:
5 - Minimum:
1 - Maximum:
20
Use a lower value if the source becomes unstable.
proxyConfiguration
Apify Proxy is enabled by default because direct requests can be challenged. The tested default datacenter pool works for ordinary extraction.
You can explicitly select a US residential group when your account supports it. The Actor never silently switches to residential traffic, so expensive fallback behavior remains under your control.
Example input: find solar businesses
{"businessName": "Solar","includeDetails": true,"maxItems": 10,"proxyConfiguration": {"useApifyProxy": true}}
A current local verification returned 10 enriched rows from 379 source-reported matches.
Example input: export Texas prospects
{"state": "Texas","includeDetails": true,"maxItems": 25,"maxConcurrency": 5,"proxyConfiguration": {"useApifyProxy": true}}
A current local verification returned 25 Texas profiles with public contact data and a source-reported total of 29,263 matches.
Example output
{"listingId": "331114","name": "Switch to Solar","listingUrl": "https://www.ussbdirectory.com/listing/switch-solar","state": "Utah","city": "Midvale","yearEstablished": 2026,"totalAvailable": 379,"resultPosition": 1,"summary": "Switch to Solar helps homeowners and businesses explore reliable renewable energy solutions.","industries": ["Professional, Scientific, and Technical Services"],"classifications": ["Electrical Contractors and Other Wiring Installation Contractors"],"address": "6975 Union Park Avenue","zipCode": "84047","phone": "2027346631","email": null,"website": "https://switchtosolar.net/","contactPerson": "Switch to Solar","detailsIncluded": true,"scrapedAt": "2026-09-01T12:00:00.000Z"}
The exact fields depend on what a listing publicly displays. Do not assume every business has an email, website, address, contact person, or establishment year.
How much does it cost to extract USSB Directory businesses?
This Actor uses pay per event:
- $0.005 one-time start fee per run.
- One
itemevent for each unique business record saved. - Failed, duplicate, or filtered-out records are not item events.
- Profile details do not create a separate charge event.
The item price decreases by Apify pricing tier:
| Tier | Price per saved business |
|---|---|
| FREE | $0.002760 |
| BRONZE | $0.002400 |
| SILVER | $0.001872 |
| GOLD | $0.001440 |
| PLATINUM | $0.000960 |
| DIAMOND | $0.000672 |
Examples on the FREE tier:
- 1 business: about $0.00776.
- 10 businesses: about $0.03260.
- 100 businesses: about $0.28100.
Examples on the BRONZE tier:
- 10 businesses: about $0.02900.
- 100 businesses: about $0.24500.
- 1,000 businesses: about $2.40500.
Your active Apify tier determines the item price. An optional residential proxy configuration can add platform proxy usage to the run under Apify's platform billing rules.
Export and integration workflows
Spreadsheet prospecting
Run a state or industry filter, open the dataset, and export Excel or CSV. Use listingId or listingUrl as the durable deduplication key.
CRM enrichment
Send name, address, phone, email, website, classification, and source URL into HubSpot, Salesforce, Airtable, or another CRM through Make, Zapier, n8n, or a webhook step.
Recurring list refreshes
Create a scheduled Apify Task with the same input. Compare datasets downstream by listingId to detect additions, removals, or changed public fields.
The Actor produces current snapshots. It does not itself keep history, send alerts, or label changes.
Directory coverage analysis
Disable details, request a small sample, and use totalAvailable to record the source's current search count. Increase maxItems when you need the actual rows.
Targeted profile lookup
Supply one or more /listing/<slug> URLs to normalize known profiles without traversing search pages.
Run through the Apify API with cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~ussb-directory-business-listings/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"state": "Texas","includeDetails": true,"maxItems": 25,"proxyConfiguration": { "useApifyProxy": true }}'
For production code, prefer the Authorization: Bearer header so tokens do not appear in URLs or request logs.
Run with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/ussb-directory-business-listings').call({businessName: 'Solar',includeDetails: true,maxItems: 10,proxyConfiguration: { useApifyProxy: true },});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Run with Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/ussb-directory-business-listings').call(run_input={'industryClassification': 'Construction','includeDetails': True,'maxItems': 50,'proxyConfiguration': {'useApifyProxy': True},})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use with MCP and AI agents
Add the Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/ussb-directory-business-listings"
Claude Desktop setup
Add this MCP server JSON to Claude Desktop's configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/ussb-directory-business-listings"}}}
Cursor setup
Add the same mcpServers.apify entry to your Cursor MCP configuration, then reload Cursor.
VS Code setup
Add the same HTTP MCP URL to your VS Code MCP server settings and start the apify server.
After setup, try these example prompts with the Apify MCP server:
- “Use the USSB Directory Actor to find 20 solar businesses and return name, state, website, and profile URL.”
- “Run the USSB Directory Actor through MCP and export 50 Texas businesses with public contact details.”
- “Use MCP to extract this USSB listing URL and summarize its classifications and contact fields.”
An agent should still review source terms, privacy obligations, and outreach rules before using contact data.
Reliability, limits, and failure behavior
- USSB Directory is an independent website and can change markup without notice.
- Direct requests may receive Cloudflare challenges; keep Apify Proxy enabled.
- Each request is retried at most three times.
- Retry attempts use a fresh proxy identity after a challenge, timeout, or transient response.
- Stable invalid URLs, unsupported hosts, and unsupported paths fail without blind retries.
- Search totals are source-reported snapshots, not a completeness guarantee.
- USSB filter pages can contain stale cards; the Actor verifies filters against parsed records.
- A high
maxItemsvalue can require many source requests and a longer run. - Lower
maxConcurrencyif the source begins timing out. - Card-only runs are faster because they skip profile pages.
- Explicit profile URLs have no directory search total, so
totalAvailableisnull. - Naturally missing profile fields remain
nullor empty arrays.
The Actor fails with a non-zero status when the source returns an unrecognized challenge or page shape after bounded retries. It does not turn unexpected empty pages into successful zero-row runs.
Responsible use and legality
This Actor accesses public USSB Directory pages without credentials.
You are responsible for:
- reviewing USSB Directory's current terms and policies;
- collecting only data you have a lawful purpose to use;
- respecting applicable privacy, marketing, telemarketing, and anti-spam laws;
- honoring opt-outs and suppression lists;
- limiting retention to what your workflow needs;
- securing exported contact data;
- avoiding harassment, discrimination, or automated high-risk decisions;
- not using the Actor to train AI models where the source reserves that use.
Public availability does not remove legal or contractual obligations. This documentation is operational guidance, not legal advice.
Troubleshooting
The run receives Cloudflare challenges
Keep proxyConfiguration.useApifyProxy enabled. Retry later or select an authorized US residential proxy group if your Apify account supports it. Do not disable retries or raise concurrency first.
I received fewer rows than the source total
totalAvailable is the number reported by the source for the search. maxItems controls how many rows the Actor saves. Filters are verified again after profile parsing, so stale or mismatched source cards can be excluded.
Some contact fields are empty
USSB profiles vary. Disable assumptions that every business has a phone, email, website, street address, or named contact. Empty fields are not extraction errors when the source omits them.
My start URL was rejected
Only ussbdirectory.com/listings and ussbdirectory.com/listing/<slug> paths are supported. Remove unrelated domains, account pages, and malformed URLs.
A large run times out
Increase the Actor timeout at the Task level, reduce maxConcurrency, or split the work into state or industry runs. Keep each input deterministic so datasets can be deduplicated later.
FAQ
Does the Actor provide the total unique record count?
It exports the source-reported search total as totalAvailable on every discovered row. The unfiltered directory reported 330,957 records during implementation verification. The count changes as USSB updates its directory.
Can it export Excel?
Yes. Run results live in an Apify dataset, which supports Excel, CSV, JSON, XML, and RSS export.
Does it scrape listing cards and full profiles?
Yes. Set includeDetails to false for listing cards, or keep it true for profile enrichment.
Does it monitor changes?
It produces current snapshots. Schedule repeat runs and compare datasets downstream by listingId; built-in history and alerts are not included.
Does it require a login?
No. It processes public directory pages only.
Are emails guaranteed?
No. The Actor decodes an email when the public profile includes one. Missing emails remain null.
Can I search multiple states in one run?
The structured state field accepts one state or territory. Use separate Tasks or supply distinct filtered listing URLs for independent scopes.
Can I use my own proxy URLs?
Yes, through the standard Apify proxyConfiguration object. Reliability and platform cost depend on that proxy service.
Related Automation Lab Actors
- PagineGialle Italy Business Directory Scraper for Italian Yellow Pages business leads.
- Google Maps Conversion Gap Leads for US local-business website and conversion-gap prospecting.
- Trade Show Exhibitor Lists Scraper for event exhibitor and booth prospecting.
Choose this Actor when USSB Directory is the required source. Choose a related Actor only when its source and buyer workflow match your project.
Support
If a page layout changes or a valid USSB URL fails after retries, include:
- the Actor run URL;
- a redacted copy of the input;
- the affected public listing or search URL;
- the expected field or record count;
- the log line showing the first failure.
Do not include Apify tokens, private CRM data, or unrelated personal information.