Doxtly exposes a REST API built with API Platform. All endpoints return JSON responses and follow standard HTTP conventions.
https://api.{your-subdomain}.doxtly.com/api
| Method | Endpoint | Description |
|---|
GET | /document-templates | List all document templates |
POST | /document-templates | Create a new template |
GET | /document-templates/{id} | Get template details |
PUT | /document-templates/{id} | Update a template |
DELETE | /document-templates/{id} | Delete a template |
| Method | Endpoint | Description |
|---|
POST | /document-templates/{id}/generate | Generate a PDF from a template |
GET | /generated-documents | List generated documents |
GET | /generated-documents/{id} | Get document details |
GET | /generated-documents/{id}/download | Download the PDF file |
DELETE | /generated-documents/{id} | Delete a generated document |
curl -X POST https://api.yourcompany.doxtly.com/api/document-templates/{id}/generate \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
"client_name": "Acme Corp",
| Method | Endpoint | Description |
|---|
GET | /form-definitions | List all forms |
POST | /form-definitions | Create a new form |
GET | /form-definitions/{id} | Get form details |
PUT | /form-definitions/{id} | Update a form |
DELETE | /form-definitions/{id} | Delete a form |
GET | /form-definitions/{id}/submissions | List form submissions |
POST | /public/forms/{slug} | Submit a public form |
| Method | Endpoint | Description |
|---|
GET | /workflows | List all workflows |
POST | /workflows | Create a new workflow |
GET | /workflows/{id} | Get workflow details |
PUT | /workflows/{id} | Update a workflow |
DELETE | /workflows/{id} | Delete a workflow |
POST | /workflows/{id}/execute | Manually trigger a workflow |
GET | /workflow-executions | List workflow executions |
GET | /workflow-executions/{id} | Get execution details |
POST | /workflow-executions/{id}/rerun | Re-run a failed execution |
| Method | Endpoint | Description |
|---|
GET | /email-templates | List all email templates |
POST | /email-templates | Create a new template |
GET | /email-templates/{id} | Get template details |
PUT | /email-templates/{id} | Update a template |
DELETE | /email-templates/{id} | Delete a template |
POST | /email-templates/{id}/send | Send an email using a template |
| Method | Endpoint | Description |
|---|
GET | /subscription | Get current subscription details |
GET | /subscription/usage | Get current usage statistics |
List endpoints support pagination via query parameters:
GET /api/documents?page=1&itemsPerPage=25
Response includes pagination metadata:
"hydra:first": "/api/documents?page=1",
"hydra:last": "/api/documents?page=2",
"hydra:next": "/api/documents?page=2"
Errors follow the standard API Platform format:
"hydra:title": "An error occurred",
"hydra:description": "Document template not found.",
Common HTTP status codes:
| Code | Meaning |
|---|
200 | Success |
201 | Created |
204 | No content (successful deletion) |
400 | Bad request (validation error) |
401 | Unauthorized |
403 | Forbidden |
404 | Not found |
422 | Unprocessable entity |
429 | Rate limit exceeded |