---
title: "Trigger a data refresh"
method: POST
path: "/v2/data/refresh"
---

# Trigger a data refresh

`POST /v2/data/refresh`

Triggers an on-demand refresh of all configured sanction lists. The refresh runs in
the background and the call returns 202 immediately. Poll GET /v2/data/refresh to
observe progress and completion.

## Response `202`

Refresh accepted and running in the background

- RefreshStatusResponse
  - `state` 'idle' | 'running' | 'succeeded' | 'failed' — Lifecycle state of the current or most recent refresh
  - `trigger` 'startup' | 'scheduled' | 'manual' — What initiated the refresh
  - `startedAt` string, date-time — Timestamp of when the refresh started
  - `finishedAt` string, date-time — Timestamp of when the refresh completed (absent while running)
  - `duration` string — Wall-clock duration of the last completed refresh
  - `lastError` string — Error message from the most recent failed refresh, if any

## Other responses

- `409` — A refresh is already running
- `default` — Unexpected error

---

[API](https://skmtc.net/moov-io/apis/watchman-api.md) · [All operations](https://skmtc.net/moov-io/apis/watchman-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/moov-io/watchman-api/revisions/42ffeeb1e25a/schema)
