---
title: "Reconcile artifact storage"
method: POST
path: "/v1/artifacts/{artifact_id}/reconcile"
---

# Reconcile artifact storage

`POST /v1/artifacts/{artifact_id}/reconcile`

## Request

- Base URL: `https://api.turos.app`
- URL: `https://api.turos.app/v1/artifacts/{artifact_id}/reconcile`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Verifies that the saved artifact payload is present in object storage. The result is `local_only` when object storage is not in use, `synced` when the object already exists, `recovered` when a missing object was repaired, or `uploaded` when the payload was written to object storage. Send no request fields.

## Path parameters

- `artifact_id` string, required

## Request body

- object

## Response `200`

Reconciliation result for the persisted artifact.

- ArtifactReconciliation
  - `object` 'artifact_reconciliation', required
  - `id` string, required
  - `artifactId` string, required
  - `status` 'local_only' | 'synced' | 'recovered' | 'uploaded', required
  - `storageMode` 'local' | 'r2', required
  - `objectKey` string, nullable, required
  - `requestId` string, required

## Other responses

- `default`: Contract-aware error response

---

[API](https://skmtc.dev/turos/apis/turos-api.md) · [All operations](https://skmtc.dev/turos/apis/turos-api/llms.txt) · [OpenAPI document](https://skmtc.dev/turos/apis/turos-api/revisions/a68d3ec80a56?raw)
