Published 2026-09-21 · Tested 2026-08-19

Stytch

A-

Stytch received 7 PASS votes and passed 5 of five agent surface checks. The clearest finding came from the find the exact limits task.

Panel: GPT 5.6 Sol, Opus 5, DeepSeek v4F Battery: v1 Read as markdown (opens in a new tab)

Three AI models, GPT 5.6 Sol, Claude Opus 5, and DeepSeek v4 Flash, each read Stytch’s public documentation independently and attempted five first-hour developer jobs: build the first login, find the exact limits, recover from a 429, verify a user webhook, use the Node SDK.

No accounts, API calls, or code execution were used. Every verdict came from public pages and every published quotation passed a live verification check.

Freshness

How rechecks work
Category
Identity & auth
Tested
Quotes verified
Surface rechecked

No change since the test.

5 of 5 quoted passages still appear on the live pages.

Stytch Mintlify · published
A-

90.0% · 72/80 · AI Agent Readiness Score · reading 30 pts · surface 50 pts

llms.txt PASS
llms-full.txt PASS
markdown mirror PASS
MCP server PASS
docs AI PASS
Task GPT 5.6 SolOpus 5DeepSeek v4F Consensus
Build the first login PASSPARTIALPASS PASS
Find the exact limits PARTIALPASSPARTIAL PARTIAL
Recover from a 429 PARTIALPARTIALPASS PARTIAL
Verify a user webhook PARTIALPARTIALPARTIAL PARTIAL
Use the Node SDK PASSPASSPASS PASS

docs platform: Mintlify (unscored) · verified 2026-08-19

What to fix first

These 3 fixes could add up to 7 points to the AI Agent Readiness Score. The list ranks each fix by the points it would add. How the ranking works

  1. 1
    +3 points Verify a user webhook PARTIAL

    Found: The webhooks page defers signature verification and retry details to Svix docs and gives no verification code sample.

    Fix: Add the signing secret location, the Svix header names, a verification sample, and the retry schedule to the webhooks page.

    Evidence: stytch.com/docs/resources/workspace-management/webhooks (opens in a new tab)

  2. 2
    +2 points Find the exact limits PARTIAL

    Found: In the panel's reading, the rate limits page mixes second-to-day intervals with a top-of-the-hour rule. It also gives no environment for the email magic link limit.

    Fix: State when each interval resets, and say whether the email magic link limit applies in Test, Live, or both.

    Evidence: stytch.com/docs/resources/policies/platform/rate-limits (opens in a new tab)

  3. 3
    +2 points Recover from a 429 PARTIAL

    Found: The 429 page recommends exponential backoff but gives no per-limit wait time before a retry.

    Fix: On the 429 page, state when each rate limit resets and how long a client should wait before retrying.

    Evidence: stytch.com/docs/api-reference/consumer/api/errors/429 (opens in a new tab)

What the docs get right

  • Use the Node SDK: 3 PASS votes. One Node quickstart sends and authenticates the link, stores session_jwt, and passes documented parameter names to session authentication.
  • Build the first login: 2 PASS votes. One React page covers the public token, authorized domain, provider, UI, redirect route, and active-session lookup without a gap.
  • 5 of 5 agent surface checks. Present: llms.txt, llms-full.txt, markdown mirrors, an MCP server, docs AI.

Build the first login

PASS

PASS consensus from 2 PASS, 1 PARTIAL.

One React page covers the public token, authorized domain, provider, UI, redirect route, and active-session lookup without a gap. The React quickstart's config object passes products: [Products.emailMagicLinks, Products.oauth] with no emailMagicLinksOptions block, contradicting the configuration reference it links to, and three current pages initialize the same React client three different ways (createStytchClient(), new StytchClient(), new StytchUIClient()). Five-step guide for React covers project setup, SDK install, StytchProvider wrapping, StytchLogin component with config, and login-page routing with session redirect.

Find the exact limits

PARTIAL

PARTIAL consensus from 1 PASS, 2 PARTIAL.

The page supplies both quotas and identifiers, but its second-to-day intervals conflict with its universal “top of the hour” rule. All four items sit on one page and agree: 60/hour/Project for Test SMS OTP sends, one request per second per email across the Send, Login or Create, and Invite email magic link endpoints, non-rolling top-of-the-hour intervals, and identifiers stated per limit (phone number and phone number prefix for SMS OTP, project_id for Create User, email for magic links), with each number appearing exactly once across the whole llms-full.txt corpus. SMS OTP quota (60/hour/Project) is explicitly Test-only, but the email magic link limit (1 req/sec/email across Send/LoginOrCreate/Invite) is stated without environment qualification, forcing the reader to guess whether it applies to Test, Live, or both.

Recover from a 429

PARTIAL

PARTIAL consensus from 1 PASS, 2 PARTIAL.

The error pages cover diagnosis, backoff, and test values, but omit retry timing and explicit post-429 user messaging. Diagnosis via Dashboard Event logs, Test-environment guidance, and user-facing fallback-factor advice are all documented, but no Retry-After header or per-limit wait time is published, the 429 page's own sandbox-values link (/docs/docs#resources_testing) resolves to a login wall at https://stytch.com/docs/login?redirect=%2Fdocs, and the published backoff snippet disables the button with setOTPButtonDisabled(true) and re-enables it with setButtonDisabled(false), so as written the button never re-enables. Covers diagnosis (Event logs), exponential backoff with jitter (code example), test-environment/sandbox use, and user-facing UI cooldowns with alternative auth methods.

Verify a user webhook

PARTIAL

PARTIAL consensus from 3 PARTIAL.

Stytch covers registration, test delivery, and ordering, but signature verification and retry handling require linked Svix pages. Registration and ordering are documented well, but signature verification is delegated entirely off-site with no Stytch-side signing secret location, no svix-id/svix-timestamp/svix-signature header names and no code sample, the retry schedule is never stated (only Svix's 5-day auto-disable), and every trigger and payload example on the page is B2B (organization, member, saml_connection) with the Consumer user payload examples living instead on the migrations page at https://stytch.com/docs/resources/migrations/additional-migration-considerations, whose own "webhooks guide" link points at the API overview rather than the webhooks page. Registration, triggering, retries (5-day auto-disable), and ordering disclaimer are well-documented, but signature verification requires leaving Stytch docs to follow the Svix guide, the process is not self-contained.

Use the Node SDK

PASS

PASS consensus from 3 PASS.

One Node quickstart sends and authenticates the link, stores session_jwt, and passes documented parameter names to session authentication. One page carries the whole flow including the redirect-URL prerequisite, npm install, .env keys, per-step snippets and a full runnable file, and every parameter matches the API reference schemas: email, login_magic_link_url and signup_magic_link_url on login_or_create, token and session_duration_minutes on magic_links/authenticate, and session_jwt on sessions/authenticate. End-to-end Express example matches the documented API parameters: loginOrCreate takes email + optional redirect URLs, authenticate returns session_jwt, and the route guard uses sessions.authenticate with the stored JWT.

The receipt

Our current rate limit for our endpoints that send an SMS OTP code is 60/hour/Project in Test environments only.

The page supplies both quotas and identifiers, but its second-to-day intervals conflict with its universal “top of the hour” rule.

Agent surface notes

Initialize returned JSON-RPC protocol 2025-03-26 and Stytch Docs server information.

The live docs expose a public assistant panel.

Show the score

AI Agent Readiness Score 90.0%, grade A-

Paste this into a readme:

[![AI Agent Readiness Score 90.0%](https://docsforagents.com/badge/stytch.svg)](https://docsforagents.com/reports/stytch-docs-ai-agent-readiness/)

Method note

This is a reading test of public documentation, not an execution test. No accounts were created and no API calls were run. The AI Agent Readiness Score counts fifteen reading votes at PASS 2, PARTIAL 1, and FAIL 0, for 30 possible points. Five agent surface checks add 10 points each. The total is 80. Consensus chips show each row majority and do not affect scoring. The panel split on 3 of five tasks. Quotes shown here were re-fetched and confirmed verbatim on 2026-08-19.

Read the full methodology

Put another docs site through the battery.

Nominate a docs site