Async conversion jobs with polling and webhooks

Convert big or complex documents asynchronously: submit a job, poll its status or get a signed webhook, then fetch Markdown or JSON output.

Async upload cap 50 MB per file (POST /v1/convert/jobs)
Cost 10 credits per async job, refunded automatically if the job fails
Auth API key required (X-API-Key header)

The async lane runs the high-fidelity conversion engine — built for large files, scanned PDFs and layout-heavy documents. Submit the file, get a job id back, then either poll or receive a webhook when it finishes.

Submit

curl -H "X-API-Key: $MDKIT_API_KEY" \
  -F "file=@big-report.pdf;type=application/pdf" \
  -F "webhook_url=https://your-app.example.com/hooks/mdkit" \
  https://mdkit.online/v1/convert/jobs

The response carries everything you need:

{
  "job_id": "…",
  "status": "queued",
  "webhook_secret": "…",
  "result_url": "/v1/convert/jobs/…/result",
  "poll_url": "/v1/jobs/…"
}

webhook_url is optional — leave it off to poll instead. When set, the completion callback is signed with the returned webhook_secret so you can verify it really came from mdkit.

Poll and fetch

curl -H "X-API-Key: $MDKIT_API_KEY" https://mdkit.online/v1/jobs/$JOB_ID
curl -H "X-API-Key: $MDKIT_API_KEY" \
  "https://mdkit.online/v1/convert/jobs/$JOB_ID/result?format=markdown"

format=json returns the structured document instead — see the JSON output guide. Jobs are strictly owner-scoped: another key's job id is a plain 404.

Try it

Try it free — the free tier includes enough credits to test the full submit → webhook → result loop.