Inventory public business contact channels from contact and support pages
Audit public contact, about, support, policy, location, legal, privacy, or company pages you supply and emit structured public business contact-channel rows: labeled support paths and forms, phone numbers, social profiles, domain and source URL context, fetch timestamps, and warnings. Person-level private-contact candidates are suppressed. This is not a page-body cleaner and not a head-metadata audit — those jobs belong on Website Content Extractor and Meta Tag & OpenGraph Scraper.
From $2.00 per 1,000 results
Open Contact Page Audit & Business Channel Extractor on Apify
Public contact-channel inventory, not page body or meta-tag audit
Use this page when the job is a reviewable inventory of public business channels on contact and support surfaces. Use Website Content Extractor when the job is cleaned markdown or text from docs, product, pricing, policy, or help-center HTML. Use Meta Tag & OpenGraph Scraper when the job is title, canonical, robots, Open Graph, Twitter Card, hreflang, and JSON-LD from the HTML head.
| This Actor | Website Content Extractor | Meta Tag & OpenGraph Scraper | |
|---|---|---|---|
| Intent | Inventory public business contact channels for site QA and account hygiene | Clean docs, product, pricing, policy, and help-center HTML | Technical SEO audit of head metadata, social previews, JSON-LD, and robots |
| Input | Contact, about, support, or company URLs in urls (max 100) |
HTTP(S) page URLs in urls (max 200) |
HTTP(S) page URLs in urls (max 500) |
| What it reads | Public contact / about / support / policy / company pages | Live page HTML for cleaned body content | HTML head and embedded JSON-LD (no JavaScript render) |
| Primary output | public_contact_channel rows: support path, phone, social URLs, source context |
web_content rows: title, markdown/text, word count, optional metadata |
Title, description, canonical, robots, Open Graph, Twitter Card, hreflang, JSON-LD, issue flags |
| Person-level emails | Suppressed; counted in warnings | Not a contact extractor | Not a contact extractor |
| Full page body / head audit | No published markdown or meta-tag field list | Yes — cleaned content is the deliverable | Yes — head metadata and issue flags, not body text |
This Actor is not a ranking tool, a full-site crawler, or a legal-advice product. Fetch public HTTP(S) URLs you own or are authorized to audit, with a lawful basis for downstream processing. Individual contact harvesting, personal profile collection, bulk promotional messaging, and consent-free communication workflows are outside the intended use.
Use cases
- Site QA and compliance review of public contact, about, and support pages.
- Support-path inventory and support-channel mapping for RevOps and support ops teams.
- Policy-coverage checks and reviewable audit exports for legal, privacy, and compliance workflows.
- Account data hygiene and support-channel inventory for data teams.
- Generating structured contact observations for monitoring, research, and workflow handoff.
The published README positions the Actor for RevOps, support ops, compliance reviewers, and data teams. Start with owned or target-account contact, about, or support pages. Keep the first run small and expand only after the output shape is useful. This Actor returns bounded contact-channel rows. It does not emit a Site QA report; those are separate follow-on Actors on the Store page.
How is Contact Page Audit & Business Channel Extractor different from Website Content Extractor and Meta Tag & OpenGraph Scraper?
This Actor inventories public business contact channels from contact, about, support, policy, and company pages you supply. Required input is urls (maximum 100). Each published row is a public_contact_channel observation: supportChannel, phone, socialUrls, domain, sourceUrl, confidence, warnings, and fetchedAt. Person-level email candidates are suppressed. Website Content Extractor cleans docs, product, pricing, policy, and help-center HTML into markdown, text, or HTML (max 200 URLs) and does not emit this contact-channel inventory. Meta Tag & OpenGraph Scraper audits head metadata — title, canonical, robots, Open Graph, Twitter Card, hreflang, and schema.org JSON-LD — and does not extract support forms, phones, or social profiles as business channels. Use this Actor for contact-channel QA and account hygiene. Use Website Content Extractor for cleaned page body. Use Meta Tag & OpenGraph Scraper for crawler and social head metadata.
What input is required?
urls is required. The published schema accepts contact, about, support, or company URLs (minimum 1, maximum 100). Person-level emails are suppressed. Other live schema fields:
| Field | Type | Default | Notes |
|---|---|---|---|
urls |
string[] | required | Contact, about, support, or company URLs; min 1, max 100. Schema prefill is https://www.icann.org/contact, https://automattic.com/contact/. |
concurrency |
integer | 5 | Parallel requests; minimum 1, maximum 5 (1–5 recommended for public contact pages) |
timeoutMs |
integer | 15000 | Request timeout in milliseconds; minimum 1000, maximum 30000 |
delivery |
string | dataset |
dataset or webhook. Non-dry-run writes canonical dataset rows first. |
webhookUrl |
string | — | POST target when delivery is webhook and dryRun is false, after dataset output succeeds |
dryRun |
boolean | false | Skip dataset writes and webhook delivery; local output/result.json is still written |
maxChargeUsd |
number | 1 | Safety cap; minimum 0. Billable rows beyond the cap return as no-charge limit_reached summaries |
Live schema names are urls, concurrency, timeoutMs, delivery, webhookUrl, dryRun, and maxChargeUsd. A README “Account data hygiene” example that sends domains and paths is not a live schema input — pass full page URLs in urls.
Published Store example run input:
{
"urls": [
"https://www.mozilla.org/en-US/contact/",
"https://about.gitlab.com/company/contact/"
],
"concurrency": 5,
"timeoutMs": 15000,
"delivery": "dataset",
"dryRun": false
}
Published README first run (schema-valid):
{
"urls": [
"https://example.com/contact"
],
"maxChargeUsd": 1,
"delivery": "dataset",
"dryRun": false
}
Start with owned or target-account contact, about, or support pages. Keep the first run small. Use dryRun: true before recurring watches or larger URL lists.
Run a contact-page audit on Apify
What does a result row contain?
The published README field list is rowType, domain, sourceUrl, supportChannel, phone, socialUrls, confidence, warnings, and fetchedAt. Sample rowType is public_contact_channel. Rows also include source URLs, fetch timestamps, warnings when a source is partial, and stable IDs when the workflow supports recurring change detection. There is no published full-page markdown or meta-tag audit field.
Published README sample:
{
"meta": {
"actorName": "contact-details-extractor",
"actorTitle": "Contact Details Extractor",
"bundle": "Site QA & Content Intelligence Pack",
"fetchedAt": "2026-05-06T00:00:00.000Z",
"totalRows": 1
},
"rows": [
{
"actorName": "contact-details-extractor",
"rowType": "public_contact_channel",
"domain": "example.com",
"sourceUrl": "https://example.com/contact",
"supportChannel": "support form",
"phone": "+1 555 0100",
"socialUrls": [
"https://www.linkedin.com/company/example"
],
"fetchedAt": "2026-05-06T00:00:00.000Z"
}
],
"warnings": []
}
That sample is the published README illustration, not a live coverage guarantee. The field list also includes confidence, which is not shown on the sample row. For cleaned page body after this inventory, send docs, product, or policy URLs to Website Content Extractor. For news, blog, or press URLs, use Article Content Extractor.
Are person-level emails collected?
No. The live input schema states person-level email candidates are suppressed. The README states the Actor emits public business contact-channel rows only; person-level private-contact candidates are suppressed and counted in warnings. Use it with public business contact, about, support, location, legal, privacy, or company pages and a lawful basis for downstream processing. Individual contact harvesting, personal profile collection, bulk promotional messaging, and consent-free communication workflows are outside the intended use. Do not use provider emblems or wording that implies approval by an upstream data provider.
How is Contact Page Audit & Business Channel Extractor priced?
Billing is pay-per-event. Live Store events are Actor Start at $0.001 (charged when the Actor starts; number of events depends on Actor memory, one event per GB, minimum one event) and result at $0.002 (single result in the default dataset). That is $2.00 per 1,000 results plus start. The README pricing section still quotes $0.008 per verified public business contact-channel row; live Store billing for a default-dataset result is $0.002.
Empty scans, person-level-only pages, unverified rows, and policy-suppressed candidates should not create dataset charges. The default dataset is the billable surface. maxChargeUsd defaults to 1; billable rows beyond that cap are returned as no-charge limit_reached summaries. Dry runs, validation-only runs, missing-key warnings, and unchanged recurring polls should not write payable default-dataset rows.
From $2.00 per 1,000 results ($0.001 Actor Start + $0.002 per default-dataset result)
See Contact Page Audit & Business Channel Extractor pricing on Apify
How do dataset, webhook, dry runs, and the charge cap work?
delivery defaults to dataset. Non-dry-run Apify runs write canonical dataset rows first. Webhook delivery POSTs one full payload only after dataset output succeeds, when delivery is webhook, webhookUrl is set, and dryRun is false. dryRun true skips dataset writes and webhook delivery; local output/result.json is still written. maxChargeUsd is a safety cap for the run (default 1, minimum 0).
Published README webhook example (schema-valid):
{
"urls": [
"https://example.com/support"
],
"delivery": "webhook",
"webhookUrl": "https://example.com/webhook",
"dryRun": false
}
Open Contact Page Audit & Business Channel Extractor on Apify
Limits to keep in mind
- Maximum 100 URLs per run. Required field is
urls. concurrencyis 1–5 (default 5).timeoutMsis 1000–30000 (default 15000).- Person-level private-contact candidates are suppressed, not emitted.
- README
domains/pathsexamples are not live schema fields. - This is a public contact-channel inventory, not a full-page content extract and not a meta-tag audit.
- Not a ranking tool, full-site crawler, or legal-advice product.
Open Contact Page Audit & Business Channel Extractor on Apify
Related pages
- Website Content Extractor — cleaned docs, product, pricing, policy, and help-center body text, not this contact-channel inventory
- Meta Tag & OpenGraph Scraper — head metadata, Open Graph, JSON-LD, and robots audit, not contact-channel inventory
- Article Content Extractor — article body, byline, date, excerpt, and hero image
- DNS Propagation Checker — public DNS lookups, not HTML contact extraction
- Wayback Machine Bulk Checker — Internet Archive availability checks, not live contact-channel extraction
- Short URL Resolver & Scraper
- YouTube Transcript Scraper
- RSS & Atom Feed Extractor
- Google News Scraper
- Shopify App Store Review Scraper
- G2 & Capterra Review Scraper
- TED, SAM.gov & Grants Bid Alerts Scraper
- Apple Podcasts Scraper
- Tools