📚
API Documentation
Integrate Docify PDF tools into your applications
RESTful API
Simple HTTP endpoints
High Performance
Fast processing
Secure
API key authentication
Base URL
https://api.docify.example.com1. Upload Files
POST
/api/uploadUpload one or more files for processing.
Request (multipart/form-data):
files: File[] // Array of files to upload
Response:
{
"success": true,
"data": [{
"fileId": "abc123",
"filename": "document.pdf",
"size": 1024000,
"mimeType": "application/pdf"
}]
}2. Process Files
POST
/api/process/:toolProcess uploaded files with the specified tool.
Available Tools:
mergesplitcompressrotatepdf-to-wordword-to-pdfpdf-to-pptppt-to-pdfpdf-to-excelexcel-to-pdfimage-to-pdfpdf-to-jpgprotectunlockwatermarkpage-numbersreorderdelete-pagesrepairocrRequest (JSON):
{
"fileIds": ["abc123", "def456"],
"options": {
"quality": "medium" // Tool-specific options
}
}Response:
{
"success": true,
"data": {
"jobId": "job-789",
"status": "pending"
}
}3. Get Job Status
GET
/api/jobs/:jobIdResponse:
{
"success": true,
"data": {
"jobId": "job-789",
"status": "completed", // pending, processing, completed, failed
"progress": 100,
"downloadUrl": "/api/jobs/job-789/download"
}
}4. Download Result
GET
/api/jobs/:jobId/downloadReturns the processed file as a binary stream.
Example: Merge PDFs
// 1. Upload files
const formData = new FormData();
formData.append('files', file1);
formData.append('files', file2);
const uploadRes = await fetch('/api/upload', {
method: 'POST',
body: formData
});
const { data: files } = await uploadRes.json();
// 2. Start merge job
const processRes = await fetch('/api/process/merge', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
fileIds: files.map(f => f.fileId)
})
});
const { data: job } = await processRes.json();
// 3. Poll for completion
const pollInterval = setInterval(async () => {
const statusRes = await fetch(`/api/jobs/${job.jobId}`);
const { data } = await statusRes.json();
if (data.status === 'completed') {
clearInterval(pollInterval);
window.location.href = data.downloadUrl;
}
}, 2000);Rate Limits
• 100 requests per 15 minutes per IP
• Maximum file size: 100MB
• Files auto-delete after 30 minutes