{
 "slug": "notion",
 "name": "Notion",
 "url": "https://notion.com",
 "domain": "notion.com",
 "category": "workspace",
 "category_name": "Docs and workspace",
 "tested_at": "2026-10-01",
 "run": "20261001T125555Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261001T125555Z",
   "date": "2026-10-01",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": null,
    "driver": null,
    "signed": true,
    "inbox": [
     "matfy.com"
    ],
    "robots": "start"
   },
   "drives": 2
  }
 ],
 "level": 1,
 "level_name": "Needs a person",
 "level_selfhost": null,
 "entry": "closed",
 "door": {
  "passed": 0,
  "tries": 2,
  "self_start": false
 },
 "badges": [],
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "card_checkout"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Find",
   "state": "yes",
   "text": "Docs agents can read: llms.txt, an OpenAPI and an MCP server",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ]
  },
  {
   "key": "access",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "card_checkout",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account",
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "person",
   "label": "A person sets it up",
   "routes": [],
   "minutes": null,
   "core": null
  }
 ],
 "minutes": null,
 "next": {
  "to": 2,
  "text": "Next: let an agent sign up on its own"
 },
 "stop": "signup",
 "core": null,
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 100,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 100,
  "security": null,
  "standards": []
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [],
 "surface_audit": null,
 "coverage_core": null,
 "after_wall": null,
 "coverage_source": "reported",
 "driver": null,
 "methodology": 15,
 "rules_date": "2026-10-15",
 "engine": {
  "runner": "omp",
  "model": null,
  "driver": null,
  "signed": true,
  "inbox": [
   "matfy.com"
  ],
  "robots": "start"
 },
 "same_level_drives": 2,
 "drives": 2,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": null,
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "closed"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-12"
  },
  "browser": {
   "state": "unknown",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "developers.notion.com/llms.txt with a .md copy of every page, OpenAPI at /openapi.json (48 paths), CLI, MCP and webhook docs."
  },
  "signup": {
   "status": "blocked",
   "note": "No documented headless sign-up. In the browser the form showed no visible challenge, and the first submit said a code was sent. Every later request (resend, /login, and a second fresh address) got 400 'Signup is not allowed.' from the server, shown as 'There was a problem signing up.'"
  },
  "verify": {
   "status": "",
   "note": "Mail not received: no code reached the agent's inbox in about 10 minutes. A resend was refused by the server, so only one code was ever requested. The cause of the missing mail may be on either side.",
   "reached": false
  },
  "credentials": {
   "status": "",
   "note": "Every documented route needs a logged-in user in a browser: PATs in the Developer portal (Free plan: workspace owners only), internal connections, `ntn login --no-browser` (device URL + `ntn login poll`), MCP OAuth. MCP dynamic client registration itself worked headless. Not reached because there was no account.",
   "reached": false
  },
  "first_call": {
   "status": "",
   "note": "Without a token the API returns clear 401 JSON. No authenticated call was made.",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "No token, nothing created.",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P2",
   "rails": [
    "Stripe in-app checkout (card, Apple Pay, Google Pay)"
   ],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "free tier",
   "note": "No 402/x402/MPP/L402 on api.notion.com; x402./mpp./agents. subdomains do not resolve; no /.well-known/ucp, no x-payment-info, no Notion listing in x402 Bazaar or mpp.dev. Help center says upgrades are made in Settings and paid by card/Apple Pay/Google Pay through Stripe; MCP get-tool-access hands out an upgrade_url. is inferred from docs and was not reached without an account.",
   "reached": false
  },
  "cancel": {
   "status": "",
   "note": "No plan was started. Help center places downgrade in the web UI (Settings, change plan); no billing API. from docs, untested.",
   "docs_grade": "",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No account was created. Help center: Settings -> your name -> Delete my account, confirm by typing the email. No API route.",
   "account": false,
   "reached": false
  }
 },
 "routes": [],
 "checkout": null,
 "docs": null,
 "claims": null,
 "pay_options": {
  "checked": "2026-10-01",
  "source": "drive",
  "options": [
   {
    "id": "stripe-elements",
    "name": "Stripe card form",
    "kind": "checkout",
    "first_party": false,
    "lead": false,
    "networks": [],
    "testnet": false
   }
  ],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": null,
   "card_required": null,
   "free_plan": true
  },
  "owner_fixes": [
   {
    "title": "Accept x402 or MPP on your API",
    "how": "Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card."
   },
   {
    "title": "List your plans on Stripe Projects",
    "how": "Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev)."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": true,
  "cli": true,
  "sdk": true,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": false
 },
 "surface_notes": {},
 "can_do": [
  "Read Notion's complete developer docs, OpenAPI spec and llms.txt without an account",
  "Register itself as an MCP OAuth client at mcp.notion.com without a person",
  "Install the ntn CLI and start a device-code login that a person then approves"
 ],
 "cannot_do": [
  {
   "what": "Create a Notion account",
   "why": "Sign-up is browser-only; the server answered 'Signup is not allowed.' for both addresses after the first code request, and that code never arrived."
  },
  {
   "what": "Get an API token or MCP grant",
   "why": "PATs, connections, ntn login and MCP OAuth all need a logged-in user approving in a browser."
  },
  {
   "what": "Create, read or edit pages and databases",
   "why": "No account, so no credentials."
  },
  {
   "what": "Buy, downgrade or delete via API",
   "why": "Billing and account deletion are web UI only (help center); no billing API, no agent payment rail."
  }
 ],
 "blockers": [
  "Server-side refusal 'Signup is not allowed.' (signup_generic_error) on sendTemporaryPassword from our datacenter browser",
  "First verification email never arrived",
  "No headless route to a first credential"
 ],
 "tips_for_owner": [
  "Tell a refused sign-up why (e.g. 'sign-ups from this network need review') instead of 'There was a problem signing up.'; a generic error leaves an agent guessing whether to retry",
  "Offer an agent-friendly sign-up path that ends in a PAT, e.g. a device-code flow that also creates the account, or a verified-agent lane for Web Bot Auth signed traffic",
  "Let the MCP OAuth consent flow create a fresh Free workspace for a new email, so one human approval gives an agent everything",
  "Expose plan upgrade/downgrade through the API or MCP (the upgrade_url is a good start) or a machine payment rail",
  "Document account deletion in the API or let the CLI do it"
 ],
 "tips_for_agents": [
  "Use the hosted MCP server (mcp.notion.com/mcp, OAuth with dynamic client registration) or a PAT; the REST API with Notion-Version 2026-03-11 is fully described in /openapi.json",
  "Read docs as markdown: append .md to any developers.notion.com page, start from /llms.txt",
  "Getting in needs a human: let them sign up and either create a PAT or approve `ntn login --no-browser` / MCP OAuth, then run headless",
  "Call notion-get-tool-access first on MCP to learn which tools the workspace plan allows",
  "From datacenter IPs, sign-up may be refused with a generic error; don't retry in a loop"
 ],
 "selfhost": null,
 "summary": "Notion has an excellent agent surface on paper: REST API with OpenAPI, the ntn CLI, an official hosted MCP server with dynamic client registration, webhooks and markdown docs with llms.txt. The agent could not get in: sign-up is browser-only, the first verification code never arrived, and every later request, including one from a fresh address, got 'Signup is not allowed.' from the server. No core capability could be exercised.",
 "wall": "Sign-up refused: 'Signup is not allowed'",
 "plan_scope": "",
 "robots_stop": null,
 "robots": null,
 "plain": {
  "summary": "Notion lets a developer read full API docs and even register an app client without logging in, but actually signing up for an account only works in a browser, and Notion's server refused every sign-up attempt as not allowed. Without an account, the agent could not get a key and could not create or edit any pages or databases.",
  "can_do": [
   "Read all of Notion's developer documentation and technical reference without an account",
   "Register itself as a connected app, though a person still has to approve it",
   "Start a command-line login process that a person must finish"
  ],
  "cannot_do": [
   {
    "what": "Create a Notion account",
    "why": "Sign-up only works in a browser and the server refused it outright."
   },
   {
    "what": "Get a working API key",
    "why": "Every way to get one requires an already logged-in person."
   },
   {
    "what": "Create or edit any pages, databases, or content",
    "why": "No account means no credentials to do anything."
   },
   {
    "what": "Pay for, downgrade, or delete a plan",
    "why": "These are only available through Notion's website, not automatically."
   }
  ]
 },
 "plan_gated": [
  {
   "capability": "AI search across connected apps",
   "plan": "Business with Notion AI",
   "evidence": "MCP supported-tools docs: ai_search upgrade_required/plan_required below Business"
  },
  {
   "capability": "Notion Agent / Custom Agents sessions",
   "plan": "Business; Custom Agents $10 per 1,000 credits",
   "evidence": "notion.com/pricing"
  },
  {
   "capability": "AI meeting notes",
   "plan": "Business",
   "evidence": "notion.com/pricing"
  },
  {
   "capability": "Admin API",
   "plan": "Enterprise",
   "evidence": "developers.notion.com/reference/admin/intro.md"
  },
  {
   "capability": "Upgrade plan",
   "plan": "paid",
   "evidence": "help/upgrade-or-downgrade-your-plan"
  }
 ],
 "reply": null,
 "capabilities": [
  {
   "group": "Pages & content",
   "capability": "Create a page",
   "weight": "core",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Pages & content",
   "capability": "Read a page (properties, blocks, markdown)",
   "weight": "core",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Pages & content",
   "capability": "Edit page content (blocks or markdown)",
   "weight": "core",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Pages & content",
   "capability": "Update page properties, title, icon, cover",
   "weight": "core",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Pages & content",
   "capability": "Trash and restore a page",
   "weight": "core",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Pages & content",
   "capability": "Move a page",
   "weight": "secondary",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Pages & content",
   "capability": "Duplicate a page",
   "weight": "peripheral",
   "plan": "free",
   "source": "https://developers.notion.com/guides/mcp/mcp-supported-tools.md"
  },
  {
   "group": "Databases",
   "capability": "Create a database / data source with schema",
   "weight": "core",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Databases",
   "capability": "Add and update rows in a database",
   "weight": "core",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Databases",
   "capability": "Query, filter and sort a data source",
   "weight": "core",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Databases",
   "capability": "Change a data source schema",
   "weight": "secondary",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Databases",
   "capability": "Create and manage database views",
   "weight": "secondary",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Databases",
   "capability": "Create pages from data source templates",
   "weight": "peripheral",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Search",
   "capability": "Search pages and data sources by title",
   "weight": "core",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Search",
   "capability": "AI search across Notion and connected apps",
   "weight": "secondary",
   "plan": "paid",
   "source": "https://developers.notion.com/guides/mcp/mcp-supported-tools.md"
  },
  {
   "group": "Collaboration",
   "capability": "Create, list, update and delete comments",
   "weight": "secondary",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Collaboration",
   "capability": "List users / retrieve self",
   "weight": "secondary",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Collaboration",
   "capability": "Invite a teammate / share a page",
   "weight": "secondary",
   "plan": "free",
   "source": "https://www.notion.com/help"
  },
  {
   "group": "Files",
   "capability": "Upload a file and attach it to a page",
   "weight": "secondary",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Files",
   "capability": "Import an external file by URL",
   "weight": "peripheral",
   "plan": "free",
   "source": "https://developers.notion.com/openapi.json"
  },
  {
   "group": "Publishing",
   "capability": "Publish a page to the web / basic site",
   "weight": "peripheral",
   "plan": "free",
   "source": "https://www.notion.com/pricing"
  },
  {
   "group": "Forms",
   "capability": "Create a basic form",
   "weight": "peripheral",
   "plan": "free",
   "source": "https://www.notion.com/pricing"
  },
  {
   "group": "Automation",
   "capability": "Webhooks on page/database/comment events",
   "weight": "secondary",
   "plan": "free",
   "source": "https://developers.notion.com/reference/webhooks.md"
  },
  {
   "group": "Automation",
   "capability": "Deploy Notion Workers (syncs, tools, webhooks)",
   "weight": "peripheral",
   "plan": "free",
   "source": "https://www.notion.com/pricing (Workers beta)"
  },
  {
   "group": "AI",
   "capability": "Notion Agent / Custom Agents: start a session and read reply",
   "weight": "secondary",
   "plan": "paid",
   "source": "https://www.notion.com/pricing (Business; Custom Agents billed by credits)"
  },
  {
   "group": "AI",
   "capability": "AI meeting notes: create and query",
   "weight": "peripheral",
   "plan": "paid",
   "source": "https://www.notion.com/pricing (Business)"
  },
  {
   "group": "AI",
   "capability": "Download agent skills / plugins",
   "weight": "peripheral",
   "plan": "free",
   "source": "https://developers.notion.com/reference/agent-skills/list-skills-plugins.md"
  },
  {
   "group": "Account",
   "capability": "Create a personal access token / connection",
   "weight": "core",
   "plan": "free",
   "source": "https://developers.notion.com/guides/get-started/personal-access-tokens.md"
  },
  {
   "group": "Account",
   "capability": "Upgrade or downgrade plan",
   "weight": "secondary",
   "plan": "paid",
   "source": "https://www.notion.com/help/upgrade-or-downgrade-your-plan"
  },
  {
   "group": "Account",
   "capability": "Export workspace",
   "weight": "peripheral",
   "plan": "free",
   "source": "https://www.notion.com/help"
  },
  {
   "group": "Account",
   "capability": "Delete account",
   "weight": "secondary",
   "plan": "free",
   "source": "https://www.notion.com/help/delete-your-account"
  },
  {
   "group": "Admin",
   "capability": "Admin API: legal holds, groups, PAT/MCP governance",
   "weight": "peripheral",
   "plan": "paid",
   "source": "https://developers.notion.com/reference/admin/intro.md (Enterprise)"
  }
 ],
 "attempts": [
  {
   "capability": "docs",
   "task": "Fetch llms.txt, .md docs and OpenAPI",
   "route": "api",
   "result": "done",
   "verified": true,
   "evidence": "developers.notion.com/llms.txt 200 text/plain (254 doc links); /openapi.json 200, 48 paths; every doc page has a .md twin (saved in docs/)",
   "notes": "www.notion.com/llms.txt also exists (product overview). openapi-undocumented.json and openapi-adminApi.json also listed."
  },
  {
   "capability": "pay discovery",
   "task": "Probe for 402 / agent payment rails",
   "route": "api",
   "result": "done",
   "verified": true,
   "evidence": "api.notion.com/v1/users 401 JSON 'Authorization header must use the format Bearer'; POST /v1/pages 401; x402./mpp./agents.notion.com do not resolve (curl 000); www.notion.com/.well-known/ucp 404 HTML; /auth.md and /SKILL.md redirect to app.notion.com and return 404 JSON 'File not found'; no x-payment-info in openapi.json; no x402/MPP/L402/USDC/ACP terms in docs",
   "notes": "Bazaar: only a third-party service that converts public Notion pages to markdown; mpp.dev/api/services: no Notion entry."
  },
  {
   "capability": "pay discovery",
   "task": "Find how a plan is bought",
   "route": "none",
   "result": "done",
   "verified": false,
   "evidence": "Pricing page: Free / Plus EUR9.50 / Business EUR19.50 / Enterprise contact sales. Help 'upgrade-or-downgrade-your-plan': pay by card, Apple Pay or Google Pay, processed by Stripe, in Settings. MCP docs: notion-get-tool-access returns upgrade_url / landing_page_url for gated tools.",
   "notes": "Not exercised: no account."
  },
  {
   "capability": "mcp",
   "task": "Register an MCP OAuth client (dynamic client registration)",
   "route": "mcp",
   "result": "done",
   "verified": true,
   "evidence": "/.well-known/oauth-authorization-server 200 JSON with registration_endpoint; POST mcp.notion.com/register 201-style JSON with client_id issued; /authorize 302 to api.notion.com/v1/oauth/authorize (needs logged-in user consent)",
   "notes": "Agent can register itself headless; user consent needs a browser login."
  },
  {
   "capability": "cli",
   "task": "Start ntn CLI login without a browser",
   "route": "cli",
   "result": "partial",
   "verified": true,
   "evidence": "npm install ntn -> ntn 0.23.14; `ntn login --no-browser` printed app.notion.com/workers/cli-login?verificationCode=... plus `ntn login poll`, with a hint telling agents to show the URL to the user",
   "notes": "Needs a logged-in human in a browser to approve; not completed without an account."
  },
  {
   "capability": "signup",
   "task": "Sign up with email the agent's inbox",
   "route": "browser",
   "result": "partial",
   "verified": false,
   "evidence": "app.notion.com/signup: no visible challenge (invisible hCaptcha + reCAPTCHA scripts present, visible_challenge false). After Continue the page said 'We sent a code to your inbox' (shot 002.png)",
   "notes": "No headless signup route is documented."
  },
  {
   "capability": "verify",
   "task": "Receive email verification code",
   "route": "none",
   "result": "failed",
   "verified": false,
   "evidence": "inbox read the agent's inbox: 'no mail' after 120 s and again later (about 6 min after the send in total)",
   "notes": "Mail not received; cause may be on either side."
  },
  {
   "capability": "signup",
   "task": "Resend code / retry sign-up for an inbox",
   "route": "browser",
   "result": "blocked",
   "verified": true,
   "evidence": "POST app.notion.com/api/v3/sendTemporaryPassword -> 400 UserValidationError, clientData.type signup_generic_error, debugMessage 'Signup is not allowed.'; UI: 'There was a problem signing up.' (shot 004.png)",
   "notes": "Same 400 from the /login page (shot 005.png)."
  },
  {
   "capability": "signup",
   "task": "Sign up with a second fresh address the agent's inbox",
   "route": "browser",
   "result": "blocked",
   "verified": true,
   "evidence": "getLoginOptions 200 then sendTemporaryPassword 400 'Signup is not allowed.' (signup_generic_error)",
   "notes": "Refused immediately for a never-used address, so the block is not specific to the first address. Likely risk scoring on IP, browser or email domain [INFERENCE]."
  },
  {
   "capability": "Create a page",
   "task": "Do it via MCP/API with a token",
   "route": "none",
   "result": "blocked",
   "verified": false,
   "evidence": "No account, so no PAT, connection token or MCP OAuth grant; unauthenticated API returns 401",
   "notes": "Not attempted beyond the 401: no credentials obtainable."
  },
  {
   "capability": "Read a page (properties, blocks, markdown)",
   "task": "Do it via MCP/API with a token",
   "route": "none",
   "result": "blocked",
   "verified": false,
   "evidence": "No account, so no PAT, connection token or MCP OAuth grant; unauthenticated API returns 401",
   "notes": "Not attempted beyond the 401: no credentials obtainable."
  },
  {
   "capability": "Edit page content (blocks or markdown)",
   "task": "Do it via MCP/API with a token",
   "route": "none",
   "result": "blocked",
   "verified": false,
   "evidence": "No account, so no PAT, connection token or MCP OAuth grant; unauthenticated API returns 401",
   "notes": "Not attempted beyond the 401: no credentials obtainable."
  },
  {
   "capability": "Update page properties, title, icon, cover",
   "task": "Do it via MCP/API with a token",
   "route": "none",
   "result": "blocked",
   "verified": false,
   "evidence": "No account, so no PAT, connection token or MCP OAuth grant; unauthenticated API returns 401",
   "notes": "Not attempted beyond the 401: no credentials obtainable."
  },
  {
   "capability": "Trash and restore a page",
   "task": "Do it via MCP/API with a token",
   "route": "none",
   "result": "blocked",
   "verified": false,
   "evidence": "No account, so no PAT, connection token or MCP OAuth grant; unauthenticated API returns 401",
   "notes": "Not attempted beyond the 401: no credentials obtainable."
  },
  {
   "capability": "Create a database / data source with schema",
   "task": "Do it via MCP/API with a token",
   "route": "none",
   "result": "blocked",
   "verified": false,
   "evidence": "No account, so no PAT, connection token or MCP OAuth grant; unauthenticated API returns 401",
   "notes": "Not attempted beyond the 401: no credentials obtainable."
  },
  {
   "capability": "Add and update rows in a database",
   "task": "Do it via MCP/API with a token",
   "route": "none",
   "result": "blocked",
   "verified": false,
   "evidence": "No account, so no PAT, connection token or MCP OAuth grant; unauthenticated API returns 401",
   "notes": "Not attempted beyond the 401: no credentials obtainable."
  },
  {
   "capability": "Query, filter and sort a data source",
   "task": "Do it via MCP/API with a token",
   "route": "none",
   "result": "blocked",
   "verified": false,
   "evidence": "No account, so no PAT, connection token or MCP OAuth grant; unauthenticated API returns 401",
   "notes": "Not attempted beyond the 401: no credentials obtainable."
  },
  {
   "capability": "Search pages and data sources by title",
   "task": "Do it via MCP/API with a token",
   "route": "none",
   "result": "blocked",
   "verified": false,
   "evidence": "No account, so no PAT, connection token or MCP OAuth grant; unauthenticated API returns 401",
   "notes": "Not attempted beyond the 401: no credentials obtainable."
  },
  {
   "capability": "Create a personal access token / connection",
   "task": "Create a PAT in the Developer portal",
   "route": "none",
   "result": "blocked",
   "verified": false,
   "evidence": "Docs: PATs are created at notion.so/developers/tokens by a logged-in workspace owner (Free plan: owners only); no account",
   "notes": ""
  },
  {
   "capability": "Delete account",
   "task": "Delete account",
   "route": "none",
   "result": "skipped",
   "verified": false,
   "evidence": "No account was created. Help 'delete-your-account': Settings -> your name -> Delete my account, confirm by typing email; no API route in openapi.json",
   "notes": ""
  }
 ],
 "stale": false,
 "icon": "/logos/notion.png",
 "monitored": false,
 "verdict": "Needs a person to sign up first: L1 · Needs a person. Notion's form showed no challenge and said a code was sent, but no code reached our agent's inbox, and a resend got \"Signup is not allowed.\" from the server; a second try from a fresh address got the same answer. The docs are strong regardless: an OpenAPI reference, a CLI and an official hosted MCP server with dynamic client registration, plus markdown pages for every doc. Without a token our agent made no call and did no work, so paying and deleting the account were never reached.",
 "page": "https://agentdrives.com/tools/notion?via=api"
}