---
title: "Report Browser Route Run"
method: POST
path: "/routes/{run_id}/report"
tags: ["routes"]
---

# Report Browser Route Run

`POST /routes/{run_id}/report`

Record "this route is wrong" against a served run (#1598).

The reason bucket triages; the reported candidate's seq into the run's
durable ``events`` is what makes the report *replayable* —
``cheshire route-reports export`` turns it into an eval-fixture candidate
without anyone reconstructing the geometry by hand, which is exactly the
work the Seaport Village incident (#1589) needed done manually.

## Path parameters

- `run_id` string, required

## Request body

- BrowserRouteReportRequest — Report one served route (or a whole slate) as wrong (#1598). The candidate is addressed by what the browser can actually see: ``label`` ("A"/"B"/"C") or ``route_path`` (``/r/{share_id}/{slug}``). The typed candidate beat carries no option/route id, so those are the only stable handles. Both omitted = the whole slate is the complaint.
  - `reason` 'not_what_i_asked' | 'wrong_distance' | 'wrong_place' | 'unsafe_or_impassable' | 'description_wrong' | 'other'
  - `label` string, nullable
  - `route_path` string, nullable
  - `note` string, nullable
  - `locale` string, nullable
  - `theme` 'light' | 'dark', nullable

## Response `200`

Successful Response

- BrowserRouteReportResponse — Receipt for a recorded route report. Structural only — no prose. Localized copy ("thanks, we'll take a look") belongs in the client's own per-locale catalog, exactly like the typed route beats (#1329): the backend never ships user-facing strings for this surface.
  - `status` 'recorded', required
  - `report_id` string, required
  - `run_id` string, required
  - `reason` 'not_what_i_asked' | 'wrong_distance' | 'wrong_place' | 'unsafe_or_impassable' | 'description_wrong' | 'other', required
  - `candidate_label` string, nullable
  - `first_report` boolean, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/imperfect/apis/imperfect-api.md) · [All operations](https://skmtc.dev/imperfect/apis/imperfect-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/imperfect/imperfect-api/revisions/cc2293a44257/schema)
