# Refresh Dataset

```
POST 
/v1/datasets/:dataset_id/refresh
```

Manually trigger a dataset refresh.

Status-aware, because most refreshes do NOT complete in this request:

* **202 Accepted** — a connection dataset. `trigger_refresh` locks the row, marks it PROCESSING and publishes an event; the connector lambda and the JSONL→Parquet converter run seconds later. `completed` is false and `dataset.processingStatus` is `PROCESSING`. Poll the dataset (or listen on the websocket) until it leaves PROCESSING.
* **200 OK** — the work really finished here (a public dataset re-download). `completed` is true and `dataset` is the final row.

`effectiveMode` is what actually ran, which is not always what was asked for: an incremental request with no checkpoint reports `bootstrap` — it runs as a full overwrite AND records the watermark, so the NEXT run is the first genuinely incremental one. `requestedMode` echoes the request body.

Accepts an optional body with mode override ("full" or "incremental").

## Request[​](#request "Direkter Link zur request")

## Responses[​](#responses "Direkter Link zur Responses")

* 200
* 202
* 404
* 422

The refresh COMPLETED inside this request (public dataset re-download). `dataset` is the final row.

The refresh was ACCEPTED and is running elsewhere (every connection dataset). `dataset` is PROCESSING and locked — poll it.

Not found

Validation Error
