Loading...
Loading...
Comprehensive PDF processing API for conversion, merge, split, compress, OCR, and more
npx skill4agent add vm0-ai/vm0-skills pdf4meOfficial docs: https://dev.pdf4me.com/apiv2/documentation/
export PDF4ME_API_KEY="your-api-key-here"Important: When usingin a command that pipes to another command, wrap the command containing$VARin$VAR. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.bash -c '...'bashbash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $API_KEY"'
# Convert a text file to PDF
echo "Hello, PDF4ME!" > /tmp/test.txt
BASE64_CONTENT=$(base64 < /tmp/test.txt)/tmp/pdf4me_request.json{
"docContent": "${BASE64_CONTENT}",
"docName": "test.txt"
}bash -c 'curl -s -X POST "https://api.pdf4me.com/api/v2/ConvertToPdf" --header "Authorization: ${PDF4ME_API_KEY}" --header "Content-Type: application/json" -d @/tmp/pdf4me_request.json' | jq -r '.docContent' | base64 -d > /tmp/output.pdfHTML_CONTENT=$(echo '<html><body><h1>Hello World</h1><p>This is a test.</p></body></html>' | base64)/tmp/pdf4me_request.json{
"docContent": "${HTML_CONTENT}",
"docName": "test.html",
"layout": "Portrait",
"format": "A4"
}bash -c 'curl -s -X POST "https://api.pdf4me.com/api/v2/ConvertHtmlToPdf" --header "Authorization: ${PDF4ME_API_KEY}" --header "Content-Type: application/json" -d @/tmp/pdf4me_request.json' --output /tmp/from-html.pdf/tmp/pdf4me_request.json{
"webUrl": "https://example.com"
}bash -c 'curl -s -X POST "https://api.pdf4me.com/api/v2/ConvertUrlToPdf" --header "Authorization: ${PDF4ME_API_KEY}" --header "Content-Type: application/json" -d @/tmp/pdf4me_request.json' > /tmp/webpage.pdfPDF1_BASE64=$(base64 < file1.pdf)
PDF2_BASE64=$(base64 < file2.pdf)/tmp/pdf4me_request.json{
"docContent": ["${PDF1_BASE64}", "${PDF2_BASE64}"],
"docName": "merged.pdf"
}bash -c 'curl -s -X POST "https://api.pdf4me.com/api/v2/Merge" --header "Authorization: ${PDF4ME_API_KEY}" --header "Content-Type: application/json" -d @/tmp/pdf4me_request.json' | jq -r '.docContent' | base64 -d > merged.pdfPDF_BASE64=$(base64 < input.pdf)/tmp/pdf4me_request.json{
"docContent": "${PDF_BASE64}",
"docName": "input.pdf",
"splitAction": "splitAfterPage",
"splitAfterPage": 2
}bash -c 'curl -s -X POST "https://api.pdf4me.com/api/v2/Split" --header "Authorization: ${PDF4ME_API_KEY}" --header "Content-Type: application/json" -d @/tmp/pdf4me_request.json'PDF_BASE64=$(base64 < large.pdf)/tmp/pdf4me_request.json{
"docContent": "${PDF_BASE64}",
"docName": "large.pdf"
}bash -c 'curl -s -X POST "https://api.pdf4me.com/api/v2/Compress" --header "Authorization: ${PDF4ME_API_KEY}" --header "Content-Type: application/json" -d @/tmp/pdf4me_request.json' | jq -r '.docContent' | base64 -d > compressed.pdfPDF_BASE64=$(base64 < input.pdf)/tmp/pdf4me_request.json{
"docContent": "${PDF_BASE64}",
"docName": "input.pdf"
}bash -c 'curl -s -X POST "https://api.pdf4me.com/api/v2/PdfToWord" --header "Authorization: ${PDF4ME_API_KEY}" --header "Content-Type: application/json" -d @/tmp/pdf4me_request.json' | jq -r '.docContent' | base64 -d > output.docxPDF_BASE64=$(base64 < input.pdf)/tmp/pdf4me_request.json{
"docContent": "${PDF_BASE64}",
"docName": "input.pdf",
"imageFormat": "png",
"width": 800
}bash -c 'curl -s -X POST "https://api.pdf4me.com/api/v2/CreateThumbnail" --header "Authorization: ${PDF4ME_API_KEY}" --header "Content-Type: application/json" -d @/tmp/pdf4me_request.json'PDF_BASE64=$(base64 < input.pdf)/tmp/pdf4me_request.json{
"docContent": "${PDF_BASE64}",
"docName": "input.pdf",
"stampText": "CONFIDENTIAL",
"pages": "all",
"alignX": "center",
"alignY": "middle",
"alpha": 0.3
}bash -c 'curl -s -X POST "https://api.pdf4me.com/api/v2/TextStamp" --header "Authorization: ${PDF4ME_API_KEY}" --header "Content-Type: application/json" -d @/tmp/pdf4me_request.json' | jq -r '.docContent' | base64 -d > stamped.pdfPDF_BASE64=$(base64 < scanned.pdf)/tmp/pdf4me_request.json{
"docContent": "${PDF_BASE64}",
"docName": "scanned.pdf",
"ocrLanguage": "eng"
}bash -c 'curl -s -X POST "https://api.pdf4me.com/api/v2/PdfOcr" --header "Authorization: ${PDF4ME_API_KEY}" --header "Content-Type: application/json" -d @/tmp/pdf4me_request.json' | jq -r '.docContent' | base64 -d > searchable.pdfPDF_BASE64=$(base64 < input.pdf)/tmp/pdf4me_request.json{
"docContent": "${PDF_BASE64}",
"docName": "input.pdf",
"password": "secret123"
}bash -c 'curl -s -X POST "https://api.pdf4me.com/api/v2/ProtectDocument" --header "Authorization: ${PDF4ME_API_KEY}" --header "Content-Type: application/json" -d @/tmp/pdf4me_request.json' | jq -r '.docContent' | base64 -d > protected.pdfPDF_BASE64=$(base64 < input.pdf)/tmp/pdf4me_request.json{
"docContent": "${PDF_BASE64}",
"docName": "input.pdf",
"pageNrs": [1, 3, 5]
}bash -c 'curl -s -X POST "https://api.pdf4me.com/api/v2/ExtractPages" --header "Authorization: ${PDF4ME_API_KEY}" --header "Content-Type: application/json" -d @/tmp/pdf4me_request.json' | jq -r '.docContent' | base64 -d > extracted.pdf| Category | Endpoint | Description |
|---|---|---|
| Convert | | Word/Excel/PPT/Image → PDF |
| HTML → PDF | |
| URL → PDF | |
| Markdown → PDF | |
| PDF → Word | |
| PDF → Excel | |
| PDF → PowerPoint | |
| Merge/Split | | Merge multiple PDFs |
| Split PDF | |
| Extract specific pages | |
| Optimize | | Compress PDF |
| Optimize for web | |
| Edit | | Add text watermark |
| Add image watermark | |
| Add page numbers | |
| Rotate pages | |
| Extract | | PDF → Images |
| Extract images/fonts | |
| Extract tables | |
| OCR | | OCR scanned PDFs |
| Security | | Password protect |
| Remove password | |
| Forms | | Fill form fields |
| Extract form data | |
| Barcode | | Generate barcode |
| Add barcode to PDF | |
| Read barcode from PDF |
/tmp/pdf4me_request.json{
"docContent": "base64-encoded-file",
"docName": "filename.ext",
"...other parameters": "..."
}bash -c 'curl -s -X POST "https://api.pdf4me.com/api/v2/{endpoint}" --header "Authorization: ${PDF4ME_API_KEY}" --header "Content-Type: application/json" -d @/tmp/pdf4me_request.json'{
"docContent": "base64-encoded-result",
"docName": "output.pdf",
"pageCount": 5
}