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
HeaderValueRequired
X-API-Keydmk_...Yes

Rate Limits

Limits are per API key per day. Makes are consumed per operation.

PlanDaily LimitPrice
Free10 calls/dayGHS 0 forever
Pay as you goBuy Makes (credits)From GHS 20 one-time
Developer1,000 calls/dayGHS 50/mo
Business10,000 calls/dayGHS 100/mo

Check your current usage:

curl -H "X-API-Key: dmk_your_key_here" \
  https://docmake.online/api/makes/limits

API Pricing

Free
GHS 0
forever
  • 10 API calls/day
  • All document tools
  • Community support
Pay as you go
From GHS 20
one-time, no subscription
  • Buy Makes (credits) anytime
  • 500 Makes for GHS 20
  • 1,200 Makes for GHS 50
  • 3,000 Makes for GHS 100
  • Never expires
Business
GHS 100
per month
  • 10,000 API calls/day
  • All document tools
  • AI data analyst
  • Webhook callbacks
  • Priority support
  • Custom rate limits

Upload Files

POST /upload

Upload one or more files for processing. Returns a session ID for subsequent operations.

Parameters

ParamTypeDescription
filesFormDataOne or more files (max 10MB each, 50MB total)

Response

{
  "session_id": "a1b2c3d4",
  "files": [
    {"name": "report.pdf", "ext": "pdf", "size": 245000}
  ]
}
Python
Node.js
cURL
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

POST /process

Start processing uploaded files. Supports convert, combine, and AI slides.

Parameters

ParamTypeDefaultDescription
session_idstringrequiredSession ID from upload
actionstringrequiredconvert, combine, present
output_formatstringpdfpdf, docx, xlsx, pptx, csv, txt, png, jpg
templatestringbusiness_pitchPresentation template (for present action)
instructionsstring""AI instructions for processing

Response

{
  "session_id": "a1b2c3d4",
  "status": "processing",
  "message": "Processing started"
}

Compress Files

POST /compress

Compress PDF or image files. Supports lossy and lossless compression.

Parameters

ParamTypeDefaultDescription
session_idstringrequiredSession ID from upload
levelstringmediumlow, 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

POST /tool

Apply document tools: split, rotate, watermark, protect, unlock, summarize.

Parameters

ParamTypeDescription
session_idstringSession ID from upload
tool_namestringsplit, rotate, watermark, protect, unlock, summarize
optionsstringTool-specific options (e.g., rotation angle, watermark text, password)

Tool Options

ToolOptions FormatExample
rotateAngle in degrees90, 180, 270
watermarkText stringCONFIDENTIAL
protectPasswordmysecretpass
unlockPasswordmysecretpass
splitPage ranges1-3,5,8-10

Data Analysis

POST /analyze

AI-powered data analysis for CSV and Excel files. Returns insights, charts, and statistics.

Parameters

ParamTypeDescription
session_idstringSession ID from upload
instructionsstringNatural language analysis request (e.g., "Show revenue by region")

AI Analyst Endpoints

EndpointDescriptionMakes Cost
POST /api/analyst/queryNatural language query on data2
POST /api/analyst/cleanSmart data cleaning2
POST /api/analyst/statsStatistical tests3
POST /api/analyst/anomaliesAnomaly detection3
POST /api/analyst/predictPredictive analytics4
POST /api/analyst/summaryExecutive summary3

Check Status

GET /status/{session_id}

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

StatusDescription
uploadedFiles uploaded, waiting for process
processingCurrently processing
completedDone — download available
completed_with_warningsDone with minor issues
errorProcessing failed

Download Result

GET /download/{session_id}

Download the processed file. Available after status is completed.

curl -O https://docmake.online/download/a1b2c3d4

Error Handling

StatusMeaningAction
200SuccessProcess response
400Bad requestCheck parameters
401UnauthorizedCheck API key
429Rate limitedWait or upgrade plan

Error Response Format

{
  "detail": "Invalid or revoked API key"
}

SDKs & Libraries

Use DocMake with any HTTP client. Here are popular options:

LanguageLibraryInstall
Pythonhttpxpip install httpx
Pythonrequestspip install requests
Node.jsfetch (built-in)Node 18+
Gonet/httpBuilt-in
Rubyfaradaygem 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.