PDF Converter API
Complete API reference for frontend integration. This API provides PDF conversion and content extraction endpoints.
Base URL
bash
https://pdf.dhibi.tn/apiReplace with your production URL when deployed.
Authentication
Currently, no authentication is required. Rate limiting is applied per IP address (100 requests per 15 minutes by default).
Endpoints
GET
Health Check
Check if the server is running.
/health
json
{
"status": "success",
"message": "Server is running",
"timestamp": "2025-10-11T10:30:00.000Z",
"uptime": 123.456,
"environment": "development"
}GET
PDF Service Health
Check if the PDF conversion service is operational.
/pdf/health
json
{
"status": "success",
"message": "PDF conversion service is operational",
"endpoints": {
"convert": "POST /convert - Convert PDF pages to images (png/jpeg)",
"extract": "POST /extract - Extract text and images from PDF"
},
"supportedFormats": ["png", "jpeg"],
"maxFileSize": "10MB"
}POST
Convert PDF to Images
Convert all pages of a PDF document to images (PNG or JPEG format).
/pdf/convert
Query Parameters
- format (optional): Output image format. `png` (default) or `jpeg`.
Request Body
- pdf (required): PDF file to convert (max 10MB).
javascript
import axios from 'axios';
const convertPdfToImages = async (pdfFile, format = 'png') => {
const formData = new FormData();
formData.append('pdf', pdfFile);
try {
const response = await axios.post(
`https://pdf.dhibi.tn/api/pdf/convert?format=${format}`,
formData,
{
responseType: 'blob', // Important for binary data
headers: { 'Content-Type': 'multipart/form-data' },
}
);
// Create download link
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'converted.zip');
document.body.appendChild(link);
link.click();
link.remove();
return response.data;
} catch (error) {
console.error('Conversion failed:', error);
throw error;
}
};POST
Convert Images to PDF
Convert multiple images (PNG/JPEG) into a single PDF document.
/pdf/images-to-pdf
Request Body
- images (required): Array of image files (max 20 files, 10MB each).
javascript
const convertImagesToPdf = async (imageFiles) => {
const formData = new FormData();
// Append all images to the form data
imageFiles.forEach((file) => {
formData.append('images', file);
});
try {
const response = await axios.post(
'https://pdf.dhibi.tn/api/pdf/images-to-pdf',
formData,
{
responseType: 'blob',
headers: { 'Content-Type': 'multipart/form-data' },
}
);
// Download logic...
} catch (error) {
console.error('Conversion failed:', error);
}
};POST
Convert PDF to DOCX
Convert a PDF document to DOCX (Microsoft Word) format.
/pdf/pdf-to-docx
Query Parameters
- includeImages (optional): `true` (default) or `false`.
- preservePageBreaks (optional): `true` (default) or `false`.
Request Body
- pdf (required): PDF file to convert.
javascript
const convertPdfToDocx = async (pdfFile) => {
const formData = new FormData();
formData.append('pdf', pdfFile);
try {
const response = await axios.post(
'https://pdf.dhibi.tn/api/pdf/pdf-to-docx?includeImages=true',
formData,
{ responseType: 'blob' }
);
// Download logic...
} catch (error) {
console.error('Error:', error);
}
};POST
Extract Text & Images
Extract text content and embedded images from a PDF document.
/pdf/extract
javascript
const extractPdfContent = async (pdfFile) => {
const formData = new FormData();
formData.append('pdf', pdfFile);
try {
const response = await axios.post(
'https://pdf.dhibi.tn/api/pdf/extract',
formData,
{ responseType: 'blob' }
);
// Download ZIP logic...
} catch (error) {
console.error('Error:', error);
}
};Error Handling
All endpoints return consistent error responses in JSON format:
json
{
"status": "error",
"message": "Descriptive error message",
"statusCode": 400
}Common Status Codes
| Code | Meaning | Common Causes |
|---|---|---|
| 400 | Bad Request | Missing file, invalid format/params |
| 413 | Payload Too Large | File exceeds 10MB limit |
| 500 | Internal Server Error | Processing failed on server |