---
title: "Audit Batch"
method: POST
path: "/audit/batch"
---

# Audit Batch

`POST /audit/batch`

## Request

- Base URL: `https://seoscoreapi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://seoscoreapi.com/audit/batch`
- Auth: none declared. Required headers: `X-API-Key`

Audit multiple URLs in one request. Paid plans only (Starter $5/mo and up).

Each URL is audited concurrently and counts against your monthly
audit quota. Results include the same `history` delta block as
`/audit` and the extended `sxo`/`aeo`/`aio` scores.

Send JSON: {"urls": ["https://a.com", "https://b.com", ...]}
Max 10 URLs per request. URLs that fail validation are returned
with an `error` field instead of a score.

Add `"cwv": true` to the body to include measured Core Web Vitals for every
URL (see `GET /audit` for the `core_web_vitals` statuses). It is off by default:
each result then says `status: "not_requested"`, or carries a measurement that
was already cached. With it on, the measurements run side by side while the
URLs are audited, and the batch as a whole waits at most about 50 seconds on
them; a URL whose measurement is not ready reads `unavailable` + `pending: true`
and has it on the next audit. Set your client timeout to 180 seconds.

## Headers

- `X-API-Key` string, required: Your API key from /signup

## Request body

- object
  - `urls` string[], required
  - `cwv` boolean: Include measured Core Web Vitals for every URL. Off by default: it is slower. See `core_web_vitals` on `GET /audit`.

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/seoscoreapi/apis/seo-score-api.md) · [All operations](https://skmtc.dev/seoscoreapi/apis/seo-score-api/llms.txt) · [OpenAPI document](https://skmtc.dev/seoscoreapi/apis/seo-score-api/revisions/877a3044b5be?raw)
