5.0 KiB
5.0 KiB
PDF.co Routing Reference
App name: pdf-co
Base URL proxied: api.pdf.co
API Path Pattern
/pdf-co/v1/{endpoint}
Common Endpoints
PDF Information
POST /pdf-co/v1/pdf/info
Content-Type: application/json
{
"url": "https://example.com/document.pdf"
}
Convert PDF to Text
POST /pdf-co/v1/pdf/convert/to/text
Content-Type: application/json
{
"url": "https://example.com/document.pdf",
"pages": "0-",
"inline": true
}
Convert PDF to CSV
POST /pdf-co/v1/pdf/convert/to/csv
Content-Type: application/json
{
"url": "https://example.com/document.pdf",
"pages": "0-",
"inline": true
}
Convert PDF to JSON
POST /pdf-co/v1/pdf/convert/to/json
Content-Type: application/json
{
"url": "https://example.com/document.pdf",
"inline": true
}
Convert PDF to HTML
POST /pdf-co/v1/pdf/convert/to/html
Content-Type: application/json
{
"url": "https://example.com/document.pdf",
"name": "output.html"
}
Convert PDF to XLSX (Excel)
POST /pdf-co/v1/pdf/convert/to/xlsx
Content-Type: application/json
{
"url": "https://example.com/document.pdf",
"name": "output.xlsx"
}
Convert PDF to PNG
POST /pdf-co/v1/pdf/convert/to/png
Content-Type: application/json
{
"url": "https://example.com/document.pdf",
"pages": "0",
"name": "page.png"
}
Convert PDF to JPG
POST /pdf-co/v1/pdf/convert/to/jpg
Content-Type: application/json
{
"url": "https://example.com/document.pdf",
"pages": "0",
"name": "page.jpg"
}
Convert HTML to PDF
POST /pdf-co/v1/pdf/convert/from/html
Content-Type: application/json
{
"html": "<html><body><h1>Hello World</h1></body></html>",
"name": "output.pdf",
"paperSize": "Letter",
"orientation": "Portrait"
}
Convert URL to PDF
POST /pdf-co/v1/pdf/convert/from/url
Content-Type: application/json
{
"url": "https://example.com",
"name": "webpage.pdf"
}
Merge PDFs
POST /pdf-co/v1/pdf/merge
Content-Type: application/json
{
"url": "https://example.com/doc1.pdf,https://example.com/doc2.pdf",
"name": "merged.pdf"
}
Split PDF
POST /pdf-co/v1/pdf/split
Content-Type: application/json
{
"url": "https://example.com/document.pdf",
"pages": "1-3,4-6,7-"
}
Delete Pages
POST /pdf-co/v1/pdf/edit/delete-pages
Content-Type: application/json
{
"url": "https://example.com/document.pdf",
"pages": "2,4,6"
}
Add Text and Images
POST /pdf-co/v1/pdf/edit/add
Content-Type: application/json
{
"url": "https://example.com/document.pdf",
"name": "annotated.pdf",
"annotations": [
{
"text": "CONFIDENTIAL",
"x": 100,
"y": 100,
"size": 24,
"pages": "0-"
}
]
}
Search and Replace Text
POST /pdf-co/v1/pdf/edit/replace-text
Content-Type: application/json
{
"url": "https://example.com/document.pdf",
"searchString": "old text",
"replaceString": "new text"
}
Search and Delete Text
POST /pdf-co/v1/pdf/edit/delete-text
Content-Type: application/json
{
"url": "https://example.com/document.pdf",
"searchString": "text to remove"
}
Add Password
POST /pdf-co/v1/pdf/security/add
Content-Type: application/json
{
"url": "https://example.com/document.pdf",
"ownerPassword": "owner123",
"userPassword": "user456"
}
Remove Password
POST /pdf-co/v1/pdf/security/remove
Content-Type: application/json
{
"url": "https://example.com/document.pdf",
"password": "currentpassword"
}
AI Invoice Parser
POST /pdf-co/v1/ai-invoice-parser
Content-Type: application/json
{
"url": "https://example.com/invoice.pdf"
}
Document Parser
POST /pdf-co/v1/pdf/documentparser
Content-Type: application/json
{
"url": "https://example.com/document.pdf",
"templateId": "your-template-id"
}
Generate Barcode
POST /pdf-co/v1/barcode/generate
Content-Type: application/json
{
"value": "1234567890",
"type": "QRCode",
"name": "barcode.png"
}
Read Barcode
POST /pdf-co/v1/barcode/read/from/url
Content-Type: application/json
{
"url": "https://example.com/barcode.png",
"types": "QRCode,Code128,Code39,EAN13,UPCA"
}
Check Async Job Status
POST /pdf-co/v1/job/check
Content-Type: application/json
{
"jobId": "abc123"
}
Notes
- All file URLs must be publicly accessible or use PDF.co temporary storage
- Multiple URLs for merge operations should be comma-separated
- Page indices are 0-based (first page is
0) - Page ranges use format:
0-2(pages 0,1,2),3-(page 3 to end),0,2,4(specific pages) - Output files are stored temporarily and expire after 60 minutes by default
- Use
async: truefor large files to avoid timeout - Use
inline: trueto get content directly in response instead of URL