fill_forms
Fill existing form fields in a PDF document by providing field names, page numbers, and text values. Use 'read_pdf_forms_info' to retrieve field names first.
Instructions
Fill existing form fields in a PDF document.
Example fields format:
[
{
"fieldName": "field_name_from_form_info",
"pages": "1",
"text": "Value to fill"
}
]
Use 'read_pdf_forms_info' first to get the fieldName values of the form.
Ref: https://developer.pdf.co/api-reference/pdf-add#create-fillable-pdf-forms.md
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to the source PDF file. Supports publicly accessible links including Google Drive, Dropbox, PDF.co Built-In Files Storage. Use 'upload_file' tool to upload local files. | |
| fields | Yes | List of fields to fill. Each field is a dict with 'fieldName', 'pages', and 'text' properties. | |
| name | No | File name for the generated output. (Optional) | |
| httpusername | No | HTTP auth user name if required to access source url. (Optional) | |
| httppassword | No | HTTP auth password if required to access source url. (Optional) | |
| api_key | No | PDF.co API key. If not provided, will use X_API_KEY environment variable. (Optional) |
Implementation Reference
- pdfco/mcp/services/pdf.py:32-45 (helper)The service function 'fill_pdf_form_fields' which constructs the payload with fields and annotations and sends a POST request to 'pdf/edit/add' endpoint.
async def fill_pdf_form_fields( params: ConversionParams, fields: list | None = None, annotations: list | None = None, api_key: str | None = None, ) -> BaseResponse: custom_payload = {} if fields: custom_payload["fields"] = fields if annotations: custom_payload["annotations"] = annotations return await request( "pdf/edit/add", params, custom_payload=custom_payload, api_key=api_key )