# AX Check: clerk.com
Checked 2026-10-06.

Clerk's docs, setup, and pricing are clear and agent-ready.
All 23 checklist items passed: quickstarts, CLI, SDKs, MCP server, and API specs are all directly reachable with stated pricing.

## Onboarding needs a login

## Coding sessions
All three independent sessions (DeepSeek V4.1 Flash, Kimi K3, Qwen 3.8 Max) completed the task and correctly reported Clerk's pricing live from the pricing page, including free tier limits, per-plan costs, and usage-based overage rates.

### DeepSeek V4.1 Flash
[View public run](https://agents.withgauge.com/p/runs/a631a75a-156a-48b8-b89d-cf817032897d) · [Read transcript](https://www.ax-check.com/clerk.com/sessions/deepseek.json)
README.md and final output give a full pricing table (Hobby $0, Pro $25/mo, Business $300/mo, Enterprise custom) sourced live from clerk.com/pricing with explicit assumptions (MRU billing unit, 24h retention definition, per-app basis, overage tiers).
#### End-to-end onboarding
- **Onboarding needs a login**: The agent scaffolded a CLI example using the real @clerk/backend SDK (v3.23.0) targeting the hosted api.clerk.com, but no CLERK_SECRET_KEY existed in the environment and the agent explicitly states it cannot create a Clerk account itself. It ran only a missing-key guard path (local, unauthenticated) and never executed an authenticated call like getUserList or createUser against the live API. No self-service credential acquisition occurred.
  Event 9:

  ```text
  Repo is empty (no existing app, no Clerk credentials in env). Node/npm/Python/Go are available.
  ```
  Event 89:

  ```text
  There is **no Clerk account or `CLERK_SECRET_KEY`** in this environment, and I can't create one for you. So the example is built and wired but can't make a real call.
  ```
  Event 87:

  ```text
  Missing CLERK_SECRET_KEY.
    1. Copy .env.example to .env
    2. Paste your secret key from https://dashboard.clerk.com (API Keys)
    3. Re-run the command.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **Missing Clerk secret key blocks any live API call**: No CLERK_SECRET_KEY was present in the sandbox and the agent has no path to self-service sign up for a Clerk account or generate a key, so every command in the built CLI (list/create/get/verify) only reached the local missing-key guard and exited before touching the hosted API. This is a missing-credentials limitation of the test environment, not a product defect — Clerk requires normal dashboard signup/login to obtain a secret key.
  Event 74:

  ```text
  Missing CLERK_SECRET_KEY.
    1. Copy .env.example to .env
    2. Paste your secret key from https://dashboard.clerk.com (API Keys)
    3. Re-run the command.
  ```
  Event 89:

  ```text
  There is **no Clerk account or `CLERK_SECRET_KEY`** in this environment, and I can't create one for you.
  ```
- **npm registry fetch timed out on large package metadata**: A curl request to registry.npmjs.org/@clerk/backend timed out after 15s with a truncated JSON response, causing a parse failure. This was a transient network/tooling issue, not a product issue, and the agent recovered immediately by re-fetching a smaller endpoint (/latest).
  Event 30:

  ```text
  curl: (28) Operation timed out after 15000 milliseconds with 27265664 out of 27789681 bytes received
  ```

#### Suggested Changes
None identified in this transcript.

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/62acfdc8-4fca-4807-bd31-f1f7da11ff7f) · [Read transcript](https://www.ax-check.com/clerk.com/sessions/kimi.json)
Final output breaks down pricing by plan tier with explicit workload assumptions (Hobby $0 up to 50k MRU, Pro $25/mo then ~$0.02/MRU, Business $300/mo, Enterprise custom), sourced live from clerk.com/pricing (seq 19 fetch).
#### End-to-end onboarding
- **Onboarding needs a login**: The agent never created a Clerk account or obtained real API keys on its own. It wrote example code, then tested it with a hardcoded placeholder secret key, which Clerk's hosted API correctly rejected with a 401. The agent explicitly stated the block is that Clerk requires account signup with email verification it cannot complete from the sandbox, and asked the human to supply a real CLERK_SECRET_KEY. No authenticated operation against the real product was ever demonstrated.
  Event 40:

  ```text
  CLERK_SECRET_KEY=sk_test_placeholder node -e
  ```
  Event 41:

  ```text
  API response: 401 - The provided Clerk Secret Key is invalid. Make sure that your Clerk Secret Key is correct.
  ```
  Event 43:

  ```text
  I can't run the example end-to-end because Clerk requires an account, and signup at dashboard.clerk.com needs email verification I can't complete from this sandbox.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No self-service way to get a Clerk API key**: Clerk requires creating an account via dashboard.clerk.com with email verification, which the agent could not complete inside the sandbox without human involvement. This is a normal product authentication requirement (not a defect) combined with a test-environment limitation: no human was available to click through signup or hand over a key during the run.
  Event 43:

  ```text
  I can't run the example end-to-end because Clerk requires an account, and signup at dashboard.clerk.com needs email verification I can't complete from this sandbox.
  ```
  Event 41:

  ```text
  API response: 401 - The provided Clerk Secret Key is invalid. Make sure that your Clerk Secret Key is correct.
  ```

#### Suggested Changes
None identified in this transcript.

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/cfd9c24a-0976-45bc-b38c-757253312261) · [Read transcript](https://www.ax-check.com/clerk.com/sessions/qwen.json)
Pricing is stated with explicit assumptions/mechanics: Free tier up to 50,000 MRUs, Pro from $20/mo + $0.02/MRU beyond free allowance, MRU-not-MAU billing definition, and add-on costs (SMS $0.01/msg), sourced live from clerk.com/pricing (seq 11,16,28).
#### End-to-end onboarding
- **Onboarding needs a login**: Agent never obtained a Clerk publishable key or any product credentials on its own. It built a static HTML demo with a placeholder key and explicitly stated it was blocked on needing a human to sign up for a Clerk dashboard account to get a real key. No authenticated API call to Clerk was ever made; the only live HTTP requests were unauthenticated fetches of clerk.com marketing pages and a CDN JS asset (200 status, no auth).
  Event 28:

  ```text
  I can't complete an end-to-end run: the example needs a **publishable key (`pk_...`)** from a Clerk dashboard account, which requires you to sign up (email/OAuth).
  ```
  Event 26:

  ```text
  HTTP/2 200 
  date: Tue, 06 Oct 2026 01:50:08 GMT
  content-type: application/javascript; charset=utf-8
  
  ```
  Event 19:

  ```text
  const PUBLISHABLE_KEY = "pk_test_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No self-service way to obtain a Clerk publishable key**: Clerk requires creating an application through the web dashboard (human sign-in/sign-up) to get a real pk_/sk_ key pair. This is normal product auth design, not a defect, but it stopped the agent from running an authenticated end-to-end example within the session. Agent correctly identified this and stopped rather than faking success.
  Event 28:

  ```text
  instance creation and key issuance happen in a web dashboard tied to a human account, so there's no fully headless bootstrap path for me.
  ```

#### Suggested Changes
- **Fix the clerk.com/docs/pricing redirect/response**: A HEAD request to https://clerk.com/docs/pricing returned a server error during the session. Check the docs site routing for that path and confirm it returns 200 so agents and developers landing there from search or links get the pricing page instead of an error.
  Event 11:

  ```text
  HTTP/2 500 
  cache-control: public, max-age=0, must-revalidate
  date: Tue, 06 Oct 2026 01:49:27 GMT
  referrer-policy: same-origin
  server: Vercel
  
  ```

### Task given to each agent
Help me build a simple example using Clerk. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.

No product credentials were supplied and no purchases were authorized.

## Score: A · 100/100 (provisional)
Grades come from completed site checks. Coding sessions and skipped checks do not affect the score.

### Clarity
- **Pass** — Homepage answers Markdown requests

  ```text
  Homepage returned text/markdown with 1246 tokens when requested with Accept: text/markdown.
  ```

- **Pass** — llms.txt provides an actionable documentation index

  ```text
  llms.txt links docs home, docs index, search, SDK quickstarts, API specs, and agent setup.
  ```

- **Pass** — llms.txt provides navigation guidance

  ```text
  llms.txt groups links under When to use, Agent setup, SDKs, Products, Documentation, API references.
  ```

- **Pass** — llms.txt mentions offered API, MCP, and skills

  ```text
  llms.txt lists Clerk Skills, CLI, MCP server, skills discovery, and OpenAPI specs.
  ```

- **Pass** — A compact guide representation exists

  ```text
  SKILL.md and framework quickstart .md pages are standalone Markdown guides.
  ```

- **Pass** — A focused guide is directly retrievable

  ```text
  SKILL.md and quickstart .md pages fetched directly with full setup steps.
  ```

- **Pass** — Equivalent instructions fit a token budget

  ```text
  SKILL.md is 1813 tokens, well under 8000, and keeps the full workflow.
  ```

- **Pass** — Product-docs links survive format changes

  ```text
  Markdown homepage links to docs, pricing, blog, changelog and llms.txt.
  ```

- **Pass** — The compact guide is independently actionable

  ```text
  SKILL.md gives concrete CLI steps: npx clerk init, add auth controls, doctor verify, deploy.
  ```

- **Pass** — Install and next-step links resolve

  ```text
  Fetched quickstart and CLI pages return 200; install and next-step links resolve.
  ```


### Onboarding
- **Pass** — Docs lead to a relevant quickstart

  ```text
  llms.txt and docs link framework quickstarts; React Router and TanStack quickstarts give step-by-step setup.
  ```

- **Pass** — Installation commands are extractable

  ```text
  CLI docs and quickstarts show extractable install commands: npm install -g clerk, npx clerk init.
  ```

- **Pass** — Code examples are available without interaction

  ```text
  Quickstarts include inline code blocks for provider, middleware, and components without interaction.
  ```

- **Pass** — Prerequisites and auth boundaries are explicit

  ```text
  Quickstarts state Node.js 20.9.0+, API key setup, and never expose CLERK_SECRET_KEY in client code.
  ```


### Pricing
- **Pass** — Pricing is readable without interaction

  ```text
  Pricing page renders full plan tables and feature comparisons as static Markdown text.
  ```

- **Pass** — Prices are stated, not gated

  ```text
  Prices stated: Hobby free, Pro $25/mo ($20 annual), Business $300/mo ($250 annual).
  ```

- **Pass** — Pricing units and limits are explicit

  ```text
  MRU/MRO definitions, included limits, and volume overage rates are explicit.
  ```

- **Pass** — Agents identify pricing and its assumptions

  ```text
  3 of 3 sessions were judged on pricing; 0 fell short. DeepSeek V4.1 Flash: README.md and final output give a full pricing table (Hobby $0, Pro $25/mo, Business $300/mo, Enterprise custom) sourced live from clerk.com/pricing with explicit assumptions (MRU billing unit, 24h retention definition, per-app basis, overage tiers). Kimi K3: Final output breaks down pricing by plan tier with explicit workload assumptions (Hobby $0 up to 50k MRU, Pro $25/mo then ~$0.02/MRU, Business $300/mo, Enterprise custom), sourced live from clerk.com/pricing (seq 19 fetch). Qwen 3.8 Max: Pricing is stated with explicit assumptions/mechanics: Free tier up to 50,000 MRUs, Pro from $20/mo + $0.02/MRU beyond free allowance, MRU-not-MAU billing definition, and add-on costs (SMS $0.01/msg), sourced live from clerk.com/pricing (seq 11,16,28). This behavioural item does not affect the fast grade.
  ```


### Activation
- **Pass** — An API reference or OpenAPI spec is reachable

  ```text
  Clerk Backend API OpenAPI spec served as JSON and YAML with 177 paths.
  ```

- **Pass** — An MCP server is documented and well-formed

  ```text
  Remote MCP server at mcp.clerk.com/mcp documented with tools and per-client setup.
  ```

- **Pass** — A CLI install path is documented

  ```text
  CLI install documented: npm/pnpm/yarn/bun global, Homebrew, curl script, npx clerk.
  ```

- **Pass** — SDK packages resolve on their registries

  ```text
  npm registry lookups for clerk, @clerk/react-router, @clerk/tanstack-react-start all returned HTTP 200.
  ```

- **Pass** — Agent skills are published

  ```text
  Clerk Skills published with discovery index and per-skill SKILL.md files.
  ```



[Full report data](https://www.ax-check.com/clerk.com/report.json)
