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
- 01
Create an API key in Settings → API Keys. Keys are prefixed
dm_and shown once; we store only a hash. - 02
Design a template in the visual editor (or import a DOCX). Copy its ID, e.g.
tmpl_..., from the editor. - 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