---
title: "Mark Alert As Read"
method: POST
path: "/api/alerts/{alert_id}/read"
tags: ["Vehicle Alerts"]
---

# Mark Alert As Read

`POST /api/alerts/{alert_id}/read`

## Request

- Base URL: `https://pegarex.com.br` (the document declares no server; this is the origin it was published from)
- URL: `https://pegarex.com.br/api/alerts/{alert_id}/read`
- Auth: HTTP bearer

Mark matches as seen — the ids in the body (the page just rendered), or
every match of the alert when there is no body.

Per page, deliberately: with 165 pages, "seen" has to mean the cars that
were actually on screen, or one open would retire an alert the reader has
barely looked at. Only rows still unread are touched — this used to rewrite
every match on every open (39,326 rows, 3.3 s, on the largest alert).
read_at is stamped on the server clock, the same clock /cars uses for
`visit`, which is what keeps a car marked during a visit from being sorted
to the end before the visit is over.

## Path parameters

- `alert_id` string, uuid, required

## Request body

- ReadRequest
  - `car_ids` integer[], nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/pegarex/apis/pegarex-api.md) · [All operations](https://skmtc.dev/pegarex/apis/pegarex-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pegarex/apis/pegarex-api/revisions/8c789c9bd72d?raw)
