Store Locator Extractor avatar

Store Locator Extractor

Pricing

from $15.00 / 1,000 locator page rendereds

Go to Apify Store
Store Locator Extractor

Store Locator Extractor

Extract public store/location records from owned store-locator pages with cautious browser fallback.

Pricing

from $15.00 / 1,000 locator page rendereds

Rating

0.0

(0)

Developer

junipr

junipr

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Extract public store/location records from owned store-locator pages with cautious browser fallback.

Extract public store and location records from structured input, JSON-LD, common locator markup, or a rendered public page. The rendered path uses a browser with request filtering, time and byte limits, and an optional screenshot for browser-visible evidence.

Results At A Glance

  • Structured dataset rows designed for filtering, exports, and API delivery.
  • Stable source and record identifiers for repeatable runs.
  • Honest null values and diagnostic rows when evidence is unavailable.
  • Explicit limits for targets, records, source bytes, and optional reports.
  • Pay-per-event billing that stops before paid output when the run budget is exhausted.

Common Uses

  • Normalize store records from an owned locator
  • Extract LocalBusiness and Store JSON-LD
  • Inspect a dynamic locator that requires browser rendering
  • Capture one bounded viewport screenshot with the extracted records
  • Find locations missing names, addresses, or phone numbers

How It Works

  1. Normalize one or more bounded locator targets.
  2. Charge the rendered-page event before processing each locator page.
  3. Use supplied HTML or records, or render a public URL when renderPages is enabled.
  4. Optionally capture a bounded screenshot after its billing event is accepted.
  5. Extract location fields from JSON-LD or common store containers.
  6. Write one dataset row per deduplicated location and an optional report.

Input

FieldPurpose
targetsLocator pages with HTML, text, or structured location items.
urlsPublic locator URLs for browser rendering.
renderPagesEnables browser rendering for URL-only targets.
captureScreenshotStores one viewport screenshot for each rendered target when budget permits.
maxItemsLimits locator targets to 1-50.
maxTextBytesCaps rendered or supplied HTML.
includeReportWrites results, summary, and Markdown report records.

No field is required for the first run. The bundled bounded example demonstrates the output without making a network request. For URL retrieval, provide public HTTP(S) URLs without embedded credentials and enable the relevant retrieval control.

Input Example

{
"sourceId": "acme-locator",
"sourceUrl": "https://example.com/stores",
"html": "<html><head><script type=\"application/ld+json\">{\"@type\":\"Store\",\"name\":\"Acme Downtown\",\"telephone\":\"+1 312-555-0144\",\"address\":{\"streetAddress\":\"10 Market Street\",\"addressLocality\":\"Chicago\",\"addressRegion\":\"IL\",\"postalCode\":\"60601\"},\"openingHours\":[\"Mo-Fr 09:00-17:00\"],\"geo\":{\"latitude\":41.88,\"longitude\":-87.63},\"url\":\"https://example.com/stores/downtown\"}</script></head><body><h1>Store locator</h1></body></html>",
"maxItems": 1,
"renderPages": false,
"captureScreenshot": false,
"includeReport": true
}

Dataset Output

  • Location name, address, city, state, postal code, and phone
  • Opening hours, coordinates, and location URL when present
  • Extraction method, rendered status, and optional screenshot key
  • Missing-field issue codes and a source-specific recommendation

Every dataset row includes pricingEventName so cost-bearing output can be traced to its event. A blocked source can produce a diagnostic row with a null event name; that row is not represented as successful extraction.

Output Records

  • Dataset: {{links.apiDefaultDatasetUrl}}/items
  • Results JSON: {{links.apiDefaultKeyValueStoreUrl}}/records/STORE_LOCATOR_EXTRACTOR_RESULTS.json
  • Summary JSON: {{links.apiDefaultKeyValueStoreUrl}}/records/STORE_LOCATOR_EXTRACTOR_SUMMARY.json
  • Markdown report: {{links.apiDefaultKeyValueStoreUrl}}/records/STORE_LOCATOR_EXTRACTOR_REPORT.md
  • Rendered screenshots: {{links.apiDefaultKeyValueStoreUrl}}/records/STORE_LOCATOR_EXTRACTOR_SCREENSHOT_<n>.png

Report records are written only when includeReport is enabled, there is paid output to report, and the report event is accepted. Digest records follow the same rule for includeDigest.

Pricing

This actor uses pay-per-event pricing. The configured event prices include platform usage; no separate platform-usage pass-through is expected for these events.

EventPrice (USD)When it is charged
actor-start$0.05000Before paid run setup.
locator-page-rendered$0.01500Before supplied or browser-rendered locator evidence is processed.
screenshot-captured$0.01000Before a browser screenshot is captured.
issue-detected$0.01300Before issue-bearing location output is written.
report-generated$0.10000Before report records are written.

The default maximum charge is $50.00. Input limits and run-budget limits remain independent: a broad input can still stop early when another event cannot be charged. A rejected or partial charge prevents the matching paid row or report from being written.

Public Tasks

  • Render pages and inspect Store Locator Extractor: Extract public store/location records from owned store-locator pages with cautious browser fallback. This task uses one bounded, credential-free example.
  • Capture browser-visible evidence for Store Locator Extractor: Extract public store/location records from owned store-locator pages with cautious browser fallback. This task uses one bounded, credential-free example.
  • Audit dynamic page behavior for Store Locator Extractor: Extract public store/location records from owned store-locator pages with cautious browser fallback. This task uses one bounded, credential-free example.
  • Extract JSON-LD store locations: Extract public store/location records from owned store-locator pages with cautious browser fallback. This task uses one bounded, credential-free example.
  • Render one public store locator page: Extract public store/location records from owned store-locator pages with cautious browser fallback. This task uses one bounded, credential-free example.

Each task uses one bounded, credential-free input and can be edited before a run. URL retrieval remains disabled in tasks that already include source evidence.

Cost And Scope Controls

  • Start with one target and inspect the dataset before increasing limits.
  • Keep report generation off when only dataset rows are needed.
  • Supply HTML, XML, text, or records directly when repeatability matters.
  • Use URL retrieval only for public sources you are authorized to access.
  • Keep byte and record limits close to the downstream requirement.
  • Treat charge-limit truncation as partial output, not a complete inventory.

Safety

Only public HTTP(S) sources are accepted for retrieval. Credentialed URLs, loopback hosts, private and reserved address ranges, private DNS answers, and redirects are blocked. Responses are read with time and byte limits. The actor does not bypass authentication, CAPTCHAs, paywalls, access controls, or source restrictions.

Do not submit secrets, session cookies, private contact lists, or sensitive personal data. Review source terms and legal requirements before collecting or redistributing public information.

Limitations

  • The actor does not bypass CAPTCHAs, authentication, access controls, or robots restrictions.
  • Browser rendering is intentionally sequential and bounded.
  • Screenshots use one desktop viewport and are evidence, not visual regression tests.
  • Markup that exposes no JSON-LD or recognizable location containers may produce a diagnostic row.

Troubleshooting

A blocked diagnostic row appears

Confirm that source evidence was supplied. For URL retrieval, verify that the URL is public HTTP(S), has no credentials, does not redirect, and fits within the byte and timeout limits.

Fewer rows appear than expected

Check the target and record caps, source formatting, duplicate identifiers, and truncatedByChargeLimit in the summary. Increase one limit at a time after inspecting cost and output quality.

Report records are absent

Set includeReport to true and confirm the run produced paid dataset rows. A report is skipped when its billing event cannot be accepted.

Values are null

Null means the supplied source did not establish the value. Add structured evidence at the source or provide a structured input record; do not treat null as a guessed value.

Integration

Dataset items can be consumed through the Apify API, webhooks, exports, or platform integrations. Use stable sourceId and record identifiers as join keys. Preserve checkedAt, source URLs, status, issue codes, and hashes when building recurring comparisons or audit trails.

For scheduled use, begin with one bounded target, compare output across two runs, and only then increase limits. Downstream automation should handle blocked diagnostics, null values, charge-limit truncation, and source-format changes explicitly.

Output Quality Checklist

Before using results operationally:

  1. Confirm the source URL or supplied evidence is the intended source.
  2. Review warning, failure, blocked, and issue-code fields.
  3. Check null fields against the source rather than filling them automatically.
  4. Confirm the summary does not report charge-limit truncation.
  5. Retain source identifiers and timestamps with exported records.
  6. Validate changed records before sending a digest or updating another system.

FAQ

Does the first run call external websites?

No. The bounded input includes source evidence and leaves URL retrieval disabled.

Can I process several sources?

Yes. Use the target or URL arrays and raise the relevant cap gradually.

Are missing values inferred?

No. Missing values remain null or are named in issue fields.

What happens when a charge is rejected?

The actor stops before writing the matching paid output. Already completed rows remain available and the summary identifies truncation where applicable.

Is the Markdown report the primary output?

No. Dataset rows are the primary machine-readable output. Reports and digests are optional buyer-readable records.

Does this guarantee SEO, compliance, or business outcomes?

No. The actor provides extraction and QA evidence. It does not guarantee rankings, legal compliance, completeness of a third-party source, or commercial results.