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

# Continue Browser Route Run

`POST /routes/{run_id}/continue`

Iterate from a prior run: a fresh Cheshire run linked by provenance (SSE).

Cheshire #1138 runs are stateless (no server-side route session to resume),
so a continuation is a new run seeded with the parent's lineage; the prompt
carries the refinement. Streams live exactly like create — a refinement is a
whole route search, so it is admitted and charged like one (#1909).

## Path parameters

- `run_id` string, required

## Request body

- BrowserRouteContinueRequest — Continue or iterate a browser-owned public route run.
  - `prompt` string, required
  - `browser_location` PublicRouteBrowserLocation — GPS fix explicitly shared by the browser for one route run. Serializes 1:1 into Cheshire's ``CurrentLocation`` (same field names).
    - `lat` number, required
    - `lng` number, required
    - `accuracy_m` number, nullable
    - `captured_at` string, date-time, required
    - `label` string, nullable
  - `locale` string
  - `units` string, nullable
  - `timezone` string, nullable
  - `provenance` PublicRouteProvenance — Read-only ancestry for route iterations and forks. imperfect-api lineage state only — it is **not** sent to Cheshire (the ``/routes`` contract is ``extra="forbid"``); it is persisted on the run so a continuation can record where it came from.
    - `source_route_hash` string, nullable
    - `source_route_slug` string, nullable
    - `source_public_route_id` string, nullable
    - `source_session_id` string, nullable
    - `source_run_id` string, nullable

## Response `200`

Successful Response

- unknown

## 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/55d56c4beab4/schema)
