Boring API · available
Compares two versions of any table (price list, BOM, product export, report): finds the key column, matches rows, and lists added, removed and changed rows with the old and new value of every changed cell, numeric differences in absolute and percent, and added, removed or renamed columns. Number formats such as 1.234,56 and 1,234.56 are compared by value, so a format change is not reported as a change.
curl -F old_file=@bom_v1.xlsx -F new_file=@bom_v2.xlsx https://api.relaex-engineers.de/v1/tables/diff
Input: Multipart old_file and new_file (CSV, TSV, XLSX or text-based PDF up to 20 MiB) and optional options (JSON): key, column_map, ignore_columns, numeric_tolerance, ignore_case, header_row_old/new, sheet_old/new, output json|csv. Column headers and common cell words are recognised in English, German, French, Spanish, Italian, Portuguese, Dutch, Polish, Czech, Turkish, Swedish, Danish, Norwegian, Finnish, Korean, Japanese and Chinese; numbers in both 1.234,56 and 1,234.56 style; any ISO 4217 currency (no conversion).
Limits: 250,000 rows per file, 60 s; changes capped at max_changes, counts complete.
MCP tool table_diff over Streamable HTTP at https://api.relaex-engineers.de/mcp
(no authentication). In Claude Code: claude mcp add --transport http boring https://api.relaex-engineers.de/mcp. In Claude.ai, ChatGPT and other
clients add the same URL as a custom connector. OpenAPI-based frameworks use
/openapi.json.
Responses are in English; error, warning and rule codes are language-neutral so your assistant can explain them in your language. Column headers and common cell words are recognised in English, German, French, Spanish, Italian, Portuguese, Dutch, Polish, Czech, Turkish, Swedish, Danish, Norwegian, Finnish, Korean, Japanese and Chinese; numbers in both 1.234,56 and 1,234.56 style; any ISO 4217 currency (no conversion).
Open with a rate limit per IP and session. An X-API-Key raises the limit and
unlocks GET /v1/usage/me. Files are processed in memory and never stored.