Cookie Consent Audit
Last updated October 19, 2026
Check any website for cookie consent problems from an EU address. One row per domain: consent platform, reject button on the first layer, cookies and trackers fired before consent and after reject, and Global Privacy Control response. Signals for privacy teams and DPOs.
Install
npx @mambalabsdev/mcp-cookie-consent-auditEvery tool here also runs hosted, with no install at all, through Apify's MCP endpoint.
Features
- Check any website for cookie consent problems from an EU address.
- One row per domain: consent platform, reject button on the first layer, cookies and trackers fired before consent and after reject, and Global Privacy Control response.
- Signals for privacy teams and DPOs.
- Pay per event: Domain audited at $0.05.
Input
domainstringoptionalDomain or URL. The website to audit, for example example.de or https://www.example.de/. The homepage is audited.
domainsarrayoptionalDomains (batch). More domains or URLs to audit in the same run, one per line. Duplicates are skipped. Up to 500 per run.
proxy_countrystringoptionalEU vantage country. The country the browser connects from. Consent banners change by visitor region, so audit from the market you care about. Choose none to connect without a proxy, which is not an EU vantage point.
check_gpcbooleanoptionalCheck Global Privacy Control. Load the site once more with the Global Privacy Control signal on (the Sec-GPC header and navigator.globalPrivacyControl) and compare trackers with the plain visit. Also reads /.well-known/gpc.json.
max_charge_usdnumberoptionalMaximum charge (USD). Stop the run before the audit charges would pass this amount. Leave empty for no cap beyond the run's own maximum charge.
skip_cachebooleanoptionalSkip the 24 hour cache. A domain audited in the last 24 hours with the same country and GPC setting is returned from cache at no charge. Turn this on to audit it again.
Output schema
{
"domain": "string",
"url_audited": "string",
"final_url": "string",
"vantage_country": "string",
"proxy_used": "boolean",
"proxy_group": "string",
"render_status": "string",
"cmp_detected": "boolean",
"cmp_vendor": "string",
"cmp_vendors_all": "string",
"tcf_api_present": "boolean",
"tcf_cmp_id": "integer",
"tcf_gdpr_applies": "boolean",
"banner_detected": "boolean",
"accept_on_first_layer": "boolean",
"reject_on_first_layer": "boolean",
"reject_control_text": "null",
"cookies_before_consent": "integer",
"non_essential_cookies_before_consent": "integer",
"non_essential_cookies_before_consent_json": "string",
"tracker_requests_before_consent": "integer",
"consent_mode_denied_pings_before_consent": "integer",
"tracker_hosts_before_consent_json": "string",
"tracker_vendors_before_consent": "null",
"reject_clicked": "boolean",
"tracker_requests_after_reject": "null",
"consent_mode_denied_pings_after_reject": "null",
"tracker_hosts_after_reject_json": "null",
"non_essential_cookies_after_reject": "null",
"non_essential_cookies_after_reject_json": "null",
"gpc_checked": "boolean",
"gpc_tracker_requests": "null",
"gpc_non_essential_cookies": "null",
"gpc_reduces_tracking": "null",
"gpc_well_known_found": "null",
"gpc_well_known_gpc": "null",
"signals": "string",
"signals_count": "integer",
"tracker_list_version": "string",
"from_cache": "boolean",
"duration_ms": "integer",
"row_status": "string",
"error_reason": "null",
"billable_events_json": "string",
"checked_at": "string"
}Pricing
Pay-per-event billing on the Apify platform. You are charged only when the actor returns a result. No subscription, no seat license.
Free-tier Apify accounts include monthly free compute. Upgrade for higher concurrency and volume.