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 key

2Keep it in the environment

The examples read the key from IHCF_API_KEY, so it stays out of your code.

Shell
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
Response · 200
{
  "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.xlsx

Each call to /v1/check or /v1/repair counts as one request. Calls that fail on our side are never counted.