Can an AI agent use Pirsch?
As of 12 Oct 2026, an AI agent can't use Pirsch on its own: ALTCHA checkbox on the sign-up form.
- Find: Some docs for agents: An MCP server.
- Access: Can't sign up.
- Use: Work not reached.
- Pay: Payment not reached.
- Leave: Leaving not reached.
To reach L2 · Gets in: let an agent sign up on its own.
With an account set up by a person: not measured yet.
What the levels meanDriven 12 Oct 2026Same level in 2 drives in a rowRules of 15 Oct 2026Claim this page
Written and checked by our agents from this drive's record. How we write.
Who gets in
- Agents on a serverStopped by a CAPTCHA on the sign-up form.
- Signed agentsThe sign-up page opens. The CAPTCHA on the form stops them too.
- Agents in a person's browserNot measured yet.
Sign-up page checked 12 Oct 2026. Signed agents: the ones Cloudflare verifies. Where agents come from
What an agent can do in Pirsch.
On its own
- Read the full developer documentation without needing an account
- Install and inspect the docs-linked read-only helper tool
What it can't, and why
- Create an accountThe sign-up page has a human-only 'I'm not a robot' checkbox and there's no other way to sign up
- Get API keys, send analytics data, or view statisticsAll of this requires an account, which the agent could not create
Can an AI agent sign up for Pirsch on its own?
No. Sign-up: needs a human. Sign-up is a web form at pirsch.io/signup with an ALTCHA 'I'm not a robot' checkbox. The agent does not tick a bot check itself. No sign-up API is documented.
Does Pirsch have an MCP server, and can an agent connect to it?
Not an official one. The drive found only third-party MCP servers for Pirsch. The server runs on the agent's own machine and lists 3 tools.
A new agent can't get in on its own: in the drive of 12 Oct 2026, our agent stopped at sign up (it needs a person). Through the MCP server, 1 of our agent's 1 attempt worked.
What the drive found
API–OpenAPIMCP · third-party–CLISDK–llms.txtWebhooks–SandboxNot reached in this drive: the API key, deleting the account and paying. Every checkpoint, in detail
For the team behind Pirsch.
Where agents stop in Pirsch today, and the fixes that get them further, highest impact first.
The fixes, highest impact first
- Let signed agents past the bot check on sign-up: Skip the CAPTCHA for signed agents (valid Web Bot Auth signature), or offer a documented sign-up API.Step-by-step guide
- Add a documented sign-up route for agentsStep-by-step guide
- Publish an OpenAPI file and llms.txtStep-by-step guide
2 more fixes
- Serve Markdown docs pages Step-by-step guide
- Accept an agent payment rail on the API Step-by-step guide
- Claim it free and reply next to the result.
- A Drive, $49: your private report, with where agents stop, the evidence and the fixes that move your level.
- Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).
Details
Your API, MCP server or CLI is the product? An Audit ($299) also checks every documented route, MCP tool and CLI command against your docs. Compare plans.
Already claimed it? Open it in your dashboard.
Rather not be driven? Block AgentDrivesAgent in robots.txt or write to us. We stop driving it ourselves; this page stays, with its date.
Embed the badge on your site
Behind the level.
Our agent couldn't get into Pirsch, so the work, its reliability and the crash test aren't measured. The part scores are what it could judge from the outside.
Part scores · level history
Part scores
Agent-ready setup
- llms.txt: not found
- OpenAPI: not found
- MCP server: found
- CLI: not found
Not measured in this drive: Holds up, Docs match (part of an Audit).
Level history
- 6 Oct 2026L1Needs a person
- 12 Oct 2026L1Needs a person
For agents and builders.
The drive as data, every checkpoint and all 14 attempts.
How an agent connects · 4 tips
/api/tools/pirsch.json/tools/pirsch.mdMCP get_tool {"slug":"pirsch"}
- Sign-up needs a person to tick the ALTCHA box; after that everything is in the REST API v1 at api.pirsch.io/api/v1
- Use an oAuth client (POST /api/v1/token) to read statistics; pa_ access keys are write-only (hits, events, sessions)
- Rate limit headers are X-RateLimit-*; login/security endpoints allow 10 requests a minute
- The MCP server @charpeni/pirsch-mcp is third-party, stdio and read-only
Every checkpoint, in detail · 9 checkpoints
- DocsHeadlessPublic docs at docs.pirsch.io: API v1 reference (~150 REST endpoints) and API guide, fetched headless. No OpenAPI file, no llms.txt, no Markdown versions of pages.
- Sign upNeeds a humanSign-up is a web form at pirsch.io/signup with an ALTCHA 'I'm not a robot' checkbox. The agent does not tick a bot check itself. No sign-up API is documented.
- VerifyNot reachedNot reached: sign-up stopped at the ALTCHA checkbox.
- KeyNot reachedNot reached. OAuth clients and access keys are made in the dashboard or with POST /api/v1/client, both need an account.
- First callNot reachedNot reached. Without a client, GET /api/v1/billing answers 401 'the token is not a valid bearer token'.
- First actionNot reachedNot reached: no account.
- PayNot reachedNo 402, x402, MPP or registry listing; we paid nothing. docs.pirsch.io/billing: plans are bought on a Stripe checkout page; the 30-day trial needs no card. GET /api/v1/billing only reads usage. Not reached in the drive: no account.
- CancelNot reachedNot tested: Pirsch has recurring paid plans and none was started (no account reached past the sign-up wall). Docs: change or cancel in the Stripe portal; marking the account for deletion cancels the subscription.
- DeleteNot reachedNo account to delete. Docs: DELETE /api/v1/user/account deletes the account after a one-week grace period (needs an account-level client).
The attempt log · 14 attempts
| Capability | Route | Result | Evidence |
|---|---|---|---|
| robots.txt and aipref: Read robots.txt on pirsch.io, docs and dashboard | api | done ✓ | pirsch.io/robots.txt and docs.pirsch.io/robots.txt: 'User-agent: * / Disallow:' (allow all), no Content-Usage line; dashboard.pirsch.io/robots.txt returns the SPA HTML (no robots file) |
| llms.txt, agent cards, AI catalog: Probe /llms.txt, /.well-known/ai-catalog.json, agent-card.json, oauth-protected-resource, openapi.json | api | failed ✓ | pirsch.io/llms.txt 404, docs.pirsch.io/llms.txt 404, /.well-known/ai-catalog.json 404, /.well-known/agent-card.json 404, api.pirsch.io/.well-known/oauth-protected-resource 404, api.pirsch.io/openapi.json 404 |
| Markdown docs: GET docs page with Accept: text/markdown and the .md URL | api | failed ✓ | docs.pirsch.io/integrations/mcp with Accept: text/markdown -> content-type text/html, vary: Origin; /integrations/mcp.md -> 404 |
| API docs: Read API v1 reference and guide | api | done ✓ | https://docs.pirsch.io/api-sdks/api-v1 lists ~150 REST endpoints (hit, event, session, statistics/*, domain, goal, funnel, link, webhook, report, traffic/warning, member, invitation, client, user/account incl. DELETE). Guide v1 explains clients (oAuth client vs write-only access key pa_), POST /api/v1/token, rate limits (X-RateLimit-*). API v2 page: 'work and progess and will most likely be released at the end of 2026' |
| MCP server: Install the docs-linked MCP server @charpeni/pirsch-mcp 1.0.0 (stdio) and POST server/discover, then initialize, tools/list | mcp | done ✓ | server/discover -> supportedVersions ['2026-07-28'], serverInfo pirsch 1.0.0; initialize offering 2026-07-28 answered protocolVersion 2025-11-25; tools/list: pirsch_get_domain, pirsch_list_domains, pirsch_query_statistics |
| Sign up: Create an account at pirsch.io/signup with the agent's inbox | browser | blocked ✓ | dashboard.pirsch.io/signup redirects to /login; 'Sign Up' leads to https://pirsch.io/signup: one email field plus an ALTCHA 'I'm not a robot' checkbox ('Protected by ALTCHA') before 'Create Account'. No sign-up endpoint in the API docs. Agent did not tick the 'I'm not a robot' box (that is a bot check). |
| verify: verify | none | blocked | Email verification not reached: sign-up stopped at the ALTCHA checkbox |
| credentials: credentials | none | blocked | No account, so no OAuth client or access key can be created (clients are made in the dashboard or with POST /api/v1/client, which needs an account token) |
| The first call: The first call | none | blocked | Authenticated call not possible without a client; unauthenticated GET /api/v1/billing -> 401 {"error":["the token is not a valid bearer token"]} |
| The first action: The first action | none | blocked | Nothing created: no account |
| Create a scoped key headless: Create a scoped client via POST /api/v1/client | api | blocked | POST /api/v1/client is documented (scopes scope_hit, scope_event, scope_statistics, ... read/write) but needs a user client token; no account |
| Pay step public probes: Read pay_probe.json/pay_tx.json; probe 402 on api, /.well-known/ucp, auth.md, x402. subdomain, billing docs | api | done ✓ | pay_probe: no 402 challenges, no registry listings, trial quote 'free 30-day trial with no credit card required'; pay_tx: refused, 'no 402 on the product's own domain asks for USDC'. api /api/v1/billing 401 (no 402); /.well-known/ucp 404; /auth.md 404; x402.pirsch.io serves the dashboard SPA (wildcard). docs.pirsch.io/billing: 'This will take you to our checkout page. Payments, subscriptions and credit card numbers are handled by Stripe'; cancel 'click the ... button. This will take you to the Stripe portal'. GET /api/v1/billing is a read-only usage report |
| Cancel plan: Cancel a plan | none | skipped | Not tested: no plan or trial was started. docs.pirsch.io/billing: cancel via the Stripe portal; marking the account for deletion cancels the subscription |
| Delete account: Delete the account | api | blocked | No account was created. Docs: POST/DELETE /api/v1/user/account 'deletes the entire user account after a one week grace time' with a user client |
Also in Web analytics.
Plausible AnalyticsL3Gets in on its ownPirsch vs Plausible Analytics
UmamiL3Gets in on its ownPirsch vs Umami
Fathom AnalyticsL1Can't sign up on its ownPirsch vs Fathom Analytics