---
title: "Refresh Product Graph"
method: POST
path: "/v1/products/{product_id}/refresh"
tags: ["products"]
---

# Refresh Product Graph

`POST /v1/products/{product_id}/refresh`

## Request

- Base URL: `https://api.evidenso.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.evidenso.com/v1/products/{product_id}/refresh`
- Auth: none declared

Replay this product's build incrementally. Returns `{job_id}` to poll on dt-api.

`clear_existing=False` is not negotiable here: a refresh must never wipe the graph it
is updating. Extraction is already incremental, so an unchanged product re-extracts
nothing.

## Path parameters

- `product_id` string, required

## Headers

- `authorization` string

## Request body

- ProductRefreshRequest
  - `scope_by_integration` object: Per-integration scope OVERRIDE, used to carry the refresh watermark (`since`) into each source. Empty → the stored build scope verbatim.

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/evidenso/apis/persona-rag-api.md) - [All operations](https://skmtc.dev/evidenso/apis/persona-rag-api/llms.txt) - [OpenAPI document](https://skmtc.dev/evidenso/apis/persona-rag-api/revisions/86408c178d4f?raw)
