Business Address Scraper avatar

Business Address Scraper

Pricing

from $1.14 / 1,000 address founds

Go to Apify Store
Business Address Scraper

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

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 days ago

Last modified

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

FieldDescription
inputUrlNormalized input URL or domain
sourceUrlPage where the address was found
domainCompany domain
companyNameCompany name inferred from metadata/title
addressFull extracted address string
streetAddressParsed street line when available
addressLocalityParsed city/locality when available
addressRegionParsed state/region when available
postalCodeParsed postal code when available
addressCountryParsed country when available
emailFirst public email on the page when enabled
phoneFirst public phone on the page when enabled
evidenceSnippetText proving the extraction
confidencehigh, medium, or low
extractionMethodJSON-LD or visible HTML text
crawledAtISO timestamp

How to run it

  1. Open the actor on Apify.
  2. Add company URLs or domains.
  3. Keep the default page limits for a cheap test.
  4. Start the run.
  5. 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 maxPagesPerSite for large companies with several office pages.
  • ✅ Keep proxy disabled unless a target domain blocks direct HTTP access.
  • ✅ Review evidenceSnippet before 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 ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("automation-lab/business-address-scraper").call({
"domains": ["apify.com"],
"maxPagesPerSite": 5,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(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.

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