DocMorph AI

Developer Portal

DocMorph API v1 — convert documents programmatically with signed webhooks and usage metering.

Authentication

All requests authenticate with an API key sent as api_key in the body or Authorization: Bearer <key>. Keys are tenant-scoped and carry least-privilege scopes. Create keys in the Integration Center.

Endpoint Reference

POSTaction: "formats"conversions:read

List enabled conversion routes

POSTaction: "submit"conversions:write

Enqueue an async conversion job

POSTaction: "status"conversions:read

Retrieve job status

POSTaction: "output"conversions:read

Retrieve completed output

POSTaction: "cancel"conversions:write

Cancel a queued job

POSTaction: "usage"usage:read

Retrieve recent usage events

POSTaction: "webhooks.list"webhooks:manage

List webhook endpoints

Every response carries correlation_id, api_version, and a rate_limit object. Long-running conversions are asynchronous — submit returns 202 with a job_id to poll.

Webhooks

Webhooks are HMAC-signed with a per-endpoint secret over {timestamp}.{body}. Headers: X-DocMorph-Signature and X-DocMorph-Timestamp. Replay protection rejects timestamps older than 5 minutes. Delivery retries with exponential backoff and auto-disables endpoints after 5 consecutive failures.

Error Catalog

401 UNAUTHORIZED

Missing, invalid, or revoked API key

403 FORBIDDEN

API key lacks the required scope or IP not allowed

404 NOT_FOUND

Job or endpoint not found in the caller's tenant

409 CONFLICT

Output not ready or endpoint not active

422 VALIDATION_ERROR

Missing required fields

429 RATE_LIMITED

Per-minute rate limit exceeded (see headers)

Test Console (Sandbox)

Try any action with an API key. Use a sandbox-labeled key — production documents are never touched here.

Versioning & Deprecation

The API is versioned (v1). Breaking changes ship under a new version; deprecated endpoints are supported for at least 90 days with a Sunset header. Rate limits default to 60 requests/minute per key, configurable per credential.