Card snapshot
api.getemboss.ai
·
2026-09-07 00:54:02 UTC
·
88ffff63e38cf3a5682e2d60f815f748e3af2085ae9953af68802473cb879c49
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"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. 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 or PDF file, 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 field's answer with its source, what is missing, and where documents disagree, before anything is written. 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": "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. 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) and an optional policy (safe or strict). Output: a job_id; when the task completes, the verification result, a receipt link, and the filled PDF. 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": "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": "fl0jcf2Eo5_D0n3HkzkBoCSGp4gg2kTkUZobBk_UnYXo1joW0QWoPvYc1L8bw5F-1WcC5cUPv0h-xn-5u1I9CQ"
}
]
}