Website Compliance Scanner - Impressum, Privacy, Cookie Consent avatar

Website Compliance Scanner - Impressum, Privacy, Cookie Consent

Pricing

from $3.00 / 1,000 url scanneds

Go to Apify Store
Website Compliance Scanner - Impressum, Privacy, Cookie Consent

Website Compliance Scanner - Impressum, Privacy, Cookie Consent

Scan any website for legal compliance markers: Impressum / imprint, privacy policy, cookie-consent banner. Returns a HIGH / MEDIUM / LOW risk flag tuned for DACH GDPR / Abmahnung exposure. Pay-per-result.

Pricing

from $3.00 / 1,000 url scanneds

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Compliance Scanner

Impressum, privacy policy, cookie consent. One HTTP probe, one risk flag.

Point this actor at any website URL and it returns a structured compliance snapshot: is there an Impressum, is there a privacy policy, is there a cookie-consent banner, which consent vendor is running, and a risk flag tuned for DACH GDPR / Abmahnung exposure.

Pure Go HTTP with a real Chrome 124 TLS fingerprint. No browser, no JavaScript rendering. Fast enough to scan a lead list of thousands in minutes.

Features

  • Impressum detection. Anchor-text scan on the homepage plus targeted probes of /impressum, /legal-notice, /imprint, /mentions-legales, /note-legali, /aviso-legal, /juridische-informatie.
  • Privacy policy detection. Same shape: anchor-text scan plus path probes for /datenschutz, /privacy, /privacy-policy, /politique-confidentialite, and equivalents.
  • Cookie consent detection. Identifies Cookiebot, Usercentrics, OneTrust, Iubenda, TrustArc, Consentmanager, Complianz, Borlabs, Klaro, Termly, and Quantcast. Falls back to a generic banner marker when the vendor cannot be identified.
  • Language detection. Reads <html lang> first, falls back to a German stopword count for sites without a language attribute. Emits a two-letter code.
  • Risk flag. HIGH when a German-language site is missing an Impressum (Abmahnung exposure). MEDIUM on softer gaps. LOW when all three markers are present. UNKNOWN when the homepage cannot be fetched.
  • Tracking detection. Flags the presence of Google Analytics, GTM, Meta Pixel, Hotjar, LinkedIn Insight, TikTok Pixel, Matomo, and others so you can spot "tracking without consent" cases.
  • Fast. 5 URLs in parallel by default. Runs at 256 MB RAM with no browser overhead.

DACH use case: Abmahnung avoidance

German-language sites without a valid Impressum are directly actionable under Section 5 TMG and Section 55 RStV. Lawyers issue Abmahnung letters for a few hundred euros a pop, and the penalty stack grows fast on repeat offenders. Same story for missing privacy policies and tracking cookies set before consent.

This scanner is the fastest way to build a prioritized list of local businesses that need help. Feed it a Google Maps export or a lead scrape, filter for risk_flag = "HIGH", and you have a warm outreach list for a legal-tech agency, GDPR consulting practice, or marketing shop selling Impressum-Generator plugins.

When to use it

  • Legal-tech and GDPR consulting. Bulk-prospect leads by compliance gap.
  • Marketing agencies. Filter your web-design lead list for sites that visibly need work.
  • Sales enablement. Add a compliance signal to your CRM enrichment pipeline.
  • Compliance monitoring. Snapshot your own domain portfolio nightly and catch regressions.
  • Vendor migration research. Discover which consent tool a competitor or partner runs.

Input

ParameterTypeDefaultDescription
urlsarrayrequiredWebsite homepage URLs to scan. Bare domains accepted.
companiesarray[]Alternative paired input: [{"company_id":"...","website_url":"..."}] for CRM join-back.
probeTimeoutMsinteger5000HTTP timeout per fetch. Cap 15000.
respectRobotsTxtbooleantrueHonor the site's robots.txt on path probes.
concurrencyinteger5Number of URLs scanned in parallel.
proxyConfigurationobjectApify datacenterOptional proxy. Datacenter is fine for compliance probes.

Output shape

One row per input URL:

{
"url": "https://example.de/",
"final_url": "https://www.example.de/",
"status_code": 200,
"site_language": "de",
"has_impressum": true,
"impressum_url": "https://www.example.de/impressum",
"has_privacy_policy": true,
"privacy_policy_url": "https://www.example.de/datenschutz",
"has_cookie_consent": true,
"consent_tool": "usercentrics",
"sets_tracking_cookies": true,
"risk_flag": "LOW",
"risk_reasons": [],
"probed_at": "2026-07-21T09:00:00Z"
}

When the probe fails:

{
"url": "https://broken.example/",
"status_code": 0,
"risk_flag": "UNKNOWN",
"risk_reasons": ["probe_failed"],
"probed_at": "2026-07-21T09:00:00Z",
"error": "request timed out"
}

Risk flag semantics

flagMeaning
HIGHMissing Impressum on a German-language site. Directly actionable under Abmahnung practice.
MEDIUMAny other single compliance gap (missing privacy policy, tracking without consent, missing Impressum on non-DE site).
LOWImpressum, privacy policy, and cookie consent all present.
UNKNOWNHomepage could not be fetched.

Risk reasons are stable machine-readable strings you can filter on:

  • missing_impressum_de_site
  • missing_impressum
  • missing_privacy_policy
  • tracking_without_consent
  • probe_failed

Pricing

  • $0.001 per run start
  • $0.003 per URL scanned

Failed probes are billed too. They still consumed a run slot and returned a UNKNOWN row so you can retry the URL later.

1000 URLs = $3.00.

Issues & Feedback

Found a bug or a compliance signal we should detect? Please open an issue on the actor page.