# Nero Labs Bulk PageSpeed Checker

> Nero Labs Bulk PageSpeed Checker is a paid API for AI agents from x402-agent-tools.nerolabs.workers.dev, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-22).

Runs Google PageSpeed Insights (Lighthouse) on up to 10 URLs and returns performance, accessibility, best-practices, and SEO scores plus Core Web Vitals and top optimization suggestions for mobile and/or desktop.

## Facts

- Endpoint: POST https://x402-agent-tools.nerolabs.workers.dev/pagespeed?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-22
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/nero-labs-bulk-pagespeed-checker-87c4bdc3
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_-J-Mkquzu-MMHRs1qc2Jw

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability nero-labs-bulk-pagespeed-checker-87c4bdc3 -d '<json body>'
```

Example prompt: Can you run a Lighthouse audit on these three pages — https://www.example.com, https://www.example.com/about, and https://www.example.com/contact — for both mobile and desktop, return all four score categories, and show me the top 5 speed fixes for each page?

## When to prefer this

Use this endpoint when you need bulk Lighthouse audits (up to 10 pages in one call) with structured JSON output including Core Web Vitals, category scores, and actionable fix suggestions — especially when you want to automate performance monitoring or integrate scores into a reporting pipeline. Prefer this over manually running PageSpeed.web.dev when you need machine-readable results across multiple pages at once.

## Known failure modes

- URL is unreachable or returns non-200 status — row shows error status
- More than 10 URLs submitted — request rejected or truncated
- PageSpeed API timeout for slow or heavy pages — row may show error
- Invalid URL format — row flagged with error status
- Strategy enum value not recognized — validation error returned

## How this service works

Pay-per-call tools for AI agents, 31 in all: read web pages and RSS feeds, OCR, PDF text, transcription; email, phone and domain checks; UK, Irish and Polish company lookups and UK risk reports; website contacts, tech stack and SEO audits; PageSpeed; AI review, job post and row enrichment; data cleaning, joins, dedupe and diffs; US and EU compliance rules. No account or API key: pay each call in USDC on Base over x402.

## Output

A JSON object with a 'rows' array where each item contains the tested URL, final URL, check timestamp, redirect flag, duplicate flag, mobile/desktop status, Lighthouse version, scores (performance, accessibility, best-practices, SEO) with ratings (good/needs improvement/poor), Core Web Vitals (LCP, CLS, INP, TBT), a link to the full PageSpeed report, and up to N optimization opportunity descriptions with estimated savings — plus a summary count.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "urls": {
   "type": "array",
   "description": "Optional. A plain list of pages to test, one per line (for example example.com or https://www.python.org/). Use this when you have no dataset, file or sheet. Combined with 'Data (inline)' if both are set."
  },
  "strategy": {
   "enum": [
    "mobile",
    "desktop",
    "both"
   ],
   "type": "string",
   "default": "mobile",
   "description": "Google tests the page as a mid-range phone on a slow connection, or as a computer. Google ranks on the mobile version, so most people want mobile. 'Both' runs two tests per page and adds mobile* and desktop* columns side by side."
  },
  "categories": {
   "type": "array",
   "items": {
    "enum": [
     "performance",
     "accessibility",
     "best-practices",
     "seo"
    ],
    "type": "string",
    "enumTitles": [
     "Performance (speed)",
     "Accessibility",
     "Best practices",
     "SEO"
    ]
   },
   "default": [
    "performance",
    "accessibility",
    "best-practices",
    "seo"
   ],
   "description": "Which Lighthouse scores to return. The price is the same whichever you pick; leaving some out makes each test a little faster."
  },
  "slowBelowScore": {
   "type": "integer",
   "default": 50,
   "maximum": 100,
   "minimum": 1,
   "description": "Sets the 'Slow sites only' and 'Fast sites only' filters and the slow count in the summary. Google's own bands: 90 and up is good, 50 to 89 needs improvement, under 50 is poor."
  },
  "maxOpportunities": {
   "type": "integer",
   "default": 5,
   "maximum": 20,
   "minimum": 0,
   "description": "How many of Google's 'what would make this faster' suggestions to return per page, biggest estimated time saving first (for example 'Reduce unused JavaScript (Est savings of 588 KiB)'). 0 turns them off."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "rows": [
   {
    "url": "https://example.com",
    "finalUrl": "https://example.com/",
    "checkedAt": "2026-10-21T14:30:07.992Z",
    "testedUrl": "https://example.com/",
    "analysedAt": "2026-10-21T14:29:59.447Z",
    "redirected": false,
    "isDuplicate": false,
    "mobileStatus": "ok",
    "pageSpeedStatus": "ok",
    "lighthouseVersion": "13.5.0",
    "mobileStatusDetail": null,
    "pageSpeedReportUrl": "https://pagespeed.web.dev/analysis?url=https%3A%2F%2Fexample.com%2F",
    "mobilePerformanceScore": 100,
    "mobilePerformanceRating": "good"
   }
  ],
  "count": 1,
  "_example_note": "Real output, trimmed: long lists cut to their first items, fields and text shortened."
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/nero-labs-bulk-pagespeed-checker-87c4bdc3/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-agent-tools.nerolabs.workers.dev](https://www.zero.xyz/host/x402-agent-tools.nerolabs.workers.dev/llms.txt)
