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