Quickstart
From zero to a SQL-free answer about your traffic in five minutes. You need an email address and a website you can edit.
1. Create an account
Enter your email on the home page or call the signup API yourself:
curl -s https://api.capless.sh/v1/signup \
-d '{"email":"you@example.com","siteName":"my-site","allowedOrigins":["https://example.com"]}'
The response contains everything you need. Save apiKey: it is shown once.
{
"user": { "id": "…", "email": "you@example.com" },
"project": { "id": "prj_…", "name": "…", "plan": "trial", "trialEndsAt": "…" },
"apiKey": "cpl_…",
"site": { "key": "cs_…", "snippet": "<script async src=\"https://c.capless.sh/c.js\" data-site=\"cs_…\"></script>" },
"dashboardUrl": "https://app.capless.sh/…",
"mcp": { "url": "https://mcp.capless.sh/mcp", "headers": { "Authorization": "Bearer cpl_…" } }
}
dashboardUrlis a one-time sign-in link, valid for 15 minutes. Later, sign in at app.capless.sh/login.- We send a verification email. Your 14-day trial starts now, no credit card.
409 email_takenmeans you already have an account: log in instead.
2. Add the snippet
Paste the snippet into every page, right before </head>:
<script async src="https://c.capless.sh/c.js" data-site="cs_…"></script>
That's it: pageviews, clicks, form submits, errors, Web Vitals and session replays are collected automatically. Single-page apps are detected (pushState, back/forward). See Web SDK for custom events and user identification.
3. Check that data arrives
Open your site in a browser, then read the newest events:
export CAPLESS_API_KEY=cpl_…
curl -s https://api.capless.sh/v1/streams/web.events -H "authorization: Bearer $CAPLESS_API_KEY"
# → {"name":"web.events","entryCount":3,"lastCommittedAt":"…", …}
curl -s https://api.capless.sh/v1/streams/web.events/read -H "authorization: Bearer $CAPLESS_API_KEY" \
-d '{"filter":"entry.type == \"pageview\"","map":"{\"path\": entry.path, \"at\": entry.timestamp}"}'
Or open the dashboard at app.capless.sh to watch sessions and replays.
4. Ask questions
- From your coding agent: connect the MCP server and ask "which pages had the most rage clicks this week?".
- With CEL: filter and reshape events server-side on
/read(CEL functions). - With SQL (Team plan): materialize
web.eventsinto ClickHouse and run real SQL.
Track your own events
capless("track", "checkout_started", { plan: "pro" });
capless("identify", "user_42", { email: "jane@example.com" });
Custom events are type: "custom" records with name and properties in the same web.events stream.