Analyze
Compare Documents
Diff two documents and get a similarity score plus line-level added, removed and modified lists — useful for contract redlines and version checks.
Login required 40 credits / callSynchronous
Overview
Upload two documents; get a JSON diff. Text is extracted from both (PDF, DOCX or TXT) and compared line by line.
POST
https://api.bytefuse.in/api/v1/analyze/compareRequest
Content type multipart/form-data:
file1filerequiredThe first document. Its extension determines how both files are read.
file2filerequiredThe second document.
comparison_typestringoptionalDocumented as
text / structure / full, but currently ignored — a line-level text diff always runs; the value is only echoed in meta.Default: textResponse
200 OK, application/json. The added/removed/modified lists are capped at 200 entries each; total_differences is uncapped:
200 OK
{
"success": true,
"result": {
"similarity_score": 0.9123,
"differences": {
"added": ["New clause 4.2 …"],
"removed": ["Old clause 4.2 …"],
"modified": [{ "before": "Fee: $100", "after": "Fee: $120" }]
},
"summary": { "total_differences": 3, "similarity_percentage": 91.23 },
"total_differences": 3
},
"meta": {
"file1_pages": 8,
"file2_pages": 8,
"comparison_type": "text",
"processing_time_ms": 61
},
"credits_charged": 3
}result.similarity_scorefloatoptional0.0–1.0 overall similarity.
result.differencesobjectoptionaladded / removed line arrays and a modified array of { before, after } pairs (each ≤ 200 entries).result.summaryobjectoptionaltotal_differences (uncapped) and similarity_percentage.credits_chargedintoptionalAlways
40 (login required). Mirrors X-Credits-Charged.Examples
curl -X POST https://api.bytefuse.in/api/v1/analyze/compare \
-H "X-API-Key: dt_live_your_key" \
-F "file1=@v1.pdf" \
-F "file2=@v2.pdf"Errors
401Anonymous / not signed in — compare is login-only.
422A password-protected PDF, or another engine validation error.
402 / 429 / 503Insufficient credits, rate limited, or capacity/config error.
500The comparison failed unexpectedly.
