AnyConvert

API Reference

Send a file, get the result delivered to the webhook URL on your account. Every AnyConvert tool shares this same endpoint, API key, and integration pattern.

Authentication

Every request needs your API key in an x-api-key header.

x-api-key: your_api_key_here

Convert a file

POST/webhooks/trigger

The request returns as soon as the file is accepted and queued. The result is delivered separately to your webhook, not in this response.

Request: multipart/form-data
filebinary, requiredThe file to convert.
fileIdstring, requiredAn id you choose to identify this file (letters, numbers, _ and -, up to 64 characters). Re-using an id for a new upload supersedes any in-progress job for it.
referenceIdstring, requiredAn id you choose for your own tracking, same format as fileId. Echoed back on delivery.
curl
curl -X POST https://api.anyconvert.app/webhooks/trigger \
  -H "x-api-key: your_api_key_here" \
  -F "file=@document.pdf" \
  -F "fileId=file-001" \
  -F "referenceId=reference-001"
Response: 202 Accepted
{
  "fileId": "file-001",
  "status": "accepted"
}

status is "already_accepted" instead if a job for the same fileId is already in progress.

Cancel a conversion

POST/webhooks/cancel

Stops a conversion that hasn't produced an outcome yet. Sends no webhook. Takes fileId as JSON and returns { "fileId", "result": "cancelled" | "not_active" } — not_active covers a job that's already delivering, finished, or unknown.

Webhook delivery

Set your webhook URL from your dashboard. Note that a file is accepted and a credit charged the moment we queue it — before we know whether the conversion will actually succeed, so both outcomes below are billed the same way. See the Refund Policy for the full explanation.

Both outcomes below arrive the same way: one multipart/form-data POST to your webhook URL, carrying fileId, referenceId, and outcome on every delivery.

On success: multipart/form-data POST
POST https://yourapp.com/your-webhook-path
x-webhook-secret: <your webhook secret>

fileId=file-001
referenceId=reference-001
outcome=success
file=<the converted file, binary>
On failure: multipart/form-data POST
POST https://yourapp.com/your-webhook-path
x-webhook-secret: <your webhook secret>

fileId=file-001
referenceId=reference-001
outcome=failure
reason=invalid_file
message=The file could not be read
detail=...

reason is one of invalid_file, dwg_conversion_failed, render_failed, empty_modelspace, timeout, or internal_error. detail is only present on some failures.

Verifying a delivery

The x-webhook-secret header carries the webhook secret you were given once, at signup. Compare it to the value you stored before trusting a payload. Respond 200 quickly, and do any slow work after acknowledging receipt.

Retry policy: delivery is attempted immediately, then retried twice more (after 30 seconds, then 2 minutes) if your endpoint doesn't answer with a 2xx. After 3 failed attempts, delivery stops.

Errors

A malformed or unreadable file is still accepted (202) and charged, then fails asynchronously via the webhook above with reason invalid_file — the API does not inspect the file before queuing it, so there is no separate synchronous validation error for that case.

400No file included in the request
401Invalid or missing API key, or no credits remaining
413File exceeds the upload size limit

Limits

Not yet available: a job-status lookup endpoint and a public changelog. If you need either of these for your integration, email support@anyconvert.app.

AnyConvert
A simple conversion API for teams that need documents turned into the right format, automatically.
Tools
PDF to WordMerge PDFJPG to PDFSign PDFEdit PDFCompress PDFDWG to PDF
Product
DocsPricing
Legal
Terms of ServicePrivacy PolicyRefund Policy
Support
support@anyconvert.app
© 2026 AnyConvert. All rights reserved.