---
title: "Refresh Database"
method: POST
path: "/api/v1/databases/{database_id}/refresh"
tags: ["databases"]
---

# Refresh Database

`POST /api/v1/databases/{database_id}/refresh`

Refresh this Database. Cascade to children fires automatically.

``force_full=true`` requests a full rebuild (ignore incremental
watermarks). Honored for project-owned datasets, where it is persisted
on the dispatched Run; integration-owned (crawler) refreshes always
re-poll the source and ignore the flag.

- Integration-owned (data lake table): signal the crawler workflow to poll
  that integration. ``_update_database_stats`` then fires
  ``trigger_dependent_steps`` for the children once the poll completes.
- Project-owned: dispatch a Run rooted at the producing data_sink, which
  walks the project's own ancestor closure (parents are NOT re-run —
  the data_read step uses upstream data as it stands today). The run's
  terminal phase fires ``trigger_dependent_steps`` for the children.
- File-backed / unbacked: cannot be refreshed (400).

## Path parameters

- `database_id` string, uuid, required

## Query parameters

- `force_full` boolean

## Response `202`

Successful Response

- object

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/netter/apis/dmi-backend.md) · [All operations](https://skmtc.net/netter/apis/dmi-backend/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/netter/dmi-backend/versions/a59877bf911b/schema)
