MergeExcel API
The API is included in the Pro plan. Create a key on your account page, then send it as a Bearer token (Authorization: Bearer <redacted>). Jobs created through the API share the same monthly run allowance as the web tool, and each successful merge charges one run. Failed runs never count.
Create a job
Multipart upload, one or more spreadsheet files in the files field. Optional form fields: mode (separate, append or merge-by-id, default separate), includeSourceFile=1, dedupe=1, dedupeKey (comma-separated header names, or all), and idColumn (the header name that identifies each row, required for merge-by-id):
curl -X POST https://mergeexcelfiles.xyz/api/v1/jobs \ -H "Authorization: Bearer <redacted>" \ -F "files=@branch-north.xlsx" \ -F "files=@branch-south.xlsx" \ -F "mode=append" \ -F "includeSourceFile=1" \ -F "dedupe=1"
Merge by ID example — combine rows that share a Customer ID, keeping every different value:
curl -X POST https://mergeexcelfiles.xyz/api/v1/jobs \ -H "Authorization: Bearer <redacted>" \ -F "files=@survey-batch-1.xlsx" \ -F "files=@survey-batch-2.xlsx" \ -F "mode=merge-by-id" \ -F "idColumn=Customer ID"
The response is the created job in processing state — merging runs in the background. Poll the job until its status is ready or error: the finished job carries the merge summary (input and output row counts, duplicates removed, rows folded by ID, skipped rows, output size and engine time) and the list of artifacts written.
Read a job
curl https://mergeexcelfiles.xyz/api/v1/jobs/<job-id> \ -H "Authorization: Bearer <redacted>"
Download the merged workbook
kind is merged for the merged .xlsx, or audit for the audit report CSV (Starter and Pro only):
curl -L "https://mergeexcelfiles.xyz/api/v1/jobs/<job-id>/download?kind=merged" \ -H "Authorization: Bearer <redacted>" \ -o merged.xlsx
Notes
- Files are kept for 72 hours after processing, then deleted.
- Plan limits (runs per month, files per merge, file size, modes) apply exactly as on the web tool and are enforced on the server.
- One successful merge charges one run; failed runs never count.
- A file that cannot be read as a spreadsheet fails the job with
UNREADABLE_FILE; a job with no data rows fails withNO_DATA_ROWS; a missing ID column fails withMISSING_ID_COLUMN. None of these charges a run. - A key whose owner drops below Pro stops working with a 403 until the plan includes API access again — the key itself stays valid.