Contact Page Finder avatar

Contact Page Finder

Pricing

$3.00 / 1,000 results

Go to Apify Store
Contact Page Finder

Contact Page Finder

Pricing

$3.00 / 1,000 results

Rating

0.0

(0)

Developer

Eichan Jolly

Eichan Jolly

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Security

Limited permissions

Share

What it does

Finds one contact page linked from the homepage of one user-provided official public business domain. It recognizes common contact/inquiry text and URL paths (including Japanese お問い合わせ), ranks up to three on-site candidates, and returns the highest-ranked page that actually responds with HTML. The Actor does not collect emails, phone numbers, names, or form contents.

Who it is for

B2B research and sales-operations teams who have known company domains and need a public general contact-page URL without harvesting personal contact details.

Input example (one domain)

{"domain":"example.com"}

The Apify input UI prefills only one domain. Replace it with an official corporate domain; no login or URL list is needed.

Output example

Illustrative JSON schema, not a claim about the sample domain:

{
"domain": "sample-business.example",
"contact_url": "https://sample-business.example/contact/",
"source_url": "https://sample-business.example/",
"status": "found",
"error": null
}

When no homepage link can be verified, contact_url is null and status is not_found. If input, homepage retrieval, or robots.txt checks fail, an English plain-language error is logged and the run exits nonzero with no dataset item; no Python traceback is printed.

Limits and source policy

  • One domain per run. Reads one homepage (maximum 1 MB HTML), examines at most 400 homepage anchors, and verifies at most three matching linked pages (not a recursive crawler).
  • Only URLs found in official homepage <a href> links; no guessing of /contact paths, search engines, LinkedIn scraping, or third-party directories.
  • Ignores mailto:, tel:, social profiles, external links, and links with custom ports. Removes tracking/query strings from candidate links; contact pages that require query parameters may therefore be missed.
  • Only apex/www of the supplied domain; HTTPS first with HTTP connection fallback, up to three redirects, nine seconds per HTTP request, max 1 MB downloaded per page. JavaScript-only navigation is not available.
  • Checks robots.txt before fetching pages; disallowed or unavailable robots rules (other than 404/410) are not bypassed. Private/non-public network addresses are blocked before requests. DNS validation is not a replacement for a network-level egress firewall against DNS rebinding.
  • A verified URL means an accessible HTML page whose official homepage link appears contact-related, not independently validated form deliverability. A site with only a footer-generated JS link may return not_found.
  • No login, individual names, email harvesting, or contact-form submissions.

Apify configuration and dataset

Standalone project: .actor/actor.json points to input_schema.json; src/main.py uses Python's standard library, directly reads the run's input via Apify REST API, and writes the result to the default dataset. APIFY_IS_AT_HOME=true selects cloud storage via APIFY_API_BASE_URL, APIFY_INPUT_KEY, APIFY_DEFAULT_KEY_VALUE_STORE_ID, APIFY_DEFAULT_DATASET_ID, and APIFY_TOKEN. Bearer tokens are not placed in URLs or logs.

For local testing, create storage/key_value_stores/default/INPUT.json containing the input, then run:

$python src/main.py

Alternatively set ACTOR_INPUT_JSON='{"domain":"example.com"}' before execution. Results are appended locally under storage/datasets/default/ as one numbered JSON file per item. When using Docker locally, mount storage at /usr/src/app/storage. The storage directory is not included in this deliverable.

Store placement and suggested pricing

Suggested Apify Store categories (max 3): Generate leads · Find contact information · Company research. These are suggestions for Store classification, not extra actor.json keys; Apify is rolling out platform-assigned categorization.

Suggested monetization: Pay per event (PPE), synthetic apify-default-dataset-item, $0.003 per emitted dataset item (~$3 per 1,000 items) with optional small actor-start fee if needed for per-run costs. Configure it manually in Apify Console after testing: monetization is not enabled in these files. found and not_found both create a dataset item and would count toward synthetic item billing; errors create none. At one result per run, verify actual compute and networking costs before setting a live price.