---
title: "Reconcile objects vs documents"
method: GET
path: "/v1/collections/{collection_identifier}/reconciliation"
tags: ["Collections"]
---

# Reconcile objects vs documents

`GET /v1/collections/{collection_identifier}/reconciliation`

## Request

- Base URL: `https://api.mixpeek.com`
- URL: `https://api.mixpeek.com/v1/collections/{collection_identifier}/reconciliation`
- Auth: HTTP bearer and API key in header `X-Namespace`

Objects-vs-documents conservation for a collection. Returns the distinct source-object count, the count that produced at least one document, the document count, and their delta, plus an itemized (bounded) list of source objects that produced no document with a machine-readable reason for each.

## Path parameters

- `collection_identifier` string, required: The ID or name of the collection to reconcile

## Query parameters

- `limit` integer: Cap on the itemized discrepancies list.

## Response `200`

Successful Response

- CollectionReconciliationResponse: Objects-vs-documents conservation for one collection. ``delta`` is the headline conservation number (source objects that produced no document). ``discrepancies`` is a bounded, itemized sample of those objects; ``discrepancies_truncated`` says whether more exist beyond ``limit`` so the caller never mistakes the sample for the whole.
  - `collection_id` string, required
  - `source_object_count` integer, required: Distinct source objects submitted to this collection.
  - `produced_object_count` integer, required: Distinct source objects that produced >=1 document.
  - `document_count` integer, required: Documents this collection has produced.
  - `delta` integer, required: source_object_count - produced_object_count: source objects that produced no document. 0 means conservation holds.
  - `discrepancies` ReconciliationDiscrepancy[]: Itemized objects that produced no document, up to `limit`.
    - `object_id` string, required: The source object's id.
    - `bucket_id` string, nullable: The bucket the object belongs to.
    - `reason` 'no_document' | 'failed' | 'processing' | 'skipped' | 'unknown', required: Why a source object produced no document.
    - `status` string, nullable: The object's processing status at read time.
    - `age_seconds` number, nullable: Seconds since the object was created, so a stuck object is distinguishable from one that is merely still in flight.
    - `error` string, nullable: The object's own error message, when it failed.
  - `discrepancies_truncated` boolean: True when more discrepancies exist than `limit` returned.
  - `limit` integer, required: The cap applied to `discrepancies`.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `422`: Unprocessable Entity
- `429`: Too Many Requests
- `500`: Internal Server Error
- `503`: Service Unavailable

## Changes

- **2026-10-09** `61a175e8eb9a`: 1 warning, 5 info
  - removed the optional property `detail` from the response with the `422` status
  - added the non-success response with the status `429`
  - added the non-success response with the status `503`
  - added the optional property `success` to the response with the `422` status
  - …2 more
- **2026-08-24** `b40f559d564a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/mixpeek/apis/mixpeek-api/changes/v1/collections/:collection_identifier/reconciliation/get.md)

---

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