FruxonDocs
ApiKnowledge bases

Queues a consolidation report over the knowledge base's documents.

Finds clusters of near-duplicate documents (Draft and Published; archived documents are never members) by embedding similarity and records them without changing any document. Apply selected clusters only through `POST .../consolidations/{id}:apply`, which reuses the exact report the operator reviewed. The legacy `reportOnly=false` shape is rejected. The pass runs out of band on the maintenance worker: this returns 202 with the queued run; poll `GET .../consolidations/{id}` for the report. One run per knowledge base at a time — a second request while one is queued or running is a 409.

POST
/v1/tenants/{tenant}/knowledgeBases/{knowledgeBase}:consolidate
AuthorizationBearer <token>

JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.

In: header

Path Parameters

knowledgeBase*string

The knowledge base id.

Formatuuid
tenant*string

The tenant identifier

Pass options; every member is optional.

reportOnly?boolean|null

Legacy compatibility flag. Omit it or send true. false is rejected: an operator must review the report and apply named clusters through the report's :apply endpoint.

similarityThreshold?number|null

Cosine similarity at or above which two documents are candidates for one article.

Formatdouble
maxClusterSize?integer|null

At most this many documents in one cluster (one agent decision).

Formatint32
recentWriteWindowMinutes?integer|null

Documents modified within this many minutes are left alone — a merger may be mid-write.

Formatint32
[key: string]?never

Response Body

curl -X POST "https://api.fruxon.com/v1/tenants/string/knowledgeBases/497f6eca-6276-4993-bfeb-53cbbbba6f08:consolidate" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "00000000-0000-0000-0000-000000000000",
  "knowledgeBaseId": "00000000-0000-0000-0000-000000000000",
  "status": "QUEUED",
  "trigger": "MANUAL",
  "consolidationPolicyVersion": 0,
  "consolidationCadence": "MANUAL",
  "consolidationMode": "REPORT_ONLY",
  "requestedBy": "string",
  "reportOnly": false,
  "reportOnlyReason": "string",
  "similarityThreshold": 0,
  "maxClusterSize": 0,
  "recentWriteWindowMinutes": 0,
  "startedAt": 0,
  "completedAt": 0,
  "error": "string",
  "report": {
    "version": 0,
    "knowledgeBaseId": "00000000-0000-0000-0000-000000000000",
    "reportOnly": false,
    "consolidatorAgentId": "string",
    "similarityThreshold": 0,
    "maxClusterSize": 0,
    "recentWriteWindowMinutes": 0,
    "documentsConsidered": 0,
    "documentsSkippedAsRecentlyModified": 0,
    "embeddingsComputed": 0,
    "embeddingsReused": 0,
    "embeddingTokens": 0,
    "embeddingModel": "string",
    "clusters": [
      {
        "clusterId": "00000000-0000-0000-0000-000000000000",
        "index": 0,
        "members": [],
        "maxSimilarity": 0,
        "minSimilarity": 0,
        "outcome": "UNSPECIFIED",
        "classification": "UNSPECIFIED",
        "survivorId": null,
        "archivedIds": [],
        "note": "string",
        "executionRecordId": null
      }
    ],
    "clustersFound": 1,
    "clustersMerged": 0,
    "clustersKeptSeparate": 0,
    "clustersFailed": 0,
    "clustersRelated": 0,
    "documentsArchived": 0
  },
  "createdAt": 0,
  "modifiedAt": 0
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
Empty
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}