--- name: pdfco description: PDF processing API for conversion, extraction, merging, splitting and more vm0_secrets: - PDFCO_API_KEY --- # PDF.co All-in-one PDF processing API. Convert, extract, merge, split, compress PDFs and more. Supports OCR for scanned documents. > Official docs: https://docs.pdf.co/ --- ## When to Use Use this skill when you need to: - Extract text from PDF files (with OCR support) - Convert PDF to CSV, JSON, or other formats - Merge multiple PDFs into one - Split PDF into multiple files - Compress PDF to reduce file size - Convert HTML/URL to PDF - Parse invoices and documents with AI --- ## Prerequisites 1. Create an account at https://pdf.co/ 2. Get your API key from https://app.pdf.co/ Set environment variable: ```bash export PDFCO_API_KEY="your-email@example.com_your-api-key" ``` --- > **Important:** When using `$VAR` in a command that pipes to another command, wrap the command containing `$VAR` in `bash -c '...'`. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly. > ```bash > bash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $API_KEY"' > ``` ## How to Use ### 1. PDF to Text Extract text from PDF with OCR support: Write to `/tmp/request.json`: ```json { "url": "https://pdfco-test-files.s3.us-west-2.amazonaws.com/pdf-to-text/sample.pdf", "inline": true } ``` ```bash bash -c 'curl --location --request POST "https://api.pdf.co/v1/pdf/convert/to/text" --header "x-api-key: ${PDFCO_API_KEY}" --header "Content-Type: application/json" -d @/tmp/request.json' ``` **With specific pages (1-indexed):** Write to `/tmp/request.json`: ```json { "url": "https://pdfco-test-files.s3.us-west-2.amazonaws.com/pdf-to-text/sample.pdf", "pages": "1-3", "inline": true } ``` ```bash bash -c 'curl --location --request POST "https://api.pdf.co/v1/pdf/convert/to/text" --header "x-api-key: ${PDFCO_API_KEY}" --header "Content-Type: application/json" -d @/tmp/request.json' ``` ### 2. PDF to CSV Convert PDF tables to CSV: Write to `/tmp/request.json`: ```json { "url": "https://pdfco-test-files.s3.us-west-2.amazonaws.com/pdf-to-csv/sample.pdf", "inline": true } ``` ```bash bash -c 'curl --location --request POST "https://api.pdf.co/v1/pdf/convert/to/csv" --header "x-api-key: ${PDFCO_API_KEY}" --header "Content-Type: application/json" -d @/tmp/request.json' ``` ### 3. Merge PDFs Combine multiple PDFs into one: Write to `/tmp/request.json`: ```json { "url": "https://pdfco-test-files.s3.us-west-2.amazonaws.com/pdf-merge/sample1.pdf,https://pdfco-test-files.s3.us-west-2.amazonaws.com/pdf-merge/sample2.pdf", "name": "merged.pdf" } ``` ```bash bash -c 'curl --location --request POST "https://api.pdf.co/v1/pdf/merge" --header "x-api-key: ${PDFCO_API_KEY}" --header "Content-Type: application/json" -d @/tmp/request.json' ``` ### 4. Split PDF Split PDF by page ranges: Write to `/tmp/request.json`: ```json { "url": "https://pdfco-test-files.s3.us-west-2.amazonaws.com/pdf-split/sample.pdf", "pages": "1-2,3-" } ``` ```bash bash -c 'curl --location --request POST "https://api.pdf.co/v1/pdf/split" --header "x-api-key: ${PDFCO_API_KEY}" --header "Content-Type: application/json" -d @/tmp/request.json' ``` ### 5. Compress PDF Reduce PDF file size: Write to `/tmp/request.json`: ```json { "url": "https://pdfco-test-files.s3.us-west-2.amazonaws.com/pdf-optimize/sample.pdf", "name": "compressed.pdf" } ``` ```bash bash -c 'curl --location --request POST "https://api.pdf.co/v1/pdf/optimize" --header "x-api-key: ${PDFCO_API_KEY}" --header "Content-Type: application/json" -d @/tmp/request.json' ``` ### 6. HTML to PDF Convert HTML or URL to PDF: Write to `/tmp/request.json`: ```json { "html": "
This is a test.
", "name": "output.pdf" } ``` ```bash bash -c 'curl --location --request POST "https://api.pdf.co/v1/pdf/convert/from/html" --header "x-api-key: ${PDFCO_API_KEY}" --header "Content-Type: application/json" -d @/tmp/request.json' ``` **From URL:** Write to `/tmp/request.json`: ```json { "url": "https://example.com", "name": "webpage.pdf" } ``` ```bash bash -c 'curl --location --request POST "https://api.pdf.co/v1/pdf/convert/from/url" --header "x-api-key: ${PDFCO_API_KEY}" --header "Content-Type: application/json" -d @/tmp/request.json' ``` ### 7. AI Invoice Parser Extract structured data from invoices: Write to `/tmp/request.json`: ```json { "url": "https://pdfco-test-files.s3.us-west-2.amazonaws.com/ai-invoice-parser/sample-invoice.pdf", "inline": true } ``` ```bash bash -c 'curl --location --request POST "https://api.pdf.co/v1/ai-invoice-parser" --header "x-api-key: ${PDFCO_API_KEY}" --header "Content-Type: application/json" -d @/tmp/request.json' ``` ### 8. Upload Local File Upload a local file first, then use the returned URL: **Step 1: Get presigned upload URL** ```bash bash -c 'curl -s "https://api.pdf.co/v1/file/upload/get-presigned-url?name=myfile.pdf&contenttype=application/pdf" --header "x-api-key: ${PDFCO_API_KEY}"' | jq -r '.presignedUrl, .url' ``` Copy the presigned URL and file URL from the response. **Step 2: Upload file** Replace `