Citation Directory Listing Extractor avatar

Citation Directory Listing Extractor

Pricing

from $6.50 / 1,000 directory page scanneds

Go to Apify Store
Citation Directory Listing Extractor

Citation Directory Listing Extractor

Extract publicly visible business citation/listing information from directory URLs and normalize NAP, categories, website links, hours, and...

Pricing

from $6.50 / 1,000 directory page scanneds

Rating

0.0

(0)

Developer

junipr

junipr

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Extract publicly visible citation and directory listing fields, compare them with expected business hints, and produce a normalized cleanup inventory.

What you get

  • Fetch only supplied public directory URLs; arbitrary directory crawling is disabled.
  • Extract business name, address, phone, website, categories, hours, and claim or verification wording.
  • Read common LocalBusiness, Organization, Place, and Store JSON-LD when available.
  • Compare public fields with supplied name, phone, and category hints and flag exact mismatch dimensions.
  • Deduplicate URL variants by normalized business name, phone, and address.

Input

{
"startUrls": [
"https://example.com/directory/example-plumbing"
],
"directoryUrls": [],
"allowedDomains": [
"example.com"
],
"maxPages": 5,
"maxDepth": 0,
"maxDirectoryUrls": 5,
"businessNameHints": [
"Example Plumbing"
],
"phoneHints": [
"+1-512-555-0100"
],
"categoryHints": [
"Plumber"
],
"extractClaimSignals": true,
"dedupeListings": true,
"includeEvidence": true,
"includeRawSnapshots": false,
"requestDelayMs": 250,
"timeoutMs": 15000,
"userAgentMode": "standard",
"maxChargeUsd": 10,
"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/directory/example-plumbing",
"recordType": "citation_listing",
"issueCode": "citation_directory_listing_extractor_record_extracted",
"directoryDomain": "example.com",
"businessName": "Example Plumbing",
"address": "100 Main St, Austin, TX 78701",
"phone": "+1-512-555-0100",
"websiteUrl": "https://example-plumbing.example/",
"categories": [
"Plumber"
],
"hoursFound": true,
"claimedSignal": true,
"listingCompletenessScore": 100,
"napMatchStatus": "matched"
}

Reports

A successful run can write:

  • citation-directory-listing-extractor-summary-report.md
  • citation-directory-listing-extractor-records.csv
  • citation-directory-listing-extractor-issues.json
  • citation-directory-listing-extractor-evidence-samples.json
  • citation-directory-listing-extractor-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
  • directory-page-scanned — $0.00650 per page
  • citation-record-extracted — $0.00295 per record
  • citation-finding-emitted — $0.00295 per finding
  • audit-report-generated — $0.08000 per report

The default maxChargeUsd is $10. 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

  • Only fields visible in public HTML or structured data are returned.
  • The actor does not sign in, claim listings, or query private profiles.
  • Claim state is returned only when explicit public wording is present.

Common use cases

  • Build a citation cleanup inventory.
  • Compare NAP fields across supplied directories.
  • Find publicly visible unclaimed or incomplete listings.