Business Address Scraper
Pricing
from $1.14 / 1,000 address founds
Business Address Scraper
Extract public business addresses, emails, phones, source URLs, and evidence snippets from company websites and contact pages.
Pricing
from $1.14 / 1,000 address founds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 days ago
Last modified
Categories
Share
Extract physical business addresses, contact details, and proof snippets from public company websites.
What does Business Address Scraper do?
Business Address Scraper checks company domains, homepages, contact pages, about pages, legal pages, and common office-location pages for public business address data. It returns structured address records with source URLs and evidence snippets so you can verify where each address came from.
Who is it for?
- 🧑💼 Sales operations teams enriching CRM company records.
- 🧾 Compliance teams checking vendor registered addresses.
- 🏢 B2B data vendors normalizing company-location datasets.
- 🔎 Researchers collecting public contact information from company sites.
- 🧹 RevOps teams cleaning messy domain lists before import.
Why use this scraper?
Company websites often publish addresses in inconsistent places: a contact page, footer, JSON-LD metadata, legal imprint, or office section. This actor automates the repetitive lookup and preserves evidence so downstream reviewers do not need to re-open every page manually.
How much does it cost to extract business addresses?
The actor uses pay-per-event pricing: a $0.001 run-start event plus a per-address result event. BRONZE users pay $0.0019 per saved address; higher plans receive volume discounts down to $0.000532 on DIAMOND. For example, 10 saved addresses cost $0.020 on BRONZE and 100 cost $0.191, including the start event. Keep maxPagesPerSite low for exploratory runs, then increase it when you are ready to process larger company lists.
Input overview
You can provide website URLs, contact-page URLs, plain domains, or both. The actor normalizes domains to HTTPS and checks likely contact/about/legal URLs.
Output overview
Each dataset row is one business-address evidence record. If a site has multiple offices, the actor can save multiple rows up to your maxResultsPerSite limit.
Data fields
| Field | Description |
|---|---|
inputUrl | Normalized input URL or domain |
sourceUrl | Page where the address was found |
domain | Company domain |
companyName | Company name inferred from metadata/title |
address | Full extracted address string |
streetAddress | Parsed street line when available |
addressLocality | Parsed city/locality when available |
addressRegion | Parsed state/region when available |
postalCode | Parsed postal code when available |
addressCountry | Parsed country when available |
email | First public email on the page when enabled |
phone | First public phone on the page when enabled |
evidenceSnippet | Text proving the extraction |
confidence | high, medium, or low |
extractionMethod | JSON-LD or visible HTML text |
crawledAt | ISO timestamp |
How to run it
- Open the actor on Apify.
- Add company URLs or domains.
- Keep the default page limits for a cheap test.
- Start the run.
- Export the dataset as CSV, JSON, Excel, or via API.
Example input
{"startUrls": [{ "url": "https://apify.com/contact" }],"domains": ["mozilla.org"],"maxPagesPerSite": 5,"maxResultsPerSite": 3,"includeEmailsPhones": true,"proxyConfiguration": { "useApifyProxy": false }}
Example output
{"domain": "apify.com","companyName": "Apify","address": "Štěpánská 704/61, 110 00 Prague, Czech Republic","sourceUrl": "https://apify.com/contact","confidence": "medium","extractionMethod": "html_text"}
Tips for better results
- ✅ Use company homepages when you are unsure where the contact page is.
- ✅ Use exact contact/legal pages when you already have them.
- ✅ Increase
maxPagesPerSitefor large companies with several office pages. - ✅ Keep proxy disabled unless a target domain blocks direct HTTP access.
- ✅ Review
evidenceSnippetbefore importing records into production systems.
Handling blocked or unusual sites
The actor is HTTP-first and does not run a browser by default. Some customer-supplied domains may block automated requests, publish addresses only inside images, or require JavaScript. Those domains are skipped without stopping the whole run.
Confidence levels
High confidence usually means complete structured JSON-LD address fields were found. Medium confidence means structured data is incomplete or visible HTML contains both a street and a separate postal component. Partial visible-text fragments are rejected rather than returned as low-confidence addresses.
Integrations
Use this actor in workflows such as:
- CRM enrichment: domain list in, verified address rows out.
- Vendor onboarding: check public legal/contact pages before approval.
- Lead routing: infer country or city from company website evidence.
- Data QA: compare scraped public addresses with internal records.
- Compliance review: keep source URL and snippet as an audit trail.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/business-address-scraper').call({domains: ['apify.com'],maxPagesPerSite: 5,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("automation-lab/business-address-scraper").call({"domains": ["apify.com"],"maxPagesPerSite": 5,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~business-address-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"domains":["apify.com"],"maxPagesPerSite":5}'
MCP integration
Connect the actor through the Apify MCP endpoint:
https://mcp.apify.com?tools=automation-lab/business-address-scraper
Claude Code setup
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/business-address-scraper"
Claude Desktop setup
Add this JSON to your Claude Desktop MCP configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/business-address-scraper"}}}
Cursor setup
Add the same mcpServers.apify JSON entry in Cursor Settings → Tools & MCP.
VS Code setup
Add the same HTTP MCP server URL to your workspace MCP configuration, then enable the apify server in VS Code's MCP tools view.
Example prompts:
- “Extract public business addresses from these 50 vendor domains.”
- “Check which suppliers have a public postal address and show the evidence URL.”
- “Create a CSV with domain, company name, country, and source URL.”
Legality and responsible use
This actor extracts information from public web pages. Make sure your use case complies with applicable laws, website terms, and privacy requirements. Avoid collecting or processing personal data unless you have a lawful basis.
FAQ
Does it require login?
No. The actor is designed for public pages only.
Does it scrape Google Maps?
No. It reads company websites and public contact/legal pages supplied by the user.
Why did a domain return no address?
The site may block automated HTTP requests, hide addresses in images, publish only a contact form, or use a format the heuristic cannot identify yet.
Can it extract multiple offices?
Yes, up to maxResultsPerSite, when multiple address candidates are visible or published in structured data.
Troubleshooting
If you see too few results, increase maxPagesPerSite, provide more exact contact-page URLs, or enable Apify Proxy for domains that block datacenter traffic.
Related scrapers
- https://apify.com/automation-lab/google-maps-lead-finder
- https://apify.com/automation-lab/company-enrichment-scraper
- https://apify.com/automation-lab/email-finder-scraper
Changelog
Initial version extracts public business addresses from domains and contact-page URLs with evidence snippets.
Limits
The actor does not solve CAPTCHAs, log in, OCR images, or guarantee every website exposes a machine-readable address.
Support
If a public page clearly shows an address but the actor misses it, share the URL and a small example input so the extraction heuristic can be improved.
Version
0.1.0