{"audit":{"version":"1.5","generated_at":"2026-09-08T22:09:10.538445+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/api.getemboss.ai","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"api.getemboss.ai","name":"api.getemboss.ai","url":"https://api.getemboss.ai/.well-known/agent-card.json"}},"identity":{"provider":{"organization":"api.getemboss.ai","url":"https://api.getemboss.ai"},"registry_verification":null,"signature":{"signed":true,"signature_valid":true}},"protocol":{"version":"1.0","supports_streaming":true,"supports_push_notifications":false},"operational":{"live_state":"paid_api","live_responds":true,"last_status_code":200,"last_elapsed_ms":103,"last_error":null},"track_record":{"first_seen":"2026-09-02T15:30:24.961664+00:00","last_checked":"2026-09-08T16:37:11.308857+00:00","last_seen_ok":"2026-09-08T16:37:11.308857+00:00","checks_total":39,"checks_ok":39,"uptime_pct":100.0,"uptime_window_days":30,"uptime_probes":24,"archived":false,"archived_reason":null},"conformance":{"score":77,"grade":"B","summary":"B-grade: working agent with minor gaps (often unsigned cards or thin metadata).","criteria":[{"key":"valid_card","label":"Valid AgentCard","points":10,"max_points":10,"status":"pass","detail":"Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification)."},{"key":"live_responds","label":"Live JSON-RPC","points":15,"max_points":25,"status":"partial","detail":"Endpoint answers with HTTP 402 payment-required: live, but not anonymously callable."},{"key":"protocol_version","label":"Protocol version","points":8,"max_points":10,"status":"partial","detail":"Declares A2A 1.0 but missing supportedInterfaces[] (required in v1.0, update your card to reach 10/10)."},{"key":"signature","label":"JWS signature","points":10,"max_points":10,"status":"pass","detail":"Agent card is JWS-signed and signature verifies."},{"key":"uptime","label":"Uptime track record","points":15,"max_points":15,"status":"pass","detail":"24/24 probes succeeded (100% uptime)."},{"key":"skills","label":"Skill declaration","points":10,"max_points":10,"status":"pass","detail":"Declares 15 skills with structured metadata."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: api.getemboss.ai (https://api.getemboss.ai). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit."},{"key":"freshness","label":"Freshness + modern flags","points":4,"max_points":5,"status":"pass","detail":"seen in upstream source within 0d"},{"key":"security","label":"Security declaration","points":0,"max_points":5,"status":"info","detail":"Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated."}]},"card_read":{"findings":[],"clean":true,"source_url":"https://api.getemboss.ai/.well-known/agent-card.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"]}],"provenance":[{"source":"registry","first_seen":"2026-09-02T15:30:24.961664+00:00"},{"source":"agentic_market","first_seen":"2026-09-05T02:03:55.818064+00:00"},{"source":"cdp_discovery","first_seen":"2026-09-06T15:19:08.950045+00:00"}],"recent_probes":[{"fetched_at":"2026-09-08T14:43:42.628882+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":103,"live_responds":true},{"fetched_at":"2026-09-08T08:00:55.518723+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":124,"live_responds":true},{"fetched_at":"2026-09-08T01:56:14.983801+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":94,"live_responds":true},{"fetched_at":"2026-09-07T19:53:43.899491+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":97,"live_responds":true},{"fetched_at":"2026-09-07T13:50:40.074550+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":103,"live_responds":true},{"fetched_at":"2026-09-07T07:19:08.587081+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":95,"live_responds":true},{"fetched_at":"2026-09-07T00:54:02.792287+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":100,"live_responds":true},{"fetched_at":"2026-09-06T19:19:16.351554+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":98,"live_responds":true},{"fetched_at":"2026-09-06T13:22:31.833831+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":99,"live_responds":true},{"fetched_at":"2026-09-06T06:51:17.612607+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":93,"live_responds":true}],"catalog_attestation":null,"operator_revenue_evidence":{"evidence_class":"operator_submitted","authenticity":{"rung":"no_operator_evidence","rank":0,"why":"No verifiable operator evidence has been submitted for this agent.","thresholds":{"min_independent_payers":3,"min_verified_usd":25.0},"engine_table":"agent_authenticity","merge_rule":"max(existing_rank, rank)"},"metric_metadata":{"provenance":"operator_submitted_evidence","confidence":"attested","coverage":{"numerator":0},"as_of":"2026-09-08T22:09:10.545772+00:00","definition":"Revenue proofs submitted by the verified owner and re-checked by Agenstry against the settlement chain or the operator's own Stripe account. Only independently confirmed proofs are counted."},"counts":{"retained":0,"verified":0,"unverifiable":0},"verified":{"gross_usd":0.0,"transactions":0,"independent_payers":0},"detail_url":"https://agenstry.com/api/agents/api.getemboss.ai/evidence","dispute_url":"https://agenstry.com/agents/api.getemboss.ai/dispute"},"verification_history":[],"signatures":[{"protected":"eyJhbGciOiJFUzI1NiIsImprdSI6Imh0dHBzOi8vYWdlbnN0cnkuY29tLy53ZWxsLWtub3duL2p3a3MuanNvbiIsImtpZCI6ImFnZW50ZmluZGVyLWVzMjU2LTEiLCJ0eXAiOiJKT1NFIn0","signature":"o8EZXaLGPEEJupg4Aex71GtbrknlmZWwXfyOTmt4lZy4KS6TekHoDTMEd0bDgf3niC0WZitWmBcdqgnFSLOs1w"}]}