# AX Check: neon.com
Checked 2026-10-05.

Neon's docs, pricing, and setup are all clear to agents out of the gate.
All 23 checklist items passed, covering clear docs, install paths, and pricing. All 3 coding sessions completed and correctly priced out the product.

## Onboarding needs a login

## Coding sessions
Three independent sessions (DeepSeek V4.1 Flash, Kimi K3, Qwen 3.8 Max) each completed the task and produced tiered pricing (Free/Launch/Scale) with CU-hour and GB-month rates, explicitly noting their pricing assumptions.

### DeepSeek V4.1 Flash
[View public run](https://agents.withgauge.com/p/runs/5444f11f-e7e5-4bf3-bc72-165667d0ae32) · [Read transcript](https://www.ax-check.com/neon.com/sessions/deepseek.json)
Final output gives Free/Launch/Scale tier prices with explicit assumptions (CU-hour metering, scale-to-zero, per-org billing, demo fits in Free tier).
#### End-to-end onboarding
- **Onboarding needs a login**: Agent explored Neon's REST API and docs but never obtained a NEON_API_KEY or DATABASE_URL in-session. Unauthenticated hit to the projects endpoint returned 401, confirming auth is required, and the agent explicitly stopped and asked the user for credentials rather than self-provisioning any. No authenticated operation against the hosted product was ever performed; the example and provision scripts were only syntax-checked locally, never executed against real Neon infrastructure.
  Event 33:

  ```text
  === API v2 projects endpoint (no auth) ===
  401
  ```
  Event 85:

  ```text
  Missing NEON_API_KEY. Create one at https://console.neon.tech/app/settings/api-keys
  ```
  Event 100:

  ```text
  I could not run the example end-to-end because this environment has no Neon credentials — no `NEON_API_KEY` or `DATABASE_URL`. The API returns `401` unauthenticated, and projects can't be created without a key.
  ```

#### Hallucinated URLs
- **Guessed a non-existent API docs URL**: Agent constructed a plausible-looking docs URL for project creation that doesn't exist in Neon's documentation, confirmed by the site's own 404 page pointing to correct alternatives. This was a guessed path rather than a broken link found elsewhere, and the agent recovered immediately by using the docs index.
  Event 38:

  ```text
  https://neon.com/docs/reference/api/create-project
  ```
  Event 39:

  ```text
  # Page Not Found `/docs/reference/api/create-project` does not exist in Neon documentation. Try the docs index to locate the correct URL
  ```

#### Blockers
- **No Neon API key or connection string available in sandbox**: The test environment contained zero Neon credentials (no NEON_API_KEY, no DATABASE_URL). This is a missing-credentials/test-environment limitation, not a product defect: Neon's API correctly requires auth (401 on unauthenticated projects call) and the console key page is the normal path to get one. The agent could not self-serve a key since Neon has no anonymous signup/token-issuance flow reachable via API alone, so it stopped and asked the user rather than fabricating success.
  Event 22:

  ```text
  --- search configs for neon key names (values redacted) ---
  --- env key-ish names ---
  CURL_CA_BUNDLE=<set>
  PI_GATEWAY_API_KEY=<set>
  GIT_CONFIG_KEY_0=<set>
  ```
  Event 33:

  ```text
  === API v2 projects endpoint (no auth) ===
  401
  ```
  Event 100:

  ```text
  To finish, give me either:
  - `NEON_API_KEY` (console → Settings → API keys) so I can run `npm run provision`, or
  - an existing `DATABASE_URL` so I can run `npm start`.
  ```

#### Suggested Changes
- **Add a redirect or alias for the create-project docs path**: Agent tried https://neon.com/docs/reference/api/create-project (a natural guess for the create-project reference page) and got a 404 pointing to the docs index instead of the actual page at /docs/reference/api/projects/create-project.md. Adding a redirect from the shorter, intuitive path to the real nested one would save a lookup step. Verify by curling the guessed path and confirming it 30x-redirects to the real page instead of returning the generic 404 index.
  Event 38:

  ```text
  https://neon.com/docs/reference/api/create-project
  ```
  Event 39:

  ```text
  # Page Not Found `/docs/reference/api/create-project` does not exist in Neon documentation.
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/4e045c66-43d9-45a7-92a7-fb3cd752aec7) · [Read transcript](https://www.ax-check.com/neon.com/sessions/kimi.json)
Final output lists Free/Launch/Scale/Business plan figures (storage, compute hours, per-CU pricing) and flags the assumption explicitly: 'figures from my training data — verify at neon.tech/pricing.'
#### End-to-end onboarding
- **Onboarding needs a login**: The agent never obtained Neon credentials and never reached api.neon.tech. It searched the environment for existing keys, found none, then hit DNS resolution failure when trying to reach the Management API. It wrote an example script and README but never executed an authenticated API call or database operation. The session ended with the agent explicitly asking the product owner to supply a NEON_API_KEY.
  Event 11:

  ```text
  PI_GATEWAY_API_KEY=<set>
  GIT_CONFIG_KEY_0=<set>
  total 28
  ```
  Event 23:

  ```text
  * Could not resolve host: api.neon.tech
  * Closing connection
  ---
  302
  
  ```
  Event 40:

  ```text
  No credentials — this environment has no NEON_API_KEY, and account signup requires email/OAuth I can't do autonomously.
  ```

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

#### Blockers
- **Missing Neon API key blocks any authenticated action**: No NEON_API_KEY was present in the environment, and the agent correctly identified that Neon account signup requires human email/OAuth steps it cannot perform. This is a credentials gap inherent to the test environment, not a product defect.
  Event 11:

  ```text
  PI_GATEWAY_API_KEY=<set>
  GIT_CONFIG_KEY_0=<set>
  total 28
  ```
  Event 40:

  ```text
  No credentials — this environment has no NEON_API_KEY, and account signup requires email/OAuth I can't do autonomously.
  ```
- **Sandbox cannot resolve api.neon.tech**: Even setting credentials aside, curl against the Management API host failed DNS resolution, while the marketing site (neon.tech) and console (console.neon.tech) both returned normal redirect codes. This is a test-environment network restriction rather than a product issue, since other Neon subdomains resolved fine.
  Event 23:

  ```text
  * Could not resolve host: api.neon.tech
  * Closing connection
  ---
  302
  
  ```
  Event 17:

  ```text
  000
  308
  
  ```

#### Suggested Changes
- **Document a non-interactive API key provisioning path for automated/sandbox use**: The agent noted Neon requires console signup (email/OAuth) to get an API key, which blocks any non-interactive agent from self-provisioning. If a CLI- or token-exchange-based signup flow exists, surface it prominently in the API docs or quickstart so automated clients aren't forced through the web console.
  Event 40:

  ```text
  account signup requires email/OAuth I can't do autonomously
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/16880994-baff-4550-bf8f-b8d24367aea7) · [Read transcript](https://www.ax-check.com/neon.com/sessions/qwen.json)
Final output gives a pricing table (Free/Launch/Scale, CU-hour and GB-month rates) tied to explicit assumptions (plan tier, usage meters, Neon's own sample workloads of 140 vs 3,000 CU-hrs) and flags 'worth re-checking — these numbers move.'
#### End-to-end onboarding
- **Onboarding needs a login**: No NEON_API_KEY or DATABASE_URL existed anywhere in the sandbox. The agent confirmed the gate was real (not a bug) by showing the Neon API rejects both keyless and fake-key requests with genuine auth errors, and by pointing its driver at a fake host to get a real 'password authentication failed' response. But no valid credentials were ever obtained and no query ran against an actual database, so this is not a successful authenticated operation. Session ends asking the product owner to manually create an API key via the console.
  Event 6:

  ```text
  ---ENV---
  ---ALL KEYS---
  AI_AGENT
  ALG_INFERENCE_MODEL...
  ```
  Event 24:

  ```text
  {"request_id":"0cf26fac-73ae-487a-8cf0-10a4de516b0b","code":"","message":"supplied credentials do not pass authentication"}
  ```
  Event 116:

  ```text
  Query failed: password authentication failed for user 'nouser'
  ```
  Event 128:

  ```text
  API keys require a human console signup — I can't self-serve one. This is the one step I can't do for you.
  ```

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

#### Blockers
- **No self-serve Neon API key or database credential in sandbox**: The sandbox environment contains no NEON_API_KEY or DATABASE_URL. This is a missing-credentials limitation of the test environment, not a product defect: Neon's API correctly requires a key that can only be generated through human console signup. As a result the agent could write and statically validate code but never execute a real query or provisioning call against Neon.
  Event 6:

  ```text
  ---ALL KEYS---
  AI_AGENT
  ALG_INFERENCE_MODEL
  ALG_INFERENCE_PROVIDER...
  ```
  Event 24:

  ```text
  {"request_id":"a1a5d1bf-88d7-43ce-b3a2-32120233dabe","code":"","message":"supplied credentials do not pass authentication"}
  ```
  Event 128:

  ```text
  Don't treat it as proven-working.
  ```
- **neonctl package no longer ships as an importable SDK**: The agent initially installed neonctl expecting a usable provisioning library, but found v8 is only a CLI shim with no module entry point, causing a MODULE_NOT_FOUND crash on require and a second ERR_MODULE_NOT_FOUND on ESM import. This is an agent/assumption error (did not check the package shape before using it) that was self-corrected by switching to @neondatabase/api-client.
  Event 32:

  ```text
  Error: Cannot find module 'neonctl'
  ```
  Event 37:

  ```text
  Error: Cannot find package '/sandbox/repo/neon-example/node_modules/neonctl/index.js' imported from /sandbox/repo/neon-example/[eval1]
  ```

#### Suggested Changes
- **Clarify in the neonctl package that it is CLI-only, not a library**: The agent spent multiple tool calls discovering that neonctl v8 (package.json marks it 'Compatibility command for the Neon CLI') cannot be required or imported as a module, and that @neondatabase/api-client is the actual provisioning SDK. Add a note to the neonctl README/npm page pointing developers to @neondatabase/api-client for programmatic project creation. Verify by having a fresh agent attempt to require neonctl and confirming docs pre-empt the failure.
  Event 41:

  ```text
  "name": "neonctl",
    "version": "8.0.9",
    "description": "Compatibility command for the Neon CLI",
  ```

### Task given to each agent
Help me build a simple example using Neon. 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 (200) when requested with Accept: text/markdown.
  ```

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

  ```text
  llms.txt (200) indexes docs by section with key pages, sub-indexes, and quickstart commands.
  ```

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

  ```text
  llms.txt gives starting guidance: sign up, install CLI, run neon init, and .md access note.
  ```

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

  ```text
  llms.txt links API reference, MCP server, and Agent Skills docs.
  ```

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

  ```text
  Homepage serves text/markdown, and docs pages are published as .md (e.g. CLI quickstart).
  ```

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

  ```text
  CLI quickstart gives concrete install, auth, link, and first-command steps.
  ```

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

  ```text
  CLI quickstart markdown is 1659 tokens, well under the 8000-token budget.
  ```

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

  ```text
  Markdown homepage links to .md docs routes; docs links remain reachable in both formats.
  ```

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

  ```text
  llms.txt gives install, auth, init, and branch-first workflow steps; SKILL.md adds full setup detail.
  ```

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

  ```text
  CLI quickstart and full-backend quickstart install/next-step links fetched successfully (200).
  ```


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

  ```text
  llms.txt and docs index link a full-backend quickstart and a Neon CLI quickstart with concrete steps.
  ```

- **Pass** — Installation commands are extractable

  ```text
  Install commands extractable: npm i -g neon, brew install neonctl, bun install -g neon, npx neon.
  ```

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

  ```text
  Quickstart and CLI pages show inline code examples without interaction; full-backend guide has TypeScript/SQL blocks.
  ```

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

  ```text
  Prerequisites (Node.js 20.19+) and auth boundaries (neon login, NEON_API_KEY, API key creation) are explicit.
  ```


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

  ```text
  Pricing page renders full plan table and billing units as static Markdown, no interaction needed.
  ```

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

  ```text
  Concrete prices stated: $0.106/CU-hour, $0.35/GB-month, $1.50/branch-month, Free $0.
  ```

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

  ```text
  Units defined (CU-hour, GB-month, branch-month) with per-plan limits and allowances.
  ```

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

  ```text
  3 of 3 sessions were judged on pricing; 0 fell short. DeepSeek V4.1 Flash: Final output gives Free/Launch/Scale tier prices with explicit assumptions (CU-hour metering, scale-to-zero, per-org billing, demo fits in Free tier). Kimi K3: Final output lists Free/Launch/Scale/Business plan figures (storage, compute hours, per-CU pricing) and flags the assumption explicitly: 'figures from my training data — verify at neon.tech/pricing.' Qwen 3.8 Max: Final output gives a pricing table (Free/Launch/Scale, CU-hour and GB-month rates) tied to explicit assumptions (plan tier, usage meters, Neon's own sample workloads of 140 vs 3,000 CU-hrs) and flags 'worth re-checking — these numbers move.' This behavioural item does not affect the fast grade.
  ```


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

  ```text
  Neon API reference and OpenAPI 3.0 spec at /api_spec/release/v2.json are linked from llms.txt.
  ```

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

  ```text
  Neon MCP Server documented with hosted URL, OAuth/API key auth, tool categories, and registry manifest.
  ```

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

  ```text
  CLI install documented via npm, Homebrew, bun, binaries, and npx across install and quickstart pages.
  ```

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

  ```text
  Registry lookup for npm:neon returned HTTP 200, confirming the Neon CLI package resolves.
  ```

- **Pass** — Agent skills are published

  ```text
  Agent skills published: SKILL.md served at .well-known and installable via neon skills.
  ```



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