Business Location Page Inventory avatar

Business Location Page Inventory

Pricing

from $6.50 / 1,000 location page scanneds

Go to Apify Store
Business Location Page Inventory

Business Location Page Inventory

Inventory business location pages across a site and normalize address, phone, hours, services, geo signals, links, and location-page health in one dataset

Pricing

from $6.50 / 1,000 location page scanneds

Rating

0.0

(0)

Developer

junipr

junipr

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 days ago

Last modified

Share

Inventory location pages across a multi-location site and normalize public address, phone, hours, services, coordinates, duplicate NAP groups, and page health.

What you get

  • Discover location pages from start URLs, sitemaps, and internal links.
  • Normalize LocalBusiness, Organization, Place, or Store JSON-LD alongside visible page evidence.
  • Compare discovered records with an expected location list and emit explicit missing-location rows.
  • Detect duplicate NAP groups and optionally retain one normalized record per group.
  • Export migration-ready CSV, issue JSON, evidence, and run metadata.

Input

{
"startUrls": [
"https://example.com/locations"
],
"sitemapUrls": [
"https://example.com/sitemap.xml"
],
"allowedDomains": [
"example.com"
],
"maxPages": 10,
"maxDepth": 1,
"maxLocations": 10,
"locationUrlPatterns": [
"/locations/",
"/stores/"
],
"expectedLocations": [
"Austin",
"Dallas"
],
"extractHours": true,
"extractServices": true,
"dedupeByNap": true,
"includeGeoCoordinates": true,
"includeEvidence": true,
"includeRawSnapshots": false,
"requestDelayMs": 250,
"timeoutMs": 15000,
"userAgentMode": "standard",
"maxChargeUsd": 15,
"includeReport": true
}

Use htmlInputs when you already have source HTML or need deterministic recurring analysis. URL runs accept normal public HTTP(S) pages. Private-network and unsupported URL targets are rejected.

Dataset output

Each dataset item is a complete, schema-defined record. Fields that are not present in the source remain null rather than being guessed.

{
"sourceUrl": "https://example.com/locations/austin",
"recordType": "business_location",
"issueCode": "business_location_page_inventory_location_record",
"locationName": "Example Plumbing — Austin",
"streetAddress": "100 Main St",
"addressLocality": "Austin",
"addressRegion": "TX",
"postalCode": "78701",
"phone": "+1-512-555-0100",
"hoursRaw": "Mo-Fr 08:00-18:00",
"servicesListed": [
"Emergency Plumbing"
],
"duplicateNapGroup": null,
"locationPageHealthScore": 100
}

Reports

A successful run can write:

  • business-location-page-inventory-summary-report.md
  • business-location-page-inventory-records.csv
  • business-location-page-inventory-issues.json
  • business-location-page-inventory-evidence-samples.json
  • business-location-page-inventory-run-metadata.json

Reports include row counts, issue severities, evidence references, recommendations, and the input fields consumed by the run.

Pricing and cost controls

This actor uses pay-per-event pricing with Apify platform usage pass-through off:

  • actor-start — $0.01000 per run
  • location-page-scanned — $0.00650 per page
  • location-record-extracted — $0.00295 per record
  • location-issue-emitted — $0.00295 per issue
  • audit-report-generated — $0.08000 per report

The default maxChargeUsd is $15. The runtime checks the local budget and the Apify charge result before every paid dataset item. If either limit is reached, it stops before emitting unpaid output and writes billing diagnostics to key-value storage.

Safe crawling behavior

  • Public HTTP(S) sources only.
  • Private-network, localhost, and unsupported protocol targets are rejected.
  • allowedDomains, maxPages, actor-specific caps, maxDepth, timeoutMs, and requestDelayMs bound discovery.
  • Supplied HTML is processed without an external request.
  • Protected or authenticated sources are outside the supported public-data scope.

Limitations

  • Coordinates are emitted only when present in structured source evidence.
  • Duplicate NAP detection normalizes visible text but cannot determine legal branch identity.
  • Missing expected locations reflect the names supplied in the run input.

Common use cases

  • Prepare a normalized location inventory before migration.
  • Find duplicate NAP pages across franchise sites.
  • Compare discovered pages with an expected branch list.