For developers
A document comparison API that returns evidence.
One multipart POST with two versions of a document; one redline back — with the verification verdict in a response header, a whole-file SHA-256 digest you can store, and the machine-readable change-set embedded inside the output itself. Self-hosted: your documents never leave your infrastructure, and nothing is stored between requests.
The whole integration, in one call
POST two files. Read the verdict. Archive the proof.
curl -f -o redline.docx \
-F "original=@BOP NY LCS initial.xlsx" \
-F "revised=@BOP NY LCS final.xlsx" \
-F "renderMode=tracked" \
https://redline.your-domain.com/api/compare
true/false — the round-trip verification verdict for this output. Route on it.pleodox/change-set.json (the change list with coordinates and before/after values), pleodox/metadata.json (extracted filing metadata + assertion verdicts) and pleodox/integrity.json (the per-part SHA-256 manifest, HMAC-signed when configured). A docx/xlsx is a zip: unzip -p redline.docx pleodox/change-set.json — downstream systems classify and route without parsing prose.
Four verbs
Compare, classify, verify, bake.
-
POST /api/compare
Two versions → verified redline
Word (
.docx/.docm) or Excel (.xlsx) pairs. Tracked changes or baked colors; Excel pairs can also return the colored review copy (outputFormat=xlsx). Options for excerpts, colors, formatting tracking and metadata profiles. -
POST /api/classify
One document → checked and sealed
Metadata extraction + assertions in single-document mode, the scrub policy, an embedded classification record and integrity manifest — with a runtime proof the content is untouched. The intake-gate story →
-
POST /api/verify
Any produced file → proof
Everything is recomputed from the uploaded bytes: integrity (
ok | failed | missing), origin (HMAC), and the embedded records. No database — the file proves itself. -
POST /api/bake
Tracked changes → fixed colors
Flattens an existing tracked-changes
.docxinto viewer-independent strikeout/underline colors, with an optional report page that preserves per-change author attribution.
Plus the Alfresco endpoints for in-DMS comparison and verified save-back. All requests are multipart/form-data; errors are always JSON with a plain-language message; interactive OpenAPI docs (Swagger UI) are served on your running instance.
Why self-hosted matters here
An API your security review can approve.
- ✔Nothing leaves your network. Pure Java on your own servers — no cloud dependency, no third-party processing, no per-seat installs.
- ✔Nothing stored. Each request is computed and forgotten; documents are processed in memory/temp files and deleted after the response.
- ✔Deterministic. The same inputs always produce the same redline — reproducible builds for documents, testable in CI.
- ✔Operationally boring. Upload limits, concurrency caps and timeouts are standard configuration; excess load gets a clear "busy" error, never a hang.
Next
The full reference is in the docs.
Every endpoint, parameter, response header and error shape, with curl examples: REST API reference. Or see what the outputs look like to a human: compare two Word documents · compare two Excel files.