{"name":"Emboss","description":"Emboss turns paperwork into a filled PDF. It can make a flat PDF fillable, complete a form from data, fill a PDF form from data or from supporting context documents, and batch fill forms from a spreadsheet, one row per output file. Use it whenever an agent needs to fill a PDF form, generate many filled copies of the same form, or inspect a form's fields before filling it. Get a price quote for filling a PDF form before any paid work runs, free and exact, then execute it once you have seen the price. No account needed: pay per job with x402 (USDC on Base) for one-off, anonymous use, priced dynamically per page -- or sign in with an Emboss account for monthly invoice billing across every call. A pay-per-call HTTP door is also available at https://api.getemboss.ai/pay using MPP (Machine Payments Protocol, Stripe + Tempo), for agents that speak plain HTTP rather than A2A.","supportedInterfaces":[{"url":"https://api.getemboss.ai/a2a","protocolBinding":"JSONRPC","protocolVersion":"1.0"}],"version":"1.0.0","documentationUrl":"https://getemboss.ai/docs/a2a","capabilities":{"streaming":true,"pushNotifications":false,"extensions":[{"uri":"https://github.com/google-a2a/a2a-x402/v0.1","description":"Pay per job over A2A with x402 (USDC on Base), for anonymous callers with no Emboss account. See quote_job/execute_quote and the five paid skills' input-required payment flow.","required":false}]},"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"Emboss API key (sk_...)","description":"An Emboss API key. See https://getemboss.ai/docs/authentication."},"oauth2":{"type":"oauth2","description":"Sign in with your Emboss account. See https://getemboss.ai/docs/authentication.","flows":{"authorizationCode":{"authorizationUrl":"https://api.getemboss.ai/oauth/authorize","tokenUrl":"https://api.getemboss.ai/oauth/token","scopes":{"forms:read":"Read your forms","forms:write":"Create and fill forms"}}}}},"securityRequirements":[{"bearer":["forms:read","forms:write"]},{"oauth2":["forms:read","forms:write"]}],"defaultInputModes":["application/pdf","text/csv","application/json"],"defaultOutputModes":["application/pdf","application/json"],"skills":[{"id":"make_fillable","name":"Make a PDF fillable","description":"Turn a flat or scanned PDF form into a fillable PDF with detected fields. Make a flat PDF fillable. Input: a flat (non-fillable) PDF file, or a `library` slug from find_form to start from a blank government form Emboss already keeps. Output: a form_id and a field inventory (labels, types, positions) detected on the PDF, ready for fill_form or fill_from_context. Also: detect form fields in a PDF; add fillable fields to a document; extract a PDF form schema; make a government or business form fillable. Optional input: retention (ephemeral or account_default; the account's own setting by default). Ephemeral processing: source and output documents are deleted 60 to 70 minutes after the last activity on a form.","tags":["document-processing","form-schema","forms","make-fillable","pdf","pdf-form-fields"],"examples":["make this PDF fillable","turn this scanned PDF into a fillable form","add fillable fields to this document"],"inputModes":["application/pdf","text/csv","application/json"],"outputModes":["application/pdf","application/json"]},{"id":"fill_form","name":"Fill a form from data","description":"Fill a PDF form from structured data such as JSON or key-value answers. Fill a PDF form from data. Input: a form_id (from make_fillable or find_forms) or a flat PDF file, plus a values object mapping field names to answers. Output: a filled PDF file (flattened on request) and the form_id. Also: fill a PDF form from JSON; populate form fields from data; complete a PDF application from known values; write answers into a form. Optional input: retention (ephemeral or account_default; the account's own setting by default). Ephemeral processing: source and output documents are deleted 60 to 70 minutes after the last activity on a form.","tags":["data-entry","fill-pdf","form-filling","forms","json","pdf"],"examples":["fill a PDF form","fill in this form with these values","complete this application with my details"],"inputModes":["application/pdf","text/csv","application/json"],"outputModes":["application/pdf","application/json"]},{"id":"fill_from_context","name":"Fill a form from context documents","description":"Fill a PDF form using facts found in supporting documents. Complete a form from data found in supporting documents. Input: a form_id, a PDF file, or a `library` slug from find_form, plus one or more context files and/or freeform context text (a resume, a prior filing, notes) to extract answers from. Output: a filled PDF file, the form_id, and a report of which fields were filled with what confidence. Also: fill a PDF form from DOCX, spreadsheets, images, JSON, or other documents; pre-fill a government form from supporting paperwork; complete an application from a resume or company details; extract answers from context documents into a form. Optional input: retention (ephemeral or account_default; the account's own setting by default). Ephemeral processing: source and output documents are deleted 60 to 70 minutes after the last activity on a form.","tags":["context-fill","document-extraction","document-processing","extraction","fill-pdf","forms","pdf"],"examples":["fill out this W-9 from my company details","use my resume to fill out this application","complete this form from last year's tax return","fill this intake form from my notes"],"inputModes":["application/pdf","text/csv","application/json"],"outputModes":["application/pdf","application/json"]},{"id":"prepare","name":"Prepare a form from documents","description":"Prepare a form from documents: a proposal of every answer with its source, what is missing, and where documents disagree, before writing, plus attachments for a package. Prepare a form instead of filling it. Input: a form_id or PDF file, plus one or more context files and/or freeform context text, and an optional policy (safe or strict). Output: a proposal_id and the proposal itself, listing every field's proposed answer with the document it came from, the questions still open, and the signatures and attachments a person still has to supply. Nothing is written into the PDF until a later call commits it. Also: review a form before it is filled; see which answers came from which document; find the gaps in an application; check a form for conflicting information; propose answers for review instead of writing them. Optional input: retention (ephemeral or account_default; the account's own setting by default). Ephemeral processing: source and output documents are deleted 60 to 70 minutes after the last activity on a form.","tags":["agents","extraction","forms","pdf","review"],"examples":["what do I still need to fill in this form","which answers came from which document","prepare this application from these files","check this form before you fill it in"],"inputModes":["application/pdf","text/csv","application/json"],"outputModes":["application/pdf","application/json"]},{"id":"fill_batch","name":"Batch fill forms from a spreadsheet","description":"Fill one copy of a PDF form for every row of a spreadsheet. Batch fill forms from a spreadsheet. Input: a form_id or PDF file, plus a CSV file (or rows) with one row per filled copy, and an optional column-to-field mapping. Output: one filled PDF per row and the form_id. Also: batch fill PDF forms from a CSV or Excel file; mail-merge a PDF form; generate many filled forms from a table of records. Optional input: retention (ephemeral or account_default; the account's own setting by default). Ephemeral processing: source and output documents are deleted 60 to 70 minutes after the last activity on a form.","tags":["batch","fill-pdf","forms","mail-merge","pdf","spreadsheet"],"examples":["fill one copy of this form for each row in my CSV","batch fill forms from a spreadsheet","generate a filled form for every employee in this sheet"],"inputModes":["application/pdf","text/csv","application/json"],"outputModes":["application/pdf","application/json"]},{"id":"suggest_mapping","name":"Suggest a column-to-field mapping","description":"Propose which spreadsheet columns fill which PDF form fields. Suggest how spreadsheet columns map to form fields before a batch fill. Input: a form_id or PDF file, plus a CSV file or a list of column names. Output: a suggested mapping from columns to field names for review. Also: map CSV columns to form fields; match spreadsheet headers to a PDF form; plan a batch fill.","tags":["form-schema","forms","mapping","pdf","spreadsheet"],"examples":["which column goes in which field","match my spreadsheet columns to the form fields","check the column mapping before a batch fill"],"inputModes":["application/pdf","text/csv","application/json"],"outputModes":["application/pdf","application/json"]},{"id":"find_forms","name":"Find previously processed forms","description":"Find forms previously made fillable, by title search and state. Input: an optional query string, state filter (ready, processing, failed, or all), and a result limit. Output: a list of matching forms with their form_id, title, and state.","tags":["pdf","forms","search"],"examples":["find the lease form I made last week","show me the forms I've uploaded","search my forms for the W-9"],"inputModes":["application/pdf","text/csv","application/json"],"outputModes":["application/pdf","application/json"]},{"id":"find_form","name":"Find a blank government form","description":"Find a blank government form in the Emboss library by name or number, ready to fill. Find a blank US federal form in the Emboss library, by name, number or alias. Input: a query string such as 'W-9', 'i9' or 'taxpayer identification'. Output: each matching form's slug, title, agency, revision and page count. Pass a slug as `library` on make_fillable or fill_from_context to start from that form instead of uploading one. Also: look up a blank IRS or USCIS form; find a W-9 or an I-9 to fill in; get a blank federal form by its number; search a library of government forms.","tags":["form-schema","forms","government-forms","library","pdf","search"],"examples":["find me a blank W-9","do you have the I-9 form","which government forms can I fill in here"],"inputModes":["application/pdf","text/csv","application/json"],"outputModes":["application/pdf","application/json"]},{"id":"get_form","name":"Get a form's status and field inventory","description":"Get a form's current status and field inventory. Input: a form_id. Output: the form's state (ready, processing, or failed), title, page count, and field list.","tags":["pdf","forms","inspection"],"examples":["is my form ready yet","what fields are on this form","check the status of my form"],"inputModes":["application/pdf","text/csv","application/json"],"outputModes":["application/pdf","application/json"]},{"id":"commit","name":"Commit a proposal","description":"Write the answers into the form, render it with text that fits, check it, and return the PDF with a report and a receipt, or one submission package. Commit a proposal from prepare: write any remaining values, render the PDF with text that fits, check it, and return the filled PDF with a report and a receipt. Input: a proposal_id from prepare, plus any values still needed (field_id, value, and an optional note), an optional policy (safe or strict), and an optional package flag. With package the output is one submission package as well: the filled form, the proposal's attachments in the order the form asks for them, and the receipt embedded in the file. Output: a job_id; when the task completes, the verification result, a receipt link, the filled PDF, and the package when one was asked for. Also: commit a proposal to a filled PDF; render a prepared form; finalize a form after review; write the reviewed answers into the document.","tags":["agents","forms","pdf"],"examples":["write the answers into the form and check it","render this proposal into a filled PDF","finalize this form now that the answers are confirmed"],"inputModes":["application/pdf","text/csv","application/json"],"outputModes":["application/pdf","application/json"]},{"id":"verify","name":"Check a filled form","description":"Check a filled form: required fields, allowed options, consistent choices, text that fits, empty signature boxes; returns complete, review required, incomplete or failed. Check a filled PDF against a form's contract: required fields, allowed options, consistent choices, text that fits, empty signature boxes. Input: a form_id and the filled PDF (a FilePart or a url). Output: complete, review required, incomplete, or failed, plus the list of issues found. Also: verify a filled PDF form; check a completed form for missing or invalid fields; validate a filled-in document before submitting it.","tags":["agents","forms","pdf","verification"],"examples":["check whether this filled form is complete","what is still missing on this filled PDF","validate this completed form before I submit it"],"inputModes":["application/pdf","text/csv","application/json"],"outputModes":["application/pdf","application/json"]},{"id":"read_form","name":"Read a filled form back","description":"Read the values out of a filled PDF form, labelled by field, with a completeness verdict when the form is known. Read the values out of a filled PDF. Input: the filled PDF as a FilePart (url or inline bytes), and optionally a form_id when the form is already in the account. Output: every form box in the file with its value and whether it is filled, the labels and required flags when the form is recognised, and a completeness verdict. Nothing is stored. Also: extract form data; get values from a filled PDF; read a completed form back into data; pull the answers out of a filled application; turn a filled PDF into JSON.","tags":["document-extraction","extraction","form-schema","forms","pdf","read-back"],"examples":["read the values out of this filled PDF","what did someone write in this form","turn this completed form into data"],"inputModes":["application/pdf","text/csv","application/json"],"outputModes":["application/pdf","application/json"]},{"id":"attach","name":"Attach a document to a proposal","description":"Attach one supporting document to a proposal from prepare, so the commit can hand back one submission package. Input: a proposal_id, the document as a FilePart (PDF, PNG or JPEG), and optionally `for` in the message metadata naming one of the proposal's requirements. Output: the attachment's number, the requirement it satisfies, its size and its hash. Optional input: retention (ephemeral or account_default; the account's own setting by default). Ephemeral processing: source and output documents are deleted 60 to 70 minutes after the last activity on a form.","tags":["pdf","forms","agents","attachments"],"examples":["attach my passport to this form","add the bank statement this application needs","upload the proof of address for this proposal"],"inputModes":["application/pdf","text/csv","application/json"],"outputModes":["application/pdf","application/json"]},{"id":"quote_job","name":"Get a price quote for filling a PDF form","description":"Get a price quote for filling a PDF form before any paid work runs. Input: the target skill (make_fillable, fill_form, fill_from_context, suggest_mapping, or fill_batch) and its own input, exactly as a direct call to that skill would take. Output: a quote_id, price, and expiry, computed and locked in before anything runs.","tags":["pdf","forms","pricing","quote"],"examples":["get a price quote for filling a PDF form","how much would it cost to fill this form","quote me a price before you run this"],"inputModes":["application/pdf","text/csv","application/json"],"outputModes":["application/pdf","application/json"]},{"id":"execute_quote","name":"Run a previously quoted job","description":"Run the job priced by a previous quote_job call, from its staged inputs, with no re-upload. Input: a quote_id. Output: the same result the quoted skill's own direct call would return (a filled PDF, a fillable form, or a batch of filled copies).","tags":["pdf","forms","pricing","quote"],"examples":["run the quote I just got","execute that quoted job","go ahead and fill it now that I've seen the price"],"inputModes":["application/pdf","text/csv","application/json"],"outputModes":["application/pdf","application/json"]}],"provider":{"organization":"Emboss","url":"https://getemboss.ai"},"signatures":[{"protected":"eyJhbGciOiJFZERTQSIsImprdSI6Imh0dHBzOi8vYXBpLmdldGVtYm9zcy5haS8ud2VsbC1rbm93bi9hMmEtandrcy5qc29uIiwia2lkIjoiZW1ib3NzLWEyYS0xIiwidHlwIjoiSk9TRSJ9","signature":"oKDQwz_fiiwmn0yfXdpNL7U0nmxTMzWFTfGu3knpSltbmm8XzII8hgB2vafANGZR0hrkhKAMeGOjcShMzxKbCA"}]}