From zero to a working tag in five minutes.
This is the operator path. If you want the protocol theory, read the spec. If you want to inspect a live AAM site, open the discover page.
1. Sign up
Go to /sign-in. Email + password, Google, or GitHub. No card, no plan picker. You'll land on an empty dashboard with one CTA: Add your first site.
2. Add a site (the wizard does the work)
Click Add your first site →. You only need a domain — the wizard:
- fetches your homepage,
- scans for forms (contact, booking, search, order, newsletter),
- probes common
/openapi.jsonpaths, - suggests actions you can expose with one click.
Each suggested action becomes editable: pick free / paid, point at your webhook URL, or use a prebuilt executor (Stripe Checkout, Reservio).
3. Define your custom actions (skip this if the wizard guessed right)
In the Actions tab, click + Add action. Three things matter most:
- Action id — snake_case identifier agents will call (e.g.
cancel_subscription). - Description for AI — plain language about when the agent should call this. This is the single most important field for LLM tool use.
- Executor — usually
webhookpointing at an endpoint you already own. We POST signed envelopes there.
Got an OpenAPI spec? Click Import OpenAPI / Swagger in the action picker. Paste the URL, pick endpoints, batch-create.
4. Test before you save
The action editor has a built-in ▶ Run test request button. It hits your real executor with synthetic inputs and shows you the response inline. From the response, click "Use N as output schema" to auto-declare the response shape. AI agents read this and stop hallucinating fields.
5. Install the tag
The wizard sends you to /sites/[id]/setup with the snippet to paste. Two formats:
- Option A · script tag. One-liner, JS injects the link element.
- Option B · meta link. Pure HTML, no JS.
We publish the manifest at five channels for redundancy: <link>,<meta>, JSON-LD, HTTP Link: header, and the canonical /.well-known/agent-actions.json. Click Verify installation; we fetch your site and confirm.
6. Try the playground
Type the way a real user would speak to an agent. The playground picks a matching action (using your description as ground truth), fills synthetic params, runs the same executor an external agent would hit, and shows the full debug trace. With ANTHROPIC_API_KEY or OPENROUTER_API_KEY set, the playground uses a real LLM with tool-use; without, it runs a deterministic simulator.
7. Watch the audit log
Every consent, payment, action call, and 4xx/5xx is recorded. Filter, export to CSV/JSONL, revoke any agent's token. Owner email gets a one-time alert on the first ever invocation so you don't miss it.
8. Discover any other site
Public, no login: /discover. Paste any domain, see exactly what an agent would discover. Useful for debugging your own deployment from outside.
Going to production
For real-world use, set these env vars on your platform deployment:
RESEND_API_KEY— owner notifications and signed transactional email.STRIPE_SECRET_KEY— Stripe Connect integration tile.RESERVIO_CLIENT_ID+RESERVIO_CLIENT_SECRET— Reservio OAuth.ANTHROPIC_API_KEYorOPENROUTER_API_KEY— real LLM in the playground.AAM_RPC_URL_BASE+AAM_RPC_URL_BASE_SEPOLIA— own RPC endpoints for x402 verification (faster than public RPC).AAM_RELAYER_PRIVATE_KEY— wallet that submits TransferWithAuthorization on-chain so your tenant doesn't have to.
Programmatic access
The platform is itself an AAM-aware site. Try the dogfood:
# 1. Fetch our manifest
curl -s https://aam-platform-gamma.vercel.app/.well-known/agent-actions.json | jq
# 2. Call a public action (no auth)
curl -X POST https://aam-platform-gamma.vercel.app/api/aam/platform/get_pricing \
-H "Content-Type: application/json" -d '{}'
# 3. Or use the MCP bridge from any MCP-aware agent
npx @aam/mcp-bridgeQuestions, bug reports, partnerships
Email tadeas@raska.eu or call cal.com/tadeas-raska-fuhanv/30min.