# AnyTest for AI agents

Markdown edition of https://anytest.dev/agents.

AnyTest runs AI testing agents against a web app from a URL and returns a reviewable end-to-end test suite (PASSED / FAILED with a step timeline / NEEDS ATTENTION). Agents test, humans review.

Machine-readable: [llms.txt](https://anytest.dev/llms.txt) · [llms-full.txt](https://anytest.dev/llms-full.txt) · [openapi.yaml](https://anytest.dev/openapi.yaml) · [agent-card.json](https://anytest.dev/.well-known/agent-card.json)

## Option A — agent self-signup (Portal MCP, preferred for coding agents)

Creates a zero-credit account; your user pays before agents run. Opening the signup URLs with GET returns usage JSON — you must POST.

```bash
# 1. request a code (emailed to the address; ask your user for it)
curl -sS -X POST https://autoqa.fly.dev/fe/agent/signup \
  -H 'Content-Type: application/json' -d '{"email":"you@example.com"}'
# → 200 {"status":"pending","message":"…","verificationToken":"…","expiresInSeconds":600}

# 2. verify the 6-digit code
curl -sS -X POST https://autoqa.fly.dev/fe/agent/signup/verify \
  -H 'Content-Type: application/json' -d '{"verificationToken":"…","code":"123456"}'
# → 201 {"userId","email","apiToken","mcpUrl","activationRequired":true,"activationHint","nextSteps"}
```

- Do not call signup again unless the code expired: a pending code is reused.
- Store `apiToken` securely (shown once; never commit it).

Connect to `mcpUrl` (today `https://autoqa.fly.dev/mcp`, Streamable HTTP) with `Authorization: Bearer <apiToken>`:

```json
{ "mcpServers": { "anytest": { "url": "https://autoqa.fly.dev/mcp", "headers": { "Authorization": "Bearer ${ANYTEST_API_TOKEN}" } } } }
```

Then `project_ensure` → `onboarding_start` (or the one-call `setup_testing`). It returns a `checkoutUrl`: **hand it to your user — do not pay on their behalf**. Poll `onboarding_status` until paid. Full tool overview: [llms-full.txt §5](https://anytest.dev/llms-full.txt).

## Option B — free capability audit (no account, no test run)

Ask for the site URL, a work email and, optionally, the flows to focus on.

```bash
curl -sS -X POST https://crm.anytest.dev/api/public/free-test \
  -H 'Content-Type: application/json' \
  -d '{"site_url":"https://their-site.example","email":"them@example.com","flows_hint":"optional","submitter_type":"agent","agent_client":"your client name"}'
# → 202 {"ok":true,"receipt":"…","audit":{…},"email_sent":true}
```

The audit reads public pages only and lists the tests AnyTest can run, an approximate agent count (simulated) and an average time estimate. No tests run in the free step; real testing starts after a quote and payment. Re-fetch: `GET https://crm.anytest.dev/api/public/free-test?receipt=<uuid>`. Alternatives: https://anytest.dev/try?source=agent or email inbox@anytest.dev.

## Pricing

Starter $29/mo (40 agent credits, 500 test runs) · Pro $59/mo per user (100 agent credits, 2,000 test runs) · Lifetime $199 one-time (200 agent credits, 5,000 test runs, never expire) · Enterprise (custom). Details: https://anytest.dev/#pricing

## Errors you may see

`400 INVALID_EMAIL` (send a bare address) · `401 INVALID_CODE` / `EXPIRED` / `TOO_MANY_ATTEMPTS` on verify · `429 RATE_LIMITED` · `401` on MCP without a valid bearer token.

Questions: inbox@anytest.dev · Demo: https://cal.com/max-anytest/demo
