Local Business Directory Extractor (single page)
Pricing
$1.00 / 1,000 results
Local Business Directory Extractor (single page)
Extract structured business data from a SINGLE public business/company page via schema.org LocalBusiness/Organization JSON-LD, OpenGraph & meta: name, address, phone, email, website, hours, rating, reviews, geo. SSRF-guarded pure code (no proxy/browser/AI). Single-page, not bulk directory scraping.
Pricing
$1.00 / 1,000 results
Rating
0.0
(0)
Developer
Ahmed Moussa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 days ago
Last modified
Categories
Share
Extract structured business data from a single public business-listing or company-profile page — deterministically, with no proxy, no headless browser, no AI and no paid API.
What it does
Give it one business/company page URL. It fetches that page once and parses the
business data out of the page's schema.org LocalBusiness / Organization
JSON-LD, OpenGraph tags and meta/visible-text heuristics, returning a single
structured record:
url, status, name, address, phone, email, website, hours[], rating,review_count, categories[], geo{lat,lng}, description, method,parse_confidence, extracted_at, error
This is single-page extraction, not bulk directory scraping (see Limitations).
Input
| field | type | notes |
|---|---|---|
url | string | a single public business/company page URL |
urls | array of string | optional bounded batch, each handled like url (cap 50) |
Example input:
{"url": "https://www.apple.com/"}
Output
One dataset record per URL. Example (fields populated depend on what the page publishes):
{"url": "https://www.example-restaurant.com/","status": "completed","name": "Joe's Diner","address": "123 Main St, Springfield, IL, 62704, US","phone": "+1-217-555-0123","email": "hello@joesdiner.com","website": "https://www.example-restaurant.com/","hours": ["Mo-Fr 08:00-22:00", "Sa Su 09:00-23:00"],"rating": "4.6","review_count": "812","categories": ["Restaurant", "FoodEstablishment"],"geo": { "lat": "39.7817", "lng": "-89.6501" },"description": "Classic American diner serving breakfast all day.","method": "jsonld_business","parse_confidence": "high","extracted_at": "2026-06-24T10:00:00+00:00","error": null}
When extraction fails, the record is still returned with status
(failed / blocked / empty) and a human-readable error; the actor
never raises.
Use cases
- Enrich a CRM / lead record from a company's public profile page (name, phone, address, hours, geo).
- Pull canonical NAP (Name / Address / Phone) data for a single known business listing.
- Verify or normalize the structured
LocalBusinessdata a site publishes. - Spot-check whether a business page exposes valid schema.org markup.
How it works (deterministic, code-only)
Extraction is pure code, tried most-reliable-first:
- JSON-LD / schema.org
LocalBusiness(any subtype) /Organization—name,address(PostalAddress),telephone,email,url,openingHours/openingHoursSpecification,aggregateRating,geo, categories / subtypes. Highest-confidence path. - OpenGraph / business meta tags —
og:site_name,og:title,og:description,og:url,business:contact_data:*,place:location:*. - Plain
<meta>/<title>/<h1>+ visible-text heuristics —mailto:/tel:links and phone / email regex fallback.
The layer used is reported in method, and a code-owned parse_confidence
(high / medium / low / none) is attached to every record.
Cost-safety ($0 idle, $0 uncovered per run)
- No proxy — direct bounded HTTP GET.
- No headless browser — static HTML fetch only.
- No AI / LLM — pure deterministic parsing.
- No paid third-party API.
The only cost is Apify platform compute for the run itself.
Always-on security (SSRF-guarded, fail-closed)
- Private / loopback / link-local / reserved IPs are blocked (SSRF guard), re-validated on every redirect hop.
- A domain blocklist rejects login-walled / ToS-restricted directory sites (LinkedIn, Facebook, Yelp, Yellow Pages, TripAdvisor, Glassdoor, ...).
- Hard caps: 5s connect / 10s read timeout, 2 MB body, 3 redirects.
Limitations (honest)
- Single page, not bulk crawling. It extracts one business per URL. It does not spider a directory, follow result links, or paginate through listing pages — that would require proxies and carries ToS / legal risk.
- It reports what the page publishes. If a page has no
LocalBusiness/OrganizationJSON-LD and no useful OpenGraph/contact markup, fields will be sparse andparse_confidencewill below/none. The actor does not invent values. - Blocklisted directories are refused by design (returned as
blocked), to respect their terms of service.