---
title: "Reconcile Repository Purges"
method: POST
path: "/v1/internal/repository-purge/reconcile"
---

# Reconcile Repository Purges

`POST /v1/internal/repository-purge/reconcile`

## Request

- Base URL: `https://api.graphify.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.graphify.com/v1/internal/repository-purge/reconcile`
- Auth: none declared

Drain the repository purge outbox: all versions + delete markers per prefix.

A repository removal commits its S3 work here rather than running it in the
request (a large repo is hundreds of builds x objects x versions). Always 2xx: the
launcher fails the rest of its reconcile tick on any non-2xx, and a prefix that
cannot be purged is a counted row plus a >24h WARNING, never a failed tick.

First removes repositories GitHub reported gone whose grace has passed
(app/services/repository_gone.py), so their purge rows drain in the same tick.
Piggybacks here so no launcher change is needed.

## Request body

- ReconcileRequest
  - `limit` integer

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/graphify/apis/graphify-control-plane.md) · [All operations](https://skmtc.dev/graphify/apis/graphify-control-plane/llms.txt) · [OpenAPI document](https://skmtc.dev/graphify/apis/graphify-control-plane/revisions/0e75c82b5ea8?raw)
