Any Convert

API Reference

Everything you need to send a drawing and receive a PDF on your webhook.

Authentication

Every request needs your API key as a bearer token in the Authorization header. Find and rotate your key from the dashboard.

Authorization: Bearer sk_live_xxxxxxxxxxxxxxxx

Convert a file

POST /v1/convert

One endpoint handles every tool. Pass a strategy to tell us which operation to run. The request returns immediately with a job id. The finished file is delivered separately to your webhook, not in this response.

Request: multipart/form-data
file binary, required The document to process. Repeat this field for strategies that accept multiple files, e.g. merge_pdf.
strategy string, required Which operation to run. See Strategies below.
webhook_url string, optional Overrides your account's default webhook URL for this request only.
curl
curl -X POST https://api.anyconvert.app/v1/convert \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@site-plan.dwg" \
  -F "strategy=dwg_to_pdf" \
  -F "webhook_url=https://yourapp.com/webhooks/pdf"
Response: 202 Accepted
{
  "job_id": "job_8f3a2c19",
  "strategy": "dwg_to_pdf",
  "status": "processing"
}

Strategies

Every tool runs through the same /v1/convert endpoint; this value just tells us which one.

dwg_to_pdf DWG to PDF From $0.90 / doc
pdf_to_word PDF to Word From $0.27 / doc
merge_pdf Merge PDF From $0.18 / doc
jpg_to_pdf JPG to PDF From $0.14 / doc
sign_pdf Sign PDF From $0.32 / doc
edit_pdf Edit PDF From $0.27 / doc
compress_pdf Compress PDF From $0.14 / doc

Webhook delivery

When conversion finishes, we POST the result to your webhook_url (or your account default, set in the dashboard).

POST https://yourapp.com/webhooks/pdf
X-Signature: sha256=8b1a99...

{
  "job_id": "job_8f3a2c19",
  "status": "completed",
  "file_url": "https://files.anyconvert.app/job_8f3a2c19.pdf"
}

On failure, status is "failed" and an error field explains why. The file_url field is omitted.

Verifying the signature

The X-Signature header is an HMAC-SHA256 of the raw request body, signed with your API secret. Check it before trusting a payload. Respond 200 quickly, and do any slow work after acknowledging receipt.

Retry policy: 3 attempts with exponential backoff over 24 hours.

Errors

401 Invalid or missing API key
402 No credits remaining on your account
413 File exceeds the 200 MB limit
422 The file could not be read as a valid DWG
500 Conversion failed. Retry, or contact support if it persists

Limits

  • Maximum file size: 200 MB
  • Rate limit: 10 requests / minute
  • Supported formats: DWG, versions R13 through 2018

Code samples

Python
import requests

with open("site-plan.dwg", "rb") as f:
    response = requests.post(
        "https://api.anyconvert.app/v1/convert",
        headers={"Authorization": "Bearer sk_live_..."},
        files={"file": f},
        data={"strategy": "dwg_to_pdf", "webhook_url": "https://yourapp.com/webhooks/pdf"},
    )

print(response.json())  # {"job_id": "...", "strategy": "dwg_to_pdf", "status": "processing"}
Node.js
const form = new FormData();
form.append("file", fs.createReadStream("site-plan.dwg"));
form.append("strategy", "dwg_to_pdf");
form.append("webhook_url", "https://yourapp.com/webhooks/pdf");

const res = await fetch("https://api.anyconvert.app/v1/convert", {
  method: "POST",
  headers: { Authorization: "Bearer sk_live_..." },
  body: form,
});

console.log(await res.json()); // { job_id: "...", strategy: "dwg_to_pdf", status: "processing" }