List broken link scans

View as MarkdownOpen in Claude
Lists the Broken Links Checker runs of every website the token can reach, as a JSON:API collection of type `site-broken-link-scans` with the usual `links` / `meta` pagination. Each entry carries `status` (`pending`, `done`, `failed`, `failed_partial`), `type` (`full` - every published content type; `page` - only the pages named at launch), `method` (`manual`, `automatic`, `force_first`), `site_id`, the crawl counters (`parts_total`, `parts_done`, `parts_failed`, `parts_empty`, `pages_enumerated`, `links_enumerated`, `pages_planned`, `links_planned`, `total_batches`, `current_batch` - `0` until the plugin reports), `error_code` / `error_message` (null unless the run failed), `created_at`, `updated_at` and `finished_at` (null while still running). A scan takes from minutes to several hours: a launch never waits for it to finish - poll this listing and read `status`. The findings themselves are not here: they are "Broken Links Issues" › "List Broken Links issues" and "Broken Links Pages" › "List Broken Links pages". Websites of other organizations - and members without the read permission - answer 404; an unknown filter answers 400 and an invalid value 422. A read-only token is enough. The MCP twin of this endpoint is the `site-broken-link-scans-index` tool.

Authentication

AuthorizationBearer

Personal access token created in the Modular DS dashboard; read-only tokens can only call GET endpoints.

Query parameters

filter[site][]stringOptional

Exact website ids (repeatable)

filter[status][]stringOptional

pending | done | failed | failed_partial (repeatable)

filter[type][]stringOptional

full | page (repeatable)

filter[method][]stringOptional

manual | automatic | force_first (repeatable) - how the scan was triggered

filter[active]stringOptional

1|0 - 1 = still running (status pending), 0 = finished (done, failed or failed_partial)

sortstringOptional

created_at, updated_at; prefix with - to invert. Default: -created_at (newest first)

page[number]stringOptional
page[size]stringOptional
Max 50

Response

200 - scans

datalist of objectsOptional
jsonapiobjectOptional
metaobjectOptional

Errors

422
Unprocessable Entity Error