List Broken Links issues

View as MarkdownOpen in Claude
Lists the broken-link and mixed-content findings stored for one website, as a JSON:API collection of type `site-broken-link-issues` with the usual `links` / `meta` pagination. Only findings still open are returned - resolved ones (the crawler no longer finds them) are excluded regardless of filters. `filter[site]` is required: the listing is always scoped to one website, resolved before the policy check so a website out of reach reads as not found. Each entry carries `target_url`, `category` (`broken_link` / `mixed_content`), `severity` (`error` / `warning` / `info`), `http_status_code` (null when the link never answered), `is_internal`, `anchor_text`, `element_type`, `pages_count` (how many pages of the website still link to it), `last_checked_at`, `ignored_at`, `created_at` and `updated_at`. 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. This endpoint replaces the earlier `GET /sites/{site}/broken-links` - the website moves from the route into the required `filter[site]`. See "Broken Links issues stats" for the aggregated counts and "Bulk ignore Broken Links issues" to mute or restore findings.

Authentication

AuthorizationBearer

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

Query parameters

filter[site]stringOptional

Required. Exact website id - the listing is always scoped to one website

filter[status_code][]stringOptional

HTTP status codes, e.g. 404, 500 (repeatable). Nullable column: a link that never answered has no code and matches no value

filter[category][]stringOptional

broken_link | mixed_content (repeatable)

filter[severity][]stringOptional

error | warning | info (repeatable)

filter[ignored]stringOptional

1|0 - 1 = only muted findings, 0 = only the ones still counting; omit for both

filter[location]stringOptional

internal | external

filter[s]stringOptional

Free-text search over target_url

filter[pages]stringOptional

Only the findings still attached to this site-broken-link-pages id

sortstringOptional

created_at, last_checked_at, status_code, severity; prefix with - to invert. Default: -created_at. severity follows the real severity order (info, warning, error), not alphabetical - -severity lists errors first

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

Response

200 - Broken Links issues

datalist of objectsOptional
jsonapiobjectOptional
metaobjectOptional

Errors

404
Not Found Error
422
Unprocessable Entity Error