# AX Check: notion.com
Checked 2026-11-11.

Notion's pricing is clear, but agent-facing docs are barely there.
Pricing and plan limits are stated plainly on static pages. But 13 of 23 checklist items are unassessed—no quickstart, API reference, or code examples were fetched.

## Onboarding needs a login

## Coding sessions
All three independent sessions (DeepSeek V4.1 Flash, Kimi K3, Qwen 3.8 Max) completed and reported on pricing, each stating that API access is free on every plan with seats billed separately, and each citing per-seat monthly prices—though two noted the figures came from memory or were unverified rather than pulled from a live source.

### DeepSeek V4.1 Flash
[View public run](https://agents.withgauge.com/p/runs/b09abc29-f511-4569-a08c-f833bbe4a792) · [Read transcript](https://www.ax-check.com/notion.com/sessions/deepseek.json)
Said API use is free on all plans and only seats are billed. Named assumptions: about 3 requests/sec, internal vs. public integrations, and seat prices to verify. (seq 41)
#### End-to-end onboarding
- **Onboarding needs a login**: Agent found no Notion token in the environment, confirmed api.notion.com requires auth, and built a working SDK example script. It tested the script only with a deliberately fake token, which correctly returned 'unauthorized'. No real integration was ever created and no authenticated operation succeeded against the live Notion API. Session ends with the agent stating it is blocked on obtaining a real token from the user.
  Event 3:

  ```text
  env | grep -i -E 'notion|token|api_key' | sed 's/=.*/=<redacted>/'
  ```
  Event 38:

  ```text
  NOTION_TOKEN=secret_fake timeout 20 node notion-example.mjs whoami
  ```
  Event 41:

  ```text
  a real Notion integration token. I can't create the integration or authorize a workspace for you.
  ```

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

#### Blockers
- **No real Notion integration token available**: The sandbox had no Notion credentials and the agent has no way to self-serve one since Notion integration secrets must be created manually in the Notion UI. This is a normal human-login requirement for the product, not a product defect.
  Event 39:

  ```text
  message: 'API token is invalid.',
  ```
  Event 41:

  ```text
  I can't create the integration or authorize a workspace for you.
  ```
- **SDK import style mismatch with ESM**: The first version of the example script used a named import, which failed because the package is CommonJS and only exposes a default export. This was an agent authoring error, quickly self-corrected by switching to a default import with destructuring.
  Event 24:

  ```text
  SyntaxError: Named export 'Client' not found. The requested module '@notionhq/client' is a CommonJS module, which may not support all module.exports as named exports.
  ```

#### Suggested Changes
- **Document CommonJS default-import syntax for the Notion SDK under ESM**: The @notionhq/client package.json exposes only a main field with no exports map, causing a native ESM named import to fail with a SyntaxError on Node 22. Add an example in the SDK docs/README showing the default-import plus destructure pattern, and verify by running node --check on a quickstart snippet copied verbatim from the docs.
  Event 24:

  ```text
  SyntaxError: Named export 'Client' not found. The requested module '@notionhq/client' is a CommonJS module, which may not support all module.exports as named exports.
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/b9c859cd-ccdc-410b-b573-32e94fd3325b) · [Read transcript](https://www.ax-check.com/notion.com/sessions/kimi.json)
Gave per-user, per-month prices for each plan with monthly vs annual figures and stated that API access is free on all plans, so the Free plan covers this example. Figures were not sourced in-session. (seq 41)
#### End-to-end onboarding
- **Onboarding needs a login**: Agent never obtained real Notion credentials. It only tested connectivity (unauthenticated 401, then a dummy-token 'API token is invalid' error) and explicitly states no integration token exists and it cannot self-serve one because Notion requires a human to create an integration and manually click 'Connect to' on a page. No authenticated product operation (e.g. page creation) was ever performed against the real API.
  Event 13:

  ```text
  5.31.1
  401
  ```
  Event 39:

  ```text
  APIResponseError: API token is invalid.
  ```
  Event 41:

  ```text
  I have no Notion integration token, and I can't create a Notion account myself (signup requires email/Google auth and a workspace).
  ```

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

#### Blockers
- **No Notion integration token available**: Notion requires a human-created integration secret plus a manual UI step ('Connect to') to share a page with that integration. This is normal product auth behavior, not a defect, but it stopped the agent from completing a live authenticated call. The agent correctly identified this as a credentials gap rather than a code problem, and verified the rest of the pipeline (network reachability, SDK install, script logic) using a dummy token that correctly produced an API-level unauthorized error.
  Event 41:

  ```text
  I have no Notion integration token, and I can't create a Notion account myself (signup requires email/Google auth and a workspace).
  ```
  Event 39:

  ```text
  code: 'unauthorized',
          return new APIResponseError({
  APIResponseError: API token is invalid.
  ```
- **SDK import mismatch (CommonJS vs ESM)**: Initial script used a named import (import { Client } from "@notionhq/client") which failed because the SDK ships as CommonJS. This was an agent coding error, quickly self-corrected by switching to a default import plus destructuring.
  Event 31:

  ```text
  SyntaxError: Named export 'Client' not found. The requested module '@notionhq/client' is a CommonJS module, which may not support all module.exports as named exports.
  ```
  Event 35:

  ```text
  import notionhq from "@notionhq/client";
  const { Client } = notionhq;
  ```

#### Suggested Changes
- **Add a CommonJS/ESM import note to the Notion SDK quickstart**: The official @notionhq/client package is CommonJS and breaks a naive named ESM import (import { Client } from ...), forcing a default-import workaround. Add a one-line code sample in the SDK quickstart/README showing the correct `import notionhq from "@notionhq/client"; const { Client } = notionhq;` pattern for ESM users, and confirm the fix by running the quickstart snippet directly in a fresh ESM (.mjs) project.
  Event 31:

  ```text
  SyntaxError: Named export 'Client' not found. The requested module '@notionhq/client' is a CommonJS module, which may not support all module.exports as named exports.
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/d4f64f26-8e7a-4d9c-8ded-0b1f1e711f22) · [Read transcript](https://www.ax-check.com/notion.com/sessions/qwen.json)
Said API access is free on every plan and gave per-seat monthly ranges by plan (Free, Plus, Business, AI add-on) plus rate limits. The figures came from memory, not a checked source. (seq 24)
#### End-to-end onboarding
- **Onboarding needs a login**: Agent checked the sandbox for existing Notion credentials, found none, confirmed the Notion API returns 401 without auth, and explicitly stated it cannot create an integration token itself because that requires logging into a Notion account. It never obtained or used a real token, so no authenticated operation was ever performed.
  Event 4:

  ```text
  PI_GATEWAY_API_KEY=<set>
  GIT_CONFIG_KEY_0=<set>
  ```
  Event 9:

  ```text
  401
  v22.23.4
  10.9.8
  ```
  Event 24:

  ```text
  I **cannot make live API calls** — there's no `NOTION_API_KEY` in this environment, and I can't create one for you (that requires logging into your Notion account).
  ```

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

#### Blockers
- **No Notion API token available in sandbox**: The sandbox environment had no NOTION_API_KEY and the agent cannot self-serve one because creating a Notion integration requires logging into a Notion account, which is outside the agent's reach. This is a missing-credentials limitation of the test environment, not a product defect — Notion integrations are designed to require a human to create and share them deliberately.
  Event 4:

  ```text
  PI_GATEWAY_API_KEY=<set>
  GIT_CONFIG_KEY_0=<set>
  ```
  Event 24:

  ```text
  I **cannot make live API calls** — there's no `NOTION_API_KEY` in this environment, and I can't create one for you (that requires logging into your Notion account).
  ```

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

### Task given to each agent
Help me build a simple example using Notion. 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: B · 66/100 (provisional)
Grades come from completed site checks. Coding sessions and skipped checks do not affect the score.

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

  ```text
  Homepage returned text/html for a text/markdown request; no Markdown representation served.
  ```

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

  ```text
  Homepage returns HTML for Markdown requests; no compact Markdown guide representation is served.
  ```

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

  ```text
  llms.txt lists Core Products, Getting Started, Popular Resources and Developer Docs links.
  ```

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

  ```text
  llms.txt groups links under Getting Started, Popular Resources, Downloads and Contact sections.
  ```

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

  ```text
  llms.txt links Developers and Developer Docs for API resources.
  ```

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

  ```text
  No standalone compact guide page was fetched; only homepage and llms.txt are available.
  ```

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

  ```text
  No compact guide representation was retrieved, so token budget cannot be measured.
  ```

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

  ```text
  Homepage Markdown is unsupported, so link preservation across formats cannot be judged.
  ```

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

  ```text
  No compact agent guide was fetched; only homepage, llms.txt and signup pages are present.
  ```

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

  ```text
  Signup link from pricing resolves to app.notion.com/signup with HTTP 200.
  ```


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

  ```text
  llms.txt links Developers and Help Center, but no fetched quickstart page was captured.
  ```

- **Skipped** — Installation commands are extractable

  ```text
  No fetched install or CLI page; llms.txt only links Developers and Downloads.
  ```

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

  ```text
  No fetched docs or API page containing code examples was captured.
  ```

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

  ```text
  No fetched developer docs page stating prerequisites or API key auth was captured.
  ```


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

  ```text
  Pricing page renders plan cards and full feature table as static HTML, no interaction needed.
  ```

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

  ```text
  Free $0, Plus $10, Business $20 per member/month stated; Enterprise custom pricing.
  ```

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

  ```text
  Units explicit: per member/month, file upload 5MB/5GB, history 7/30/90 days, credits $10 per 1,000.
  ```

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

  ```text
  3 of 3 sessions were judged on pricing; 0 fell short. DeepSeek V4.1 Flash: Said API use is free on all plans and only seats are billed. Named assumptions: about 3 requests/sec, internal vs. public integrations, and seat prices to verify. (seq 41) Kimi K3: Gave per-user, per-month prices for each plan with monthly vs annual figures and stated that API access is free on all plans, so the Free plan covers this example. Figures were not sourced in-session. (seq 41) Qwen 3.8 Max: Said API access is free on every plan and gave per-seat monthly ranges by plan (Free, Plus, Business, AI add-on) plus rate limits. The figures came from memory, not a checked source. (seq 24) This behavioural item does not affect the fast grade.
  ```


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

  ```text
  No API reference or OpenAPI spec page was fetched; llms.txt only links to developers.notion.com.
  ```

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

  ```text
  No MCP server documentation was fetched in this bundle.
  ```

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

  ```text
  No CLI install guide was fetched; llms.txt lists only desktop and mobile apps.
  ```

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

  ```text
  No SDK package registry lookup was supplied for any Notion developer package.
  ```

- **Skipped** — Agent skills are published

  ```text
  No agent skills documentation was fetched in this bundle.
  ```



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