Pages, forms, analytics, webhooks, automations — from one conversation.
Updated March 2026
Sutrena is the web runtime for AI agents. Your agent gets a key, then creates whatever the user needs — a landing page, a form, an analytics site, webhooks, automations, or all of them wired together. 67 MCP tools or a REST API. No signup, no deploy pipeline, no hosting to configure. This guide shows the full range. Most agents only need one or two of these per conversation. But they all compose together under one account, one key, one source of truth.
1. Agent gets a trial key
The agent calls the trial endpoint. No auth, no email, no CAPTCHA. Gets back an API key instantly. The user has 24 hours to claim the account via OAuth.
const res = await fetch("https://sutrena.com/api/trial", {
method: "POST"
});
const { apiKey, subdomainUrl } = await res.json();
// apiKey: "st_trial_abc123..."
// subdomainUrl: "https://site-a1b2c3d4.sutrena.com"2. Deploy a page
The agent sends HTML and CSS. The page is live immediately at a public URL. Use slug 'index' for the root page of the subdomain. Create multiple pages for a full site.
const pageRes = await fetch("https://sutrena.com/api/pages", {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
slug: "index",
title: "Launch Page",
html: "<h1>We are building something new</h1><p>Sign up below.</p>",
css: "body { font-family: system-ui; max-width: 600px; margin: 80px auto; }"
})
});
// Page is live at: site-a1b2c3d4.sutrena.com/3. Create a form
The agent defines form fields as JSON. Or use sutrena_collect to create a form with webhook notifications in one call. The form gets a hosted URL and a submit endpoint.
const formRes = await fetch("https://sutrena.com/api/forms", {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
name: "Waitlist",
fields: [
{ name: "email", label: "Email", type: "email", required: true },
{ name: "role", label: "Role", type: "select",
options: ["Developer", "Designer", "PM", "Other"] }
],
uniqueBy: ["email"]
})
});
const { id, hostedUrl } = await formRes.json();4. Set up analytics
Create an analytics site linked to the subdomain. Sutrena-hosted pages auto-track server-side — no script needed. For external sites, add one script tag (~1.2 KB, no cookies).
const analyticsRes = await fetch("https://sutrena.com/api/analytics/sites", {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
name: "Launch Site",
subdomainId: "sub_xxx" // auto-tracks all pages on this subdomain
})
});
// Page views, unique visitors, referrers — all collected automatically
// Query later: GET /api/analytics/query?metric=page_views&period=30d5. Wire up webhooks
Get notified when forms receive submissions. Slack, Discord, Telegram, Microsoft Teams, Google Chat — or any URL. The agent links a webhook to a form in one call.
const webhookRes = await fetch("https://sutrena.com/api/webhooks", {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
url: "https://hooks.slack.com/services/T00/B00/xxx",
template: "slack",
formIds: [id]
})
});
// Every new submission pings Slack6. Agent returns everything to the user
The agent hands the user live URLs for every artifact created. One conversation, multiple deployed resources, all managed from one account.
// Agent responds:
// "Here is your launch setup:
//
// Site: https://site-a1b2c3d4.sutrena.com
// Form: https://sutrena.com/f/frm_xyz789
// Analytics: auto-tracking on all pages
// Webhooks: new signups will ping #waitlist in Slack
//
// Claim your account within ${CLAIM_TTL_HOURS} hours to keep everything."Absolutely. Need just a form? Create a form. Just a page? Deploy a page. Just analytics? Set up an analytics site. Each feature works independently. They compound when used together but none require the others.
No. POST /api/trial gives the agent a key instantly. For long-term use, the user claims the account via OAuth and the agent uses a permanent key.
Yes. 67 MCP tools covering forms, pages, analytics, webhooks, automations, domains, folders, and site deployment. Works with Claude Code, Cursor, Windsurf, and any MCP-compatible client.
Yes. Free plan: 10 projects. Pro ($29/mo): 100. Scale ($99/mo): unlimited. Projects = forms + pages + analytics sites + automations combined. Use folders to organize them.
Any. Claude Code, Cursor, LangGraph, CrewAI, AutoGen, n8n, or plain HTTP calls. Sutrena publishes /llms.txt, /api/schema (OpenAPI), and /.well-known/mcp.json for agent discovery.
Sutrena is the web runtime for AI agents. Forms, Pages, Analytics, Webhooks, Automations — all through 67 MCP tools and one REST API. Your agent creates web artifacts, humans interact with them, and your agent gets the data back. Use any one feature or all of them together.
Pages
Deploy HTML instantly
Forms
Collect structured data
Automations
DSL-based pipelines with 14 step types
Analytics
Privacy-first, no cookies
Webhooks
Slack, Discord, Telegram
1. Get a trial key (no auth, no signup)
curl -X POST https://sutrena.com/api/trial2. Create anything — a page, form, automation, or analytics site
# Create a form
curl -X POST https://sutrena.com/api/forms \
-H "Authorization: Bearer st_trial_xxx" \
-H "Content-Type: application/json" \
-d '{"name": "waitlist", "fields": [{"name": "email", "label": "Email", "type": "email", "required": true}]}'
# Or deploy a page
curl -X POST https://sutrena.com/api/pages \
-H "Authorization: Bearer st_trial_xxx" \
-H "Content-Type: application/json" \
-d '{"slug": "index", "title": "My Site", "html": "<h1>Live</h1>"}'Get a trial API key instantly with no signup, or create an account for the full experience.