All integrations

PDF.co

DOCS & KNOWLEDGE · FILES & DOCS

PDF conversion, merging, splitting, and text and image edits on their own key.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

pdfco_get_v1_account_credit_balanceREAD

Get Account Balance Info via GET /v1/account/credit/balance.

api
pdfco_get_v1_file_upload_get_presigned_urlREAD

Generate Pre-signed URL via GET /v1/file/upload/get-presigned-url. This method generates links to upload your local file to. Use this presignedUrl from the response to upload your file. Once you upload your file to this presignedUrl using PUT, you can use the url link to access the uploaded file.

api
pdfco_get_v1_file_upload_urlREAD

Upload File from URL (GET) via GET /v1/file/upload/url. Downloads file from a source url and uploads it as a temporary file. Temporary files are automatically permanently removed after 1 hour.

api
pdfco_get_v1_pdf_documentparser_templatesREAD

List All Templates via GET /v1/pdf/documentparser/templates. Returns all **Document Parser** data extraction templates available to the current user.

api
pdfco_get_v1_pdf_documentparser_templates_by_idREAD

Retrieve Template by ID via GET /v1/pdf/documentparser/templates/{id}. Returns detailed information for document parser template by template’s id.

api
pdfco_get_v1_templates_htmlREAD

Return All Templates via GET /v1/templates/html. Return all HTML templates for the current user.

api
pdfco_get_v1_templates_html_by_idREAD

Return HTML Template by ID via GET /v1/templates/html/{id}. Returns HTML template by template’s id.

api
pdfco_post_v1_ai_invoice_parserWRITE

AI Invoice Parser via POST /v1/ai-invoice-parser. Process invoices faster than ever by extracting data and structuring it automatically with our advanced AI. Get quick and accurate data from any invoice, no matter the layout.

api
pdfco_post_v1_barcode_generateWRITE

Barcodes Generator via POST /v1/barcode/generate. Generate high quality barcode images. Supports QR Code, Datamatrix, Code 39, Code 128, PDF417 and many other barcode types. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise.

api
pdfco_post_v1_barcode_read_from_urlWRITE

Barcodes Reader via POST /v1/barcode/read/from/url. Read barcodes from images and PDF. Can read all popular barcode types from QR Code and Code 128, EAN to Datamatrix, PDF417, GS1 and many other barcodes. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check.

api
pdfco_post_v1_email_decodeWRITE

Extract Data from Email File via POST /v1/email/decode. Decode an email message to extract its components. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check.

api
pdfco_post_v1_email_extract_attachmentsWRITE

Extract Email Attachment via POST /v1/email/extract-attachments. Extract attachments from an email. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check.

api
pdfco_post_v1_email_sendWRITE

Send Email with File via POST /v1/email/send. Send an email. An email can be with or without attachment. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise.

api
pdfco_post_v1_file_deleteWRITE

Delete Temporary File via POST /v1/file/delete. Deletes temporary file (that was uploaded by you or generated by API).

api
pdfco_post_v1_file_hashWRITE

Get MD5 Hash of File by URL via POST /v1/file/hash. Calculate and return MD5 hash of file by url. Commonly used to control if the source document has been changed or not because every little change will cause hash string to differ as well.

api
pdfco_post_v1_file_uploadWRITE

Upload Small File via POST /v1/file/upload. WITHHELD: PDF.co's Upload Small File takes a local file as multipart/form-data (its documented request is `--form 'file=@/path/to/file'`), which a JSON tool call cannot carry. Use pdfco_post_v1_file_upload_base64 (base64 content, requests up to 4 MB), pdfco_post_v1_file_upload_url (a public URL) or pdfco_get_v1_file_upload_get_presigned_url instead.

api
pdfco_post_v1_file_upload_base64WRITE

Upload File Using Base64 via POST /v1/file/upload/base64. Creates a temporary file using base64 source data. You may use this temporary file URL with other API methods. Temporary files are automatically permanently removed after 1 hour. PDF.co refuses request bodies over 4 MB.

api
pdfco_post_v1_file_upload_urlWRITE

Upload File from URL (POST) via POST /v1/file/upload/url. Downloads file from a source url and uploads it as a temporary file. Temporary files are automatically permanently removed after 1 hour.

api
pdfco_post_v1_job_checkWRITE

Background & Job Check via POST /v1/job/check. Checks the [status](/api/job-check#available-status-values) of a background job that was previously created with PDF.co API. Use this API to check the status of your asynchronous API calls.

api
pdfco_post_v1_pdf_attachments_extractWRITE

Extract Attachment via POST /v1/pdf/attachments/extract. Extracts attachments from a PDF file. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_classifierWRITE

Document Classifier via POST /v1/pdf/classifier. Automatically find class of input PDF, JPG, PNG document by analyzing its content using the built-in AI or custom defined classification rules. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_convert_from_csvWRITE

PDF from CSV via POST /v1/pdf/convert/from/csv. Convert CSV, XLS, XLSX files into PDF. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise.

api
pdfco_post_v1_pdf_convert_from_docWRITE

PDF from DOC via POST /v1/pdf/convert/from/doc. Convert DOC, DOCX, RTF, TXT, XPS files into PDF. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise.

api
pdfco_post_v1_pdf_convert_from_emailWRITE

PDF from Email via POST /v1/pdf/convert/from/email. Convert email files (.msg or .eml) code into PDF. Extract attachments (if any) from input email and embeds into PDF as PDF attachments. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise.

api
pdfco_post_v1_pdf_convert_from_htmlWRITE

PDF from HTML via POST /v1/pdf/convert/from/html. Convert HTML into PDF. This method will process any JavaScript which the webpage triggers when it loads. For example if the the webpage triggers a JavaScript popup window then that will be included in the conversion process. There is no option to disable JavaScript on the supplied HTML page. Send either `html` (the HTML to render) or `templateid` with `templatedata` (a saved HTML template and its JSON data, as a string); PDF.co answers 400 'At least one param is required: html or templateId' to neither. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. PDF.co refuses request bodies over 4 MB.

api
pdfco_post_v1_pdf_convert_from_imageWRITE

PDF from Image via POST /v1/pdf/convert/from/image. Convert JPG, PNG, TIFF image formats into PDF. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise.

api
pdfco_post_v1_pdf_convert_from_urlWRITE

PDF from URL via POST /v1/pdf/convert/from/url. Convert URL into PDF. This method will process any JavaScript which the webpage triggers when it loads. For example if the the webpage triggers a JavaScript popup window then that will be included in the conversion process. There is no option to disable JavaScript on the supplied HTML page. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise.

api
pdfco_post_v1_pdf_convert_to_csvWRITE

PDF to CSV via POST /v1/pdf/convert/to/csv. Convert PDF and scanned images into CSV representation with layout, columns, rows, and tables. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_convert_to_htmlWRITE

PDF to HTML via POST /v1/pdf/convert/to/html. Convert PDF and scanned images into HTML representation with text, fonts, images, vectors, formatting preserved. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_convert_to_jpgWRITE

PDF to JPG via POST /v1/pdf/convert/to/jpg. Convert PDF to JPEG image with high quality rendering. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_convert_to_json2WRITE

PDF to JSON via POST /v1/pdf/convert/to/json2. Convert PDF and scanned images into JSON representation with text, fonts, images, vectors, and formatting preserved. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_convert_to_json_metaWRITE

PDF to JSON with AI via POST /v1/pdf/convert/to/json-meta. Convert PDF and scanned images into JSON using AI. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_convert_to_pngWRITE

PDF to PNG via POST /v1/pdf/convert/to/png. Convert PDF to PNG image with high quality rendering. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_convert_to_textWRITE

PDF to Text via POST /v1/pdf/convert/to/text. Convert PDF and scanned images to text with layout preserved. This method uses OCR and reporoduces layout. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_convert_to_text_simpleWRITE

PDF to Text (Simple) via POST /v1/pdf/convert/to/text-simple. This endpoint works faster and requires fewer credits as it is not using AI-powered layout analysis, OCR support, and also has no support for profiles for fine-tuning. For advanced conversion with layout analysis, OCR (for scanned pages), PDF repair, and other features please use the [PDF to Text](/api/pdf-to-text/basic) endpoint instead. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_convert_to_tiffWRITE

PDF to TIFF via POST /v1/pdf/convert/to/tiff. Convert PDF to TIFF image with high quality rendering. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_convert_to_webpWRITE

PDF to WEBP via POST /v1/pdf/convert/to/webp. Convert PDF to WebP image with high quality rendering. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_convert_to_xlsWRITE

PDF to XLS via POST /v1/pdf/convert/to/xls. Convert PDF to Excel(.xls) with layout and fonts preserved. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_convert_to_xlsxWRITE

PDF to XLSX via POST /v1/pdf/convert/to/xlsx. Convert PDF to Excel(.xlsx) with layout and fonts preserved. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_convert_to_xmlWRITE

PDF to XML via POST /v1/pdf/convert/to/xml. Convert PDF to XML with information about text value, tables, fonts, images, objects positions. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_documentparserWRITE

Parse Document via POST /v1/pdf/documentparser. This API method extracts data from documents based on a document parser extraction template. With this API method, you can extract data from custom areas by searching form fields, tables, multiple pages, and more. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_edit_addWRITE

PDF Add via POST /v1/pdf/edit/add. Add text, images, forms, other PDFs, fill forms, links to external sites and external PDF files. You can update or modify PDF and scanned PDF files. Send at least one of `annotations`, `images` or `fields` (or their `...String` forms); PDF.co answers 400 'No annotations, images, or fields are specified.' otherwise. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL. PDF.co refuses request bodies over 4 MB.

api
pdfco_post_v1_pdf_edit_delete_pagesWRITE

PDF Delete Pages via POST /v1/pdf/edit/delete-pages. Deletes selected pages inside a PDF file. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_edit_delete_textWRITE

PDF Search and Delete Text via POST /v1/pdf/edit/delete-text. Delete text from the PDF document with search strings. Send `searchstring` (one string) or a non-empty `searchstrings` (both spellings are accepted here, measured); PDF.co answers 400 'SearchStrings should contain at least one record' to neither and to an empty array. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_edit_replace_textWRITE

Search and Replace with Text via POST /v1/pdf/edit/replace-text. Replaces text in a PDF file with a new text. Send `searchstring` (one string) or a non-empty `searchstrings` (both spellings are accepted here, measured); PDF.co answers 400 'SearchStrings should contain at least one record' to neither and to an empty array. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_edit_replace_text_with_imageWRITE

Search and Replace with Image via POST /v1/pdf/edit/replace-text-with-image. Modify a PDF file by searching for specific text and replacing it with an image. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_edit_rotateWRITE

Rotate Selected Pages via POST /v1/pdf/edit/rotate. Rotates selected pages inside a PDF file. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_edit_rotate_autoWRITE

Auto-rotate Pages with AI via POST /v1/pdf/edit/rotate/auto. Uses AI to automatically fix the rotation of pages inside scanned PDF based on text analysis. To change text language change the lang parameter (eng by default). Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_findWRITE

PDF Find Text via POST /v1/pdf/find. Find text in PDF and get coordinates. Supports regular expressions. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_find_tableWRITE

Find Text in Table with AI via POST /v1/pdf/find/table. AI powered document analysis can scan your document for tables and return the array of tables on pages with coordinates and information about columns detected in these tables. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_infoWRITE

PDF Info Reader via POST /v1/pdf/info. Get detailed information about a PDF document, it’s properties and security permissions. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_info_fieldsWRITE

PDF Forms Info Reader via POST /v1/pdf/info/fields. Get information about fillable form fields inside a PDF file. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_makesearchableWRITE

Make Text Searchable via POST /v1/pdf/makesearchable. This method converts scanned PDF documents (where pages are fully or partially made from scanned images) or image files into a text-searchable PDF. It runs OCR and adds an invisible text layer on top of your document that can be used for text search, text indexing, etc. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_makeunsearchableWRITE

Make Text Unsearchable via POST /v1/pdf/makeunsearchable. This method converts PDF files into a "text unsearchable" version by converting your PDF into a "scanned" PDF file which is effectively a flat image. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_mergeWRITE

Merge PDF via POST /v1/pdf/merge. Merge multiple PDF files into a single PDF document. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise.

api
pdfco_post_v1_pdf_merge2WRITE

Merge Various Document Type via POST /v1/pdf/merge2. Merge PDF from two or more PDF, DOC, XLS, images, even ZIP with documents and images into a new PDF. This Merge 2 endpoint is similar to [Merge PDF](/api/merge/pdf) but it also supports `zip`, `doc`, `docx`, `xls`, `xlsx`, `rtf`, `txt`, `png`, `jpg` files as source. This Merge2 endpoint also consumes more credits than [Merge PDF](/api/merge/pdf) because of the internal conversions. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise.

api
pdfco_post_v1_pdf_optimizeWRITE

PDF Optimize (Retired) via POST /v1/pdf/optimize. WITHHELD: PDF.co has retired PDF Optimize (the spec marks it deprecated: 'Retired. Use PDF Compress (POST /v2/pdf/compress) instead.'). Use pdfco_post_v2_pdf_compress.

api
pdfco_post_v1_pdf_security_addWRITE

Add Password to PDF via POST /v1/pdf/security/add. Add password and security limitations to PDF. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise.

api
pdfco_post_v1_pdf_security_removeWRITE

Remove Password from PDF via POST /v1/pdf/security/remove. Remove existing limits and password from PDF file. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_splitWRITE

Split PDF via POST /v1/pdf/split. Split a PDF into multiple PDF files using page indexes or page ranges. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_pdf_split2WRITE

Split PDF by Text Search via POST /v1/pdf/split2. Split a PDF into multiple PDF files using page indexes or page ranges. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api
pdfco_post_v1_xls_convert_to_csvWRITE

Excel to CSV via POST /v1/xls/convert/to/csv. Converts a xls/xlsx file to csv. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise.

api
pdfco_post_v1_xls_convert_to_htmlWRITE

Excel to HTML via POST /v1/xls/convert/to/html. Converts a xls/xlsx/csv file to html. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise.

api
pdfco_post_v1_xls_convert_to_jsonWRITE

Excel to JSON via POST /v1/xls/convert/to/json. Converts a xls/xlsx/csv file to json. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise.

api
pdfco_post_v1_xls_convert_to_pdfWRITE

Excel to PDF via POST /v1/xls/convert/to/pdf. Converts a xls/xlsx/csv file to pdf. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise.

api
pdfco_post_v1_xls_convert_to_txtWRITE

Excel to Text via POST /v1/xls/convert/to/txt. Converts a xls/xlsx/csv file to text. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise.

api
pdfco_post_v1_xls_convert_to_xmlWRITE

Excel to XML via POST /v1/xls/convert/to/xml. Converts a xls/xlsx/csv file to xml. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise.

api
pdfco_post_v2_pdf_compressWRITE

PDF Compress via POST /v2/pdf/compress. Compress PDF files to reduce their size. Sync calls time out after 30 s (HTTP 445); for large files set async=true and poll pdfco_post_v1_job_check. Output links expire after 60 minutes unless `expiration` says otherwise. Document errors: 441 password-protected (set `password`; an encrypted file sent without it has also answered 500 'Failed to open file'), 442 damaged or wrong file type, 443 blocked by document permissions, 449/450 bad page range, 452 invalid URL.

api

Put PDF.co behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.