DocMake API
Process documents programmatically. Convert, merge, compress, analyze — with a simple REST API.
Base URL: https://docmake.online
Quick Start (3 steps)
# 1. Upload files
curl -X POST https://docmake.online/upload \
-H "X-API-Key: dmk_your_key_here" \
-F "files=@document.pdf"
# 2. Process
curl -X POST https://docmake.online/process \
-H "X-API-Key: dmk_your_key_here" \
-F "session_id=abc123" \
-F "action=convert" \
-F "output_format=docx"
# 3. Download
curl -O https://docmake.online/download/abc123
Authentication
All API requests require an API key in the X-API-Key header. Generate your key from the DocMake dashboard (Pro subscription required).
curl -H "X-API-Key: dmk_your_key_here" https://docmake.online/api/makes/limits
| Header | Value | Required |
|---|---|---|
X-API-Key | dmk_... | Yes |
Rate Limits
Limits are per API key per day. Makes are consumed per operation.
| Plan | Daily Limit | Price |
|---|---|---|
| Free | 10 calls/day | GHS 0 forever |
| Pay as you go | Buy Makes (credits) | From GHS 20 one-time |
| Developer | 1,000 calls/day | GHS 50/mo |
| Business | 10,000 calls/day | GHS 100/mo |
Check your current usage:
curl -H "X-API-Key: dmk_your_key_here" \
https://docmake.online/api/makes/limits
API Pricing
- 10 API calls/day
- All document tools
- Community support
- Buy Makes (credits) anytime
- 500 Makes for GHS 20
- 1,200 Makes for GHS 50
- 3,000 Makes for GHS 100
- Never expires
- 1,000 API calls/day
- All document tools
- AI data analyst
- Priority processing
- Email support
- 10,000 API calls/day
- All document tools
- AI data analyst
- Webhook callbacks
- Priority support
- Custom rate limits
Upload Files
Upload one or more files for processing. Returns a session ID for subsequent operations.
Parameters
| Param | Type | Description |
|---|---|---|
files | FormData | One or more files (max 10MB each, 50MB total) |
Response
{
"session_id": "a1b2c3d4",
"files": [
{"name": "report.pdf", "ext": "pdf", "size": 245000}
]
}
import httpx
API_KEY = "dmk_your_key_here"
with open("document.pdf", "rb") as f:
resp = httpx.post(
"https://docmake.online/upload",
headers={"X-API-Key": API_KEY},
files={"files": ("document.pdf", f, "application/pdf")}
)
session_id = resp.json()["session_id"]
print(f"Session: {session_id}")
Process Files
Start processing uploaded files. Supports convert, combine, and AI slides.
Parameters
| Param | Type | Default | Description |
|---|---|---|---|
session_id | string | required | Session ID from upload |
action | string | required | convert, combine, present |
output_format | string | pdf, docx, xlsx, pptx, csv, txt, png, jpg | |
template | string | business_pitch | Presentation template (for present action) |
instructions | string | "" | AI instructions for processing |
Response
{
"session_id": "a1b2c3d4",
"status": "processing",
"message": "Processing started"
}
Compress Files
Compress PDF or image files. Supports lossy and lossless compression.
Parameters
| Param | Type | Default | Description |
|---|---|---|---|
session_id | string | required | Session ID from upload |
level | string | medium | low, medium, high |
Response
{
"session_id": "a1b2c3d4",
"result_file": "compressed_report.pdf",
"original_size": "2.4 MB",
"compressed_size": "680 KB",
"saved_percent": 72
}
Document Tools
Apply document tools: split, rotate, watermark, protect, unlock, summarize.
Parameters
| Param | Type | Description |
|---|---|---|
session_id | string | Session ID from upload |
tool_name | string | split, rotate, watermark, protect, unlock, summarize |
options | string | Tool-specific options (e.g., rotation angle, watermark text, password) |
Tool Options
| Tool | Options Format | Example |
|---|---|---|
rotate | Angle in degrees | 90, 180, 270 |
watermark | Text string | CONFIDENTIAL |
protect | Password | mysecretpass |
unlock | Password | mysecretpass |
split | Page ranges | 1-3,5,8-10 |
Data Analysis
AI-powered data analysis for CSV and Excel files. Returns insights, charts, and statistics.
Parameters
| Param | Type | Description |
|---|---|---|
session_id | string | Session ID from upload |
instructions | string | Natural language analysis request (e.g., "Show revenue by region") |
AI Analyst Endpoints
| Endpoint | Description | Makes Cost |
|---|---|---|
POST /api/analyst/query | Natural language query on data | 2 |
POST /api/analyst/clean | Smart data cleaning | 2 |
POST /api/analyst/stats | Statistical tests | 3 |
POST /api/analyst/anomalies | Anomaly detection | 3 |
POST /api/analyst/predict | Predictive analytics | 4 |
POST /api/analyst/summary | Executive summary | 3 |
Check Status
Check processing status. Poll until status is completed.
Response
{
"session_id": "a1b2c3d4",
"status": "completed",
"progress": 100,
"progress_text": "Done!",
"result_file": "converted_document.docx",
"verification": {
"passed": true,
"passes": [
{"name": "File exists", "passed": true, "detail": "Output file created"},
{"name": "File size", "passed": true, "detail": "245 KB"}
]
}
}
Status Values
| Status | Description |
|---|---|
uploaded | Files uploaded, waiting for process |
processing | Currently processing |
completed | Done — download available |
completed_with_warnings | Done with minor issues |
error | Processing failed |
Download Result
Download the processed file. Available after status is completed.
curl -O https://docmake.online/download/a1b2c3d4
Error Handling
| Status | Meaning | Action |
|---|---|---|
| 200 | Success | Process response |
| 400 | Bad request | Check parameters |
| 401 | Unauthorized | Check API key |
| 429 | Rate limited | Wait or upgrade plan |
Error Response Format
{
"detail": "Invalid or revoked API key"
}
SDKs & Libraries
Use DocMake with any HTTP client. Here are popular options:
| Language | Library | Install |
|---|---|---|
| Python | httpx | pip install httpx |
| Python | requests | pip install requests |
| Node.js | fetch (built-in) | Node 18+ |
| Go | net/http | Built-in |
| Ruby | faraday | gem install faraday |
Webhooks (Business Plan)
Business plan users can register a webhook URL to receive async notifications when processing completes.
{
"event": "process.completed",
"session_id": "a1b2c3d4",
"status": "completed",
"result_file": "converted_document.docx",
"timestamp": "2026-07-23T12:00:00Z"
}
Ready to build? Get your API key and start processing documents in minutes.