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 |