# Kamy — Document infrastructure for AI agents Kamy gives AI agents one tool call to render a document, sign it with PAdES-grade cryptography, and return a public verify URL that holds up in court. Built for AI startups, agent platforms, and any team putting LLM-generated commitments in front of customers, auditors, or regulators. The primary integration surface is the Kamy MCP server (https://mcp.kamy.dev/mcp). Point Claude, ChatGPT Apps, Cursor, or a custom LangChain/LangGraph agent loop at it and the agent immediately gains: - `kamy.documents.signAndVerify` — render + sign + return verify URL in one call - `kamy.documents.render` — pure rendering when the doc isn't being signed - `kamy.list_templates` — discover available system templates at runtime - `kamy.pki_sign_pdf` — sign an existing PDF the agent already has - `kamy.extract_document` — Kamy Ingest: POST a PDF, get structured JSON + a public verify URL that cryptographically proves the extraction matches the source. Five templates (invoice, receipt, contract, id_document, generic_form). The inverse of render — what an agent uses when it has to *read* a document from the outside world. For human-driven workflows (no agent), the same surface is reachable via REST (`POST /api/v1/render`, `POST /api/v1/signatures`), TypeScript SDK (`@kamydev/sdk`), Python SDK (`kamy-sdk`), and CLI (`kamy`). ## Quick links - Marketing site: https://kamy.dev - Documentation: https://kamy.dev/docs - API reference: https://kamy.dev/api-reference - Blog: https://kamy.dev/blog - LLM-friendly docs: https://kamy.dev/llms.txt - API base URL: https://kamy.dev - OpenAPI spec: https://kamy.dev/openapi.json - Agent manifest: https://kamy.dev/.well-known/agent.json - MCP server: https://mcp.kamy.dev/mcp - SDK on npm: https://www.npmjs.com/package/@kamydev/sdk - SDK on PyPI: https://pypi.org/project/kamy-sdk/ - Status / pricing: https://kamy.dev/pricing ## What you can do in one request ```http POST https://kamy.dev/api/v1/render Authorization: Bearer kamy_pk_... Content-Type: application/json { "template": "invoice", "data": { ... } } ``` Response: ```json { "id": "...", "url": "https://...signed.pdf", "bytes": 123456, "durationMs": 450 } ``` The signed URL in the response is valid for 1 hour. PDFs remain available via `GET /api/v1/renders/{id}` for the lifetime of the user's plan retention (30 days on Free, 365 days on Pro and Team) — that endpoint mints a fresh 1-hour signed URL on every call, so there's no need to download immediately. ## System templates (no design needed) Free on every plan: - `invoice` — line items, tax, discounts, payment terms - `receipt` — compact thermal-style receipt - `quote` — quote number, validity date, line items - `contract` — numbered sections + signature blocks - `shipping-label` — 4×6 inch label with barcode - `certificate` — elegant certificate of completion - `report` — multi-page business report with TOC - `agreement` — clean one-page agreement with signatures Country-compliant tax invoices (Pro and Team only — Free renders return a 403 PLAN_REQUIRED with an upgrade link): - `uae-tax-invoice` — UAE Federal Tax Authority compliant, bilingual Arabic + English, VAT 5%, Cabinet Decision 52/2017 fields - `ksa-zatca-invoice` — Saudi ZATCA Phase 1 compliant, bilingual, VAT 15%, with QR code slot (caller passes `qrCodeDataUrl`) Custom templates: bring your own HTML/CSS via `POST /api/v1/templates`. Handlebars helpers are pre-registered (`{{currency}}`, `{{date}}`, `{{eq}}`, `{{add}}`, etc.). ## Authentication Bearer token in the `Authorization` header. Get keys at https://kamy.dev/dashboard/api-keys. Test keys (`kamy_pk_...`) work everywhere; switch to live keys (`kamy_sk_...`) when you're ready to ship. ## SDKs TypeScript / JavaScript (`npm install @kamydev/sdk`): ```typescript import Kamy from "@kamydev/sdk"; const kamy = new Kamy({ apiKey: process.env.KAMY_API_KEY }); const pdf = await kamy.render({ template: "invoice", data: { ... } }); ``` Python (`pip install kamy-sdk`): ```python from kamy import Kamy kamy = Kamy(api_key=os.environ["KAMY_API_KEY"]) pdf = kamy.render(template="invoice", data={...}) ``` ## For AI agents specifically - **MCP server**: connect Claude / Cursor / any MCP client to `https://mcp.kamy.dev/mcp`. 32 tools across six groups — documents (render PDF/DOCX/PPTX/XLSX/HTML, convert, merge, split, edit, upload), signatures (send, envelopes, PAdES seal, certificate), extraction and payload validation, trust and provenance (attest, agent-action ledger, Trace), MCP ecosystem trust (manifest drift, prompt-injection scan), and templates/setup. 8 work with no API key. Full list: https://kamy.dev/docs/mcp or https://kamy.dev/.well-known/mcp.json. Install: `claude mcp add --transport http kamy https://mcp.kamy.dev/mcp` - **OpenAPI 3.1 spec**: https://kamy.dev/openapi.json — drop this into any function-calling pipeline. - **Agent manifest**: https://kamy.dev/.well-known/agent.json exposes auth, capabilities, and machine-readable endpoint refs. ## Plans - Free: $0/mo, 100 renders/month, system templates only (no country-compliant tax invoices), watermarked output - Starter: $19/mo ($15/mo billed annually), 5,000 renders/month, 3 API keys, custom templates, no watermark, hard cap (no overage) - Pro: $49/mo ($39/mo billed annually), 25,000 renders/month, unlimited API keys, custom + country-compliant tax templates, no watermark, hard cap (no overage) - Business: $149/mo ($119/mo billed annually), 100,000 renders/month, 5 seats, priority queue, custom + country-compliant tax templates, hard cap (no overage) - Scale: $0.002 per render, pay-as-you-go, unlimited renders, no monthly minimum, priority queue (the lowest-cost hosted PDF rendering on the market — undercuts Api2Pdf $0.0025 + bandwidth) ## Contact - Support: support@kamy.dev - Issues: https://github.com/Kamy-Development/kamy-plugin/issues