Local Business Directory Extractor (single page) avatar

Local Business Directory Extractor (single page)

Pricing

$1.00 / 1,000 results

Go to Apify Store
Local Business Directory Extractor (single page)

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

Ahmed Moussa

Maintained by Community

Actor 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

fieldtypenotes
urlstringa single public business/company page URL
urlsarray of stringoptional 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 LocalBusiness data 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:

  1. JSON-LD / schema.org LocalBusiness (any subtype) / Organizationname, address (PostalAddress), telephone, email, url, openingHours / openingHoursSpecification, aggregateRating, geo, categories / subtypes. Highest-confidence path.
  2. OpenGraph / business meta tagsog:site_name, og:title, og:description, og:url, business:contact_data:*, place:location:*.
  3. Plain <meta> / <title> / <h1> + visible-text heuristicsmailto: / 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 / Organization JSON-LD and no useful OpenGraph/contact markup, fields will be sparse and parse_confidence will be low / none. The actor does not invent values.
  • Blocklisted directories are refused by design (returned as blocked), to respect their terms of service.