RRadar
Websites & security

Lighthouse PageSpeed Checker

Core Web Vitals in Bulk

Example request

curl -X POST https://radarbg.com/v1/lighthouse-pagespeed-audit \
  -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"urls": ["https://example.com"], "strategy": "mobile", "maxUrls": 50, "concurrency": 2}'

Answer: {"ok": true, "count": N, "items": [...], "usage": {...}}. Failed calls are not counted.

Inputs

FieldTypeDescription
urlsarrayPages to audit with Google Lighthouse. One result row is produced per URL and strategy. Use full http(s) links; a link without a scheme gets https:// added.
strategystringmobile = Lighthouse default mobile emulation (slow 4G, mid-range phone). desktop = desktop preset. both = two audits per URL (two result rows).
categoriesarrayLighthouse categories to run. Fewer categories make each audit a little faster. Categories not run come back as null. Leave empty for all four (performance, accessibility, best-practices, seo).
maxUrlsintegerAudit at most this many URLs from the list (counted before strategies are applied). Caps the cost of big lists.
concurrencyintegerHow many audits run at the same time. Each one starts its own Chrome (about 500-800 MB). Keep 2 on the default 2 GB memory; raise it only together with the run memory. Very high values make timings less accurate. With the default 4 GB memor
monitorIdstringTurns on monitoring. Scores of every URL and strategy are remembered under this ID, and the next run with the same ID adds previousPerformance, performanceDelta and alert to each row. Use a different ID per site or customer. Leave empty for
alertDropintegerMonitoring only. A row gets alert=true when any audited category score fell by at least this many points (0-100 scale) compared with the previous run with the same Monitor ID.
onlyAlertsbooleanMonitoring only. Push only rows where alert is true (a score drop), so you pay and get notified only when something got worse. Scores are still remembered for the next run.
includeErrorRowsbooleanAlso write a row (billed) for URLs that could not be audited. Off by default: failed URLs are free and listed in RUN_SUMMARY.
datasetIdstringOptional. Pick a dataset (or paste its ID) to read the input from, for example the result of Google Maps Scraper. When this actor runs as an integration, the dataset of the triggering run is used automatically (payload.resource.defaultDatas
datasetFieldstringOptional. The item field that holds the value, for example website, url or videoUrl (dot paths like author.url work). Empty = detected automatically.
datasetMaxItemsintegerUpper limit of unique values taken from the dataset, to keep the cost under control.

Price

Included in every plan: 100 calls a month free, then from €9 a month for 3,000 calls across all APIs.

Related APIs

DMARC SPF MX Lookup APIDomain Security ReportDomain WHOIS LookupLink Preview APIPackage VulnerabilitiesSecurity Headers & SSL Certificate Checker APISecurity ScanTech Stack Lookup APIWeb FetchWeb Page Report