Get started
Quickstart
From nothing to a checked file in about two minutes. You need an email address and any .xlsx, .docx or .pptx.
1Create a key
Sign in with your email — the first sign-in creates a free account with 500 requests a month. In the dashboard, open API keys and choose New key. The key is shown once, so copy it before you close the dialog.
Get an API key2Keep it in the environment
The examples read the key from IHCF_API_KEY, so it stays out of your code.
export IHCF_API_KEY="ihcf_live_…"3Check a file
Send the file as multipart/form-data in a field named file. Nothing is changed; you get a verdict and everything a repair would do.
curl https://api.ihatecorruptfiles.xyz/v1/check \
-H "Authorization: Bearer $IHCF_API_KEY" \
-F file=@report.xlsx{
"request_id": "5f0e7c1a-6f42-4f3c-9f0b-2a1d8c7e4b90",
"format": "xlsx",
"bytes": 5281,
"verdict": "needs_repair",
"opens_in_office": true,
"repairable": true,
"repair_level": "SEMANTICS",
"findings": [],
"actions": [
{
"stage": "semantics",
"code": "Sem_NumberStoredAsText",
"fix": "convert-text-to-number",
"description": "1 cell(s) held a number typed as text…: C2.",
"part": "xl/worksheets/sheet1.xml",
"location": null,
"advisory": false
}
],
"reason": null,
"engine_version": "2.0.0"
}verdict is the field to branch on: ok and tolerated mean ship it, needs_repair and broken mean repair it. The checking guide covers all six.
4Repair it
The same upload to /v1/repair returns the repaired file as the response body. X-Repair-Changed: false means it was already fine and these are your bytes.
curl https://api.ihatecorruptfiles.xyz/v1/repair \
-H "Authorization: Bearer $IHCF_API_KEY" \
-F file=@report.xlsx \
-D - -o report-fixed.xlsxEach call to /v1/check or /v1/repair counts as one request. Calls that fail on our side are never counted.