Professional PDF Automation. Zero Complexity.
Integrate the world's most versatile PDF toolkit directly into your application. Instead of managing dozens of different libraries, use one single universal endpoint to process, convert, and use AI on your documents.
Authentication
All API requests must include your secret API key in the X-API-Key HTTP header. You can
find your API key in the User Dashboard under the Developer tab.
headers = {
"X-API-Key": "pj_live_xxxxxxxxxxxx",
"Content-Type": "application/json"
}
Universal Implementation
One function for all 30+ tools. Simply change the tool_name variable to switch between
merging, splitting, OCR, or AI rewriting.
import requests
def pdfjin_process(tool, file_path, api_key, **params):
url = f"https://pdfjin-api.run.app/{tool}"
headers = {"X-API-Key": api_key}
files = {"files": open(file_path, "rb")}
response = requests.post(url, headers=headers, files=files, data=params)
if response.status_code == 200:
with open("result.pdf", "wb") as f:
f.write(response.content)
return True
return False
# Usage Example
pdfjin_process("pdf-to-word", "invoice.pdf", "YOUR_API_KEY")
const axios = require('axios');
const fs = require('fs');
const FormData = require('form-data');
async function processPDF(tool, filePath, apiKey) {
const form = new FormData();
form.append('files', fs.createReadStream(filePath));
const response = await axios.post(`https://pdfjin-api.run.app/${tool}`, form, {
headers: { ...form.getHeaders(), 'X-API-Key': apiKey },
responseType: 'arraybuffer'
});
fs.writeFileSync('result.pdf', response.data);
}
curl -X POST "https://pdfjin-api.run.app/merge-pdf" \
-H "X-API-Key: YOUR_API_KEY" \
-F "files=@document.pdf" \
--output result.pdf
Endpoint Reference
Replace {tool_name} in your request with any of the identifiers below.
STANDARD TOOLS
CONVERSION TOOLS
AI & INTELLIGENCE
Common Parameters
| Parameter | Type | Description |
|---|---|---|
| files* | Binary | The file to process (PDF, DOCX, JPG, etc) |
| password | String | Required for encrypted PDF files |
| tone | String | Specific to AI tools (e.g., 'formal', 'casual') |
Error Handling
PDFjin uses standard HTTP response codes to indicate the success or failure of an API request.
| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad Request - Check parameters |
| 401 | Unauthorized - Invalid API Key |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Server Error - Something went wrong on our end |
Rate Limits
Free tier users are limited to 50 tasks per day. Pro users enjoy unlimited tasks with a concurrency limit of 5 simultaneous requests.
Need a custom workflow?
Enterprise users get access to shared engineering support for complex agentic pipelines and high-volume processing.
Contact Support