Third-Party Scripts Auditor avatar

Third-Party Scripts Auditor

Pricing

Pay per usage

Go to Apify Store
Third-Party Scripts Auditor

Third-Party Scripts Auditor

Audit a public page for third-party scripts, stylesheets, and iframes. Classifies by known provider, flags render-blocking, missing SRI, non-HTTPS sources, and known trackers. Returns score, grade, and recommendations.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Sanskar Jaiswal

Sanskar Jaiswal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Audit a public web page for third-party scripts, stylesheets, iframes, and other external resources in one API call. Returns per-resource classification by known provider, render-blocking flags, missing Subresource Integrity (SRI), non-HTTPS sources, known advertising and tracking scripts, a readiness score, letter grade, and recommendations. Built for performance engineers, security teams, privacy and compliance auditors, and site migration QA.

Use cases

  • Performance engineers - identify render-blocking scripts and stylesheets slowing first paint and Core Web Vitals
  • Security teams - spot third-party scripts missing Subresource Integrity and loaded over insecure http://
  • Privacy and compliance auditors - detect known advertising and tracking scripts for GDPR, CCPA, and consent reviews
  • Site migration QA - verify that third-party dependencies survive CMS template changes, replatforming, and CDN cutovers
  • Frontend platform teams - monitor which known providers (Google Analytics, Facebook Pixel, Stripe, HubSpot) load on key pages

Input

FieldTypeRequiredDefaultDescription
startUrlstringyes-Public page URL to audit
timeoutSecondsintegerno10Per-request timeout (3-30 seconds)
maxHtmlBytesintegerno1048576Maximum HTML body size to download and parse (16 KB - 2 MB)

Example input

{
"startUrl": "https://example.com",
"timeoutSeconds": 10,
"maxHtmlBytes": 1048576
}

Output

A single dataset item with the full audit:

FieldTypeDescription
inputUrlstringThe URL provided as input
finalUrlstringFinal URL after redirects
httpsbooleanWhether the final response was served over HTTPS
resourceCountintegerTotal number of resources found (scripts, stylesheets, iframes)
firstPartyCountintegerNumber of first-party external resources
thirdPartyCountintegerNumber of third-party external resources
byTypeobjectCount of resources grouped by tag type (script, link:stylesheet, link:preload, iframe)
byProviderobjectCount of third-party resources grouped by known provider name
resourcesarrayPer-resource analysis (see below)
issuesarrayAggregated issue descriptions across all resources
scoreintegerThird-party scripts readiness score (0-100)
gradestringLetter grade (A+, A, B, C, D, E, F)
checkedAtstringISO 8601 timestamp
recommendationsarrayActionable recommendations for improving third-party script posture

resources array

Each entry contains:

FieldTypeDescription
tagstringHTML tag type (script, link, iframe)
relstring | nullThe rel attribute for link tags (null otherwise)
srcstringThe src or href attribute value (empty string for inline scripts)
originstring | nullResolved origin (protocol + host) of the resource, or null if unresolvable
hoststring | nullResolved hostname of the resource, or null if unresolvable
providerstringKnown provider name, "First-party", "Inline", or "Unknown"
thirdPartybooleanWhether the resource loads from a different registrable domain than the page
renderBlockingbooleanWhether the resource blocks HTML parsing or first paint
hasSribooleanWhether an integrity (SRI) attribute is present
httpsboolean | nullWhether the resource uses HTTPS (null for inline or relative)
trackerstring | nullKnown advertising/tracking provider name if detected, otherwise null
modulebooleanWhether a script uses type="module"
issuesarrayIssue descriptions for this specific resource
recommendationstring | nullFix recommendation for this resource (null when well-formed)

Grading scale

Score rangeGrade
95-100A+
85-94A
75-84B
65-74C
50-64D
30-49E
0-29F

Scoring starts at 100 when no resources are found, or 60 plus bonuses for no trackers, no render-blocking resources, no missing SRI, and no insecure sources. Penalties subtract for trackers, render-blocking scripts, missing SRI on third-party resources, insecure http:// sources, and total issue count.

Example output

{
"inputUrl": "https://example.com",
"finalUrl": "https://example.com/",
"https": true,
"resourceCount": 3,
"firstPartyCount": 1,
"thirdPartyCount": 2,
"byType": {
"script": 3
},
"byProvider": {
"Google Tag Manager": 1,
"jsDelivr": 1
},
"resources": [
{
"tag": "script",
"src": "https://www.googletagmanager.com/gtag/js?id=G-XXX",
"origin": "https://www.googletagmanager.com",
"host": "www.googletagmanager.com",
"provider": "Google Tag Manager",
"thirdParty": true,
"renderBlocking": false,
"hasSri": false,
"https": true,
"tracker": null,
"module": false,
"issues": ["missing Subresource Integrity (integrity attribute)"],
"recommendation": "Add an integrity attribute (SRI hash) to third-party scripts to prevent CDN tampering."
},
{
"tag": "script",
"src": "https://cdn.jsdelivr.net/npm/lib@1.0.0/lib.min.js",
"origin": "https://cdn.jsdelivr.net",
"host": "cdn.jsdelivr.net",
"provider": "jsDelivr",
"thirdParty": true,
"renderBlocking": false,
"hasSri": true,
"https": true,
"tracker": null,
"module": false,
"issues": [],
"recommendation": null
},
{
"tag": "script",
"src": "/app.js",
"origin": "https://example.com",
"host": "example.com",
"provider": "First-party",
"thirdParty": false,
"renderBlocking": false,
"hasSri": false,
"https": "relative",
"tracker": null,
"module": false,
"issues": [],
"recommendation": null
}
],
"issues": [
"script https://www.googletagmanager.com/gtag/js?id=G-XXX: missing Subresource Integrity (integrity attribute)"
],
"score": 82,
"grade": "B",
"checkedAt": "2026-08-06T12:00:00.000Z",
"recommendations": [
"1 third-party script/stylesheet(s) missing Subresource Integrity. Add integrity hashes to protect against CDN tampering."
]
}

Known providers detected

The actor classifies resources from commonly seen providers, including: Google Analytics, Google Tag Manager, Google Fonts, Google Ads, YouTube, Facebook, Meta Pixel, X (Twitter), Hotjar, Microsoft Clarity, HubSpot, Stripe, Cloudflare, Bootstrap CDN, unpkg, jsDelivr, LinkedIn, TikTok, Pinterest, Amazon, Salesforce, Marketo, Zendesk, Intercom, Segment, Sentry, Datadog, Mixpanel, Amplitude, FullStory, Plausible, Matomo, and TikTok Pixel. Unknown third-party hosts are reported as "Unknown".

Known trackers flagged

The actor flags scripts from known advertising and tracking domains, including: Google Ads (DoubleClick, googleadservices, googlesyndication), Meta Pixel, TikTok Pixel, LinkedIn Insight, X (Twitter) Ads, Microsoft Ads (Bing), Criteo, Taboola, Outbrain, Yandex Metrica, and Baidu Ads.

Issues checked per resource

TagIssueWhy it matters
scriptrender-blocking (no async/defer)Blocks HTML parsing and slows first paint
scriptmissing Subresource IntegrityCDN tampering could inject malicious code
scriptintegrity requires crossoriginSRI hash is ignored unless crossorigin is also set
scriptinsecure http:// sourceMixed-content warnings and MITM risk
linkrender-blocking stylesheetBlocks first paint until CSS downloads
linkmissing Subresource IntegrityCDN tampering could inject malicious CSS
linkintegrity requires crossoriginSRI hash is ignored unless crossorigin is also set
linkinsecure http:// stylesheetMixed-content warnings and MITM risk
iframemissing loading="lazy"Eager iframes defer layout and cost network
iframeinsecure http:// sourceMixed-content warnings and MITM risk

Security

  • Only public HTTP/HTTPS URLs are accepted
  • SSRF protection: localhost, private IPv4/IPv6, and DNS-resolving-to-private IPs are blocked
  • URLs with embedded credentials are rejected
  • Redirects are manually revalidated before following (max 3)
  • HTML body is capped at maxHtmlBytes to prevent oversized responses
  • No browser automation, no proxies, no cookies stored

Pricing

Pay per event:

EventPrice
Actor start$0.005
Page audited$0.01

A single-page audit costs approximately $0.015.

FAQ

What is a third-party script? Any script, stylesheet, or iframe loaded from a different registrable domain than the page itself. The actor compares the last two labels of the hostnames (for example, cdn.example.com and www.example.com both count as first-party because they share the example.com suffix).

How is this different from the HTTP Security Headers Auditor? The HTTP Security Headers Auditor inspects response headers like Content-Security-Policy, HSTS, and X-Frame-Options. This actor parses the HTML body to identify which third-party scripts, stylesheets, and iframes the page actually loads, classify them by provider, and flag per-resource issues such as render-blocking, missing SRI, and known trackers.

How is this different from the Mixed Content Auditor? The Mixed Content Auditor looks for insecure http:// subresources on an HTTPS page. This actor additionally classifies providers, flags render-blocking scripts and stylesheets, detects missing SRI, and identifies known advertising and tracking scripts.

Does the actor execute the scripts or render the page? No. The actor fetches the HTML once, parses it with a lightweight scanner, and reports what it finds. It does not run JavaScript, so dynamically injected scripts are not detected. Use a browser-based actor for that.

Can I audit multiple pages in one run? This actor audits one page per run. For bulk audits, schedule multiple runs.

Does the actor follow redirects? Yes, up to 3 redirects. Each redirect target is revalidated for SSRF safety before it is followed.