Developer API
HugMyTools API
REST API for programmatic file processing. All 53 tools are available via the same unified endpoint. API access requires a Pro plan or above.
Base URL: http://localhost:8001
All API requests require a Bearer token obtained from the login endpoint. Pass it in theAuthorization header.
bash
# 1. Get an access token
curl -X POST http://localhost:8001/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","password":"yourpassword"}'
# Response:
# { "access_token": "eyJ...", "token_type": "bearer" }bash
# 2. Submit a file for processing
curl -X POST http://localhost:8001/api/v1/upload/process \
-H "Authorization: Bearer <access_token>" \
-F "tool_slug=compress-pdf" \
-F 'options={"quality":"balanced"}' \
-F "file=@/path/to/document.pdf"
# Response:
# { "task_id": "uuid", "status": "queued", "progress": 0 }bash
# 3. Poll for status
curl http://localhost:8001/api/v1/upload/status/<task_id> \
-H "Authorization: Bearer <access_token>"
# Response when done:
# { "task_id": "uuid", "status": "done", "progress": 100, "result_url": "..." }
# 4. Download the result
curl -O "http://localhost:8001/api/v1/upload/result/<task_id>?tool_slug=compress-pdf" \
-H "Authorization: Bearer <access_token>"All 53 tools share one endpoint. Pass the tool_slug to select which operation to run. Options are JSON-encoded in the options field.
POST
/api/v1/upload/processSubmit file for processing (multipart/form-data)
GET
/api/v1/upload/status/{task_id}Poll task status
GET
/api/v1/upload/result/{task_id}Download the processed file
Form fields
tool_slugstringRequiredThe tool to run (e.g. compress-pdf)fileFileRequired*The input file (single-file tools)filesFile[]Required*Multiple input files (merge-pdf, images-to-pdf)optionsstringOptionalJSON string of tool-specific optionsTask status values
queuedTask is in the queue, not yet startedprocessingWorker is actively processing the filedoneProcessing complete — download is readyerrorProcessing failed — check the error fieldjson
// POST /api/v1/upload/process response
{
"task_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "queued",
"progress": 0,
"result_url": null,
"error": null
}
// GET /api/v1/upload/status/{task_id} — when done
{
"task_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "done",
"progress": 100,
"result_url": "/upload/result/3fa85f64...?tool_slug=compress-pdf",
"error": null
}Ready to integrate?
API access is available on Pro and above. Start free and upgrade when you're ready.