ConvertChester API documentation

One call, one file, one result

The conversion API fits in two endpoints: a conversion, and the table of served pairs. Free, no key, no account — protected by a burst limit.

Try it now

Send any file up to 10 MB as multipart HTTP, with the target in `to`:

curl -X POST https://api.convertchester.com/v1/convert \
  -F "file=@logo.png" \
  -F "to=jpeg"

JSON response structure

A structural refusal returns HTTP 200 OK with status: "refused" and a reason: the verdict is in the body. HTTP 4xx errors only concern the request itself — empty file, too large, unknown target.

{
  "status": "converted",
  "document": {
    "sha256": "30f35a4b89f071a82f57ed9834fd77df...",
    "bytes": 80
  },
  "source": "png",
  "target": "jpeg",
  "result": {
    "filename": "logo.jpg",
    "media_type": "image/jpeg",
    "sha256": "6a7570d4efd75f9f3d9780e044240c88...",
    "bytes": 644,
    "content": "/9j/4AAQSkZJRgABAgAAAQAB…"
  }
}

Available endpoints

MethodPathRole
POST/v1/convertConvert a file to the requested format
GET/v1/formatsThe table of served pairs — computed, never written by hand
GET/v1/usageCurrent account usage (key required)
GET/v1/openapiThe OpenAPI specification, served by the API itself

Useful headers

Accept-Language picks the language of human-readable messages (fr or en) — codes never translate. Idempotency-Key binds a key to the fingerprint of the submitted file: replaying it with the same file is harmless, replaying it with another returns 409 idempotency_conflict.

What gets counted

With an API key, the billed unit is the distinct file, identified by its SHA-256 — not the HTTP call. Resubmitting the same file is free for seven days, and a refusal is never counted: only what was produced counts.