DocMake

Developers

One request. One document.

Everything in the DocMake editor is available over a REST API. Design templates visually, then render them from your product with a single POST.

Quickstart

  1. 01 Create an API key in Settings → API Keys. Keys are prefixed dm_ and shown once; we store only a hash.
  2. 02 Design a template in the visual editor (or import a DOCX). Copy its ID, e.g. tmpl_..., from the editor.
  3. 03 POST your data as JSON to /api/v1/render. The response body is the finished DOCX or PDF, ready to save or stream to your user.

Responses include X-DocMake-Render-Time-Ms and any template warnings in X-DocMake-Warnings.

curl -X POST https://app.docmake.io/api/v1/render \
  -H "Authorization: Bearer dm_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "template_id": "tmpl_ne1EfQns2YBH",
    "format": "pdf",
    "data": {
      "company": "Acme Corp",
      "doc_title": "Document Control Procedure"
    }
  }' \
  --output document.pdf

Endpoints

The full surface: template CRUD, single and batch rendering, assets, and usage. All endpoints authenticate with Authorization: Bearer dm_...

Method Path Description
GET /api/v1/templates List templates
POST /api/v1/templates Create a template
GET /api/v1/templates/{id} Get a template
PATCH /api/v1/templates/{id} Update a template
DELETE /api/v1/templates/{id} Delete a template
POST /api/v1/templates/{id}/duplicate Duplicate a template
GET /api/v1/templates/{id}/form-schema Get the template's fill-in field schema
POST /api/v1/templates/{id}/validate Validate a template against sample data
POST /api/v1/templates/import Import a DOCX file as a template
POST /api/v1/render Render a document (returns the DOCX/PDF binary)
POST /api/v1/render/batch Batch render up to many documents in one job
GET /api/v1/render/jobs/{id} Get batch job status
GET /api/v1/render/jobs/{id}/download Download batch results
POST /api/v1/assets Upload an asset (images for templates)
GET /api/v1/assets List assets
GET /api/v1/usage Current usage and limits

Rate limits you can see

Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset, so your integration can pace itself instead of guessing. Limits scale with the plan: 500 calls/day and 30 requests/minute on Free, 50,000 calls/day and 120 requests/minute on Pro.

Fail fast, not silently

Render with strict mode to get a structured 422 listing every template variable your payload missed, instead of a document with blanks. Batch jobs report per-item status so one bad row never sinks the run.

Try it with 1,000 free documents a month

The Free plan includes full API access. No card, no expiry.

Get an API key