OAuth Readiness
Docs & knowledge base·www.notion.com·generated live by the agent, 2026-10-30

Notion

Notion OAuth is moderate in difficulty. You create a free "public connection" in the Notion Developer portal, and there are no OAuth scopes to justify, only capabilities set on the connection. Your own workspace can connect in under an hour. The main catch is that the Authorization URL only appears after you submit the connection for review, and Notion does not say how long that review takes. A Marketplace listing is optional and takes 5-10 business days according to Notion.

Difficulty
moderate
First token
30-60 min
Real users
1-3 weeks
Cost
free

Review: The public connection must be submitted for review before its Authorization URL is issued; the Marketplace listing review is optional.

Timing: Depends on how long the unexplained public-connection review takes. An optional Marketplace listing adds 5-10 business days plus a 512px logo.

Cost: No fee is mentioned for public connections or Marketplace listings. Rate limits depend on each clinic's Notion plan.

Verdict evidence sourceds1s2

Before you start

Iskaria readiness: 5 of 7 profile items in place
edit profile
  • for buildNotion workspace that you own (as workspace owner) to create the connection ininferreds1
  • for buildCompany name✓ Iskaria has itinferreds5
  • for buildWebsite, privacy policy and terms URLs✓ Iskaria has itinferreds5
  • for buildSupport email (currently a personal address; a shared mailbox is recommended)✓ Iskaria has itinferreds5
  • for buildRedirect URIs✓ Iskaria has itsourceds1
  • for launchSquare logo/icon PNG (missing: no 512px export yet)✓ Iskaria has itsourceds2
  • for launchLegal entity name (missing)✗ missing in profileinferreds2
  • for launchShared support mailbox (missing)✗ missing in profileinferred
Test mode:not availableinferreds1s2

No documented test mode or user cap. "Selected workspaces only" installation scope is the nearest thing to a restricted mode, but you cannot change it later and it rules out a Marketplace listing.

Who does what

Agentcan do for you
  • Implement the authorize, token and refresh flow and 429 handling
  • Draft listing copy, tags and a page-sharing onboarding guide
  • Try dynamic client registration against the MCP server
Youmust take over
  • Own the workspace and log in to the Developer portal
  • Copy and store the client secret
  • Export the 512px logo and set up the legal entity
  • Submit the connection for review and, optionally, the Marketplace listing

Steps

Buildcreate the app and credentials
  1. 1Log in and create a public connectionYou10 minsourceds1s2

    Sign in to the Developer portal as the workspace owner, choose "create a new public connection", and set the installation scope to "Any workspace". This setting cannot be changed later.

    https://app.notion.com/developers/connections
    NameIskaria
    Company nameIskaria
    Websitehttps://iskaria.com/
    Privacy policyhttps://iskaria.com/privacy
    Terms of usehttps://iskaria.com/terms
    Support emailibrahim@iskaria.com
    Installation scopeAny workspace
  2. 2Configure OAuth redirect URIs and capabilitiesAgent drafts, you submit5 minsourceds1

    Under OAuth configuration, add both redirect URIs with {provider}=notion. Turn on these capabilities: read, update and insert content, read and insert comments, and user info without email.

    https://app.notion.com/developers/connections
    Redirect URIs["https://app.iskaria.com/api/oauth/{provider}/callback","http://localhost:3000/api/oauth/{provider}/callback"]https://app.iskaria.com/api/oauth/notion/callback and the localhost URI (whether localhost is accepted is unverified)
    Capabilities{"google":"Read Search Console, GA4 and Business Profile data for a clinic's own properties (webmasters.readonly, analytics.readonly, business.manage)","gmail":"Draft and send patient follow-up emails from the clinic's mailbox","meta":"Reply to WhatsApp, Instagram and Messenger messages for a clinic; publish the clinic's own posts","slack":"Post lead alerts and daily summaries into the clinic team's Slack","github":"Developer tooling: open issues/PRs from voice-note tasks","hubspot":"Sync leads and bookings into the clinic's CRM","default":"Let the clinic's AI assistant read and act on the clinic's own data in this app"}
  3. 3Store client ID and secret server-sideYou5 minsourceds1

    Copy the client ID and client secret from the Configuration tab into the server's encrypted secret store. Never put them in git or the browser.

  4. 4Implement OAuth code exchange and refreshAgent2-3 hsourceds1s3s9

    Redirect users to https://api.notion.com/v1/oauth/authorize with client_id, redirect_uri, response_type=code, owner=user and state. Exchange the code at POST https://api.notion.com/v1/oauth/token using Basic auth (CLIENT_ID:CLIENT_SECRET). Store the access_token and refresh_token per tenant, and handle 429 responses using the Retry-After header. Hard-code the endpoints, because the REST API has no discovery document.

Testworks for you and test users
  1. 5Test with your own workspaceYou20 minsourceds1s6

    Run the flow, pick pages in the page picker, and confirm the agent can read and write only those pages. Also test a reauthorization by the same user.

Launchreview and approval for real users
  1. 6Draft listing copy and export a 512px logoAgent drafts, you submit1 hsourceds2

    The agent drafts the description, category and tags and an onboarding guide that tells clinics which pages to share. You review the draft and export the Systems Mark logo as a PNG.

  2. 7Submit public connection for reviewYou10 minsourceds1

    Submit the connection. The Authorization URL field fills in only after submission. Wait for the outcome, which has no documented timeline.

  3. 8Optional: submit Marketplace listingYou20 minsourceds2

    Create a listing linked to the public connection. Notion says it replies by email within 5-10 business days.

    https://developers.notion.com/guides/get-started/marketplace-listing

Scopes an agent typically needs

ScopeUsed forReview tierEvidence
Read contentAgent reads the clinic pages and databases that were shared with itbasicinferreds4
Update contentEdit lead and booking recordsbasicinferreds4
Insert contentCreate reports and new entriesbasicinferreds4
Read/insert commentsLeave notes for staffbasicinferreds4
User information without emailAttribute actions while minimising data collectedbasicinferreds4

What can slow you down or block approval

can block launchAuthorization URL only after submitting for reviewsourceds1

The Authorization URL field fills in only after the connection is submitted for review. It is unclear whether users outside your workspace can install before that.

Workaround: Submit early, once the redirect URIs and capabilities are final.

slows you downInstallation scope is permanentsourceds1s2

Choosing "Selected workspaces only" permanently prevents a Marketplace listing.

Workaround: Choose "Any workspace".

slows you downAgent sees only the pages users picksourceds1s6

A clinic that shares nothing in the page picker gives the agent nothing to work with. Reauthorization by the same user skips the picker, and other users can reach a dead end.

Workaround: Add in-app guidance on which pages to share.

infoPlan-based rate limits and Free block limitsourceds3

Limits are 600 requests/min on Business and Enterprise and 180/min on other plans, plus a shared workspace limit and about 3 requests/s for data-source queries. A Free-plan block limit applies from 2026-09-08, so agent writes may fail on Free workspaces.

can block launchMissing logo, legal entity and shared mailboxinferreds2

There is no 512px PNG logo, so a Marketplace listing is blocked. The missing legal entity could cause brand or trademark rejections. Support currently goes to a personal email address.

Workaround: Export the logo, register the legal entity, and create support@iskaria.com.

infoMCP server supports dynamic client registrationtesteds9s4

mcp.notion.com advertises a /register endpoint with PKCE S256, so an agent may be able to register an OAuth client itself without creating an app manually. This works only on the hosted MCP server, not the REST API (api.notion.com has no discovery metadata). Admins can block MCP servers.

What we checked

ClaimHowResult
Marketplace review takes 5-10 business daysmarketplace-listing FAQ onlyunverified
Rate limits are 600/min (Business/Enterprise) and 180/min (other plans), not a flat 3 rpscompared request-limits.md with truto.onecorrected
A Marketplace listing is optional for OAuth usemarketplace FAQ plus older authorization referenceconfirmed
No documented test mode or user capsearched both auth docsunverified
MCP server supports dynamic client registrationprobe_oauth fetched mcp.notion.com metadata (HTTP 200)confirmed
Still uncertain
  • What "submitted for review" requires before the Authorization URL works, and how long it takes.
  • Exact fields in the public-connection form (from older docs).
  • Access-token lifetime and refresh-token rotation rules.
  • The capability list and whether any capability gets extra review.
  • Whether localhost redirect URIs and non-exact matches are accepted.
  • Whether Enterprise admins can restrict which public connections members install.
  • Data residency and compliance for UAE/Kuwait clinic patient data stored in Notion.
  • Marketplace 5-10 business days is Notion's own figure; no real-world reports were found.
  • A third-party blog cites an older flat 3 requests/s limit; Notion's current docs (600 or 180 per minute) take precedence.

Sources

  1. s1
    Authorization (connections, PATs, OAuth flow) · official-docs · accessed 2026-10-30
    “The Authorization URL field populates after a public connection is submitted for review”
  2. s2
    List on the Marketplace · official-docs · accessed 2026-10-30
    “expect to hear back from our team within 5-10 business days via email”
  3. s3
    Request limits · official-docs · accessed 2026-10-30
    “All other plans | 180 requests per minute (an average of 3 per second)”
  4. s4
    Get started with Notion MCP · official-docs · accessed 2026-10-30
    “A workspace owner can create an MCP token with New MCP token in the Developer portal.”
  5. s5
    Authorization (older integration wording) · official-docs · accessed 2026-10-30
  6. s6
    Changelog: reauthorization · official-docs · accessed 2026-10-30
    “The access token received at the end of reauthorization will be the same as the initial access token.”
  7. s7
    Changelog: public OAuth integrations · official-docs · accessed 2026-10-30
  8. s8
    Notion API architecture guide (truto.one) · community · accessed 2026-10-30
  9. s9
    probe_oauth on mcp.notion.com · our-test · accessed 2026-10-30
    “registration_endpoint /register; PKCE S256; api.notion.com discovery returns 400”
Something wrong or outdated? Re-run the agent for Notion
Notion OAuth guide