# Persona docs: AI Agent Readiness Score 81.2% (B-)

**81.2% · 65/80 · AI Agent Readiness Score · 25/30 reading points · 40/50 agent surface points**

Persona received 10 PASS votes and passed 4 of five agent surface checks. The clearest finding came from the find the exact limits task.

- Tested: 2026-09-22
- Published: 2026-09-22
- Battery: v1
- Scoring: reading 30 pts · surface 50 pts
- Docs: https://docs.withpersona.com/getting-started

Three AI models, GPT 5.6 Sol, Claude Opus 5, and DeepSeek v4 Flash, each read Persona’s public documentation independently and attempted five first-hour developer jobs: create the first Inquiry, find the exact limits, recover from a 429, verify a webhook, use the JavaScript 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](https://docsforagents.com/methodology/#freshness)

- Category: [Identity & auth](https://docsforagents.com/grades/?category=identity)
- Tested: 2026-09-22
- Quotes verified: 2026-09-22
- Surface rechecked: Not yet rechecked

## Agent surface checks · 40/50

| Check | Verdict | Points |
| --- | --- | --- |
| llms.txt | PASS | 10 |
| llms-full.txt | FAIL | 0 |
| Markdown mirror | PASS | 10 |
| MCP server | PASS | 10 |
| Docs AI | PASS | 10 |

## The Reading Test · 25/30

| Task | GPT 5.6 Sol | Opus 5 | DeepSeek v4F | Consensus |
| --- | --- | --- | --- | --- |
| Create the first Inquiry | PARTIAL | PASS | PARTIAL | PARTIAL |
| Find the exact limits | PARTIAL | PARTIAL | PASS | PARTIAL |
| Recover from a 429 | PASS | PASS | PASS | PASS |
| Verify a webhook | PASS | PASS | PASS | PASS |
| Use the JavaScript SDK | PARTIAL | PASS | PASS | PASS |

Docs platform: Fern (unscored) · verified 2026-09-22

## What to fix first

These 3 fixes could add up to 14 points to the AI Agent Readiness Score. The list ranks each fix by the points it would add. [How the ranking works](https://docsforagents.com/methodology/#what-to-fix-first)

1. **+10 points · llms-full.txt · check failed**

   **Found:** HTTP 301 redirect to the 781-byte llms.txt, so no substantial full-text file is served.

   **Fix:** Publish llms-full.txt at the docs root with the full text of every docs page in one plain-text file.

   **Evidence:** [docs.withpersona.com/llms-full.txt](https://docs.withpersona.com/llms-full.txt)

2. **+2 points · Create the first Inquiry · PARTIAL**

   **Found:** The Quickstart stops after creating an Inquiry without linking a way to launch it, and it calls a successful create 200 where the API reference says 201.

   **Fix:** Link the Quickstart to the Hosted Flow tutorial as the next step, and correct the Quickstart's success code to the 201 the API reference gives.

   **Evidence:** [docs.withpersona.com/api-quickstart-tutorial](https://docs.withpersona.com/api-quickstart-tutorial)

3. **+2 points · Find the exact limits · PARTIAL**

   **Found:** The rate limiting guide gives 300 requests per minute for production only, publishes no sandbox number, and the API reference example shows 3003 instead.

   **Fix:** Publish the sandbox default on the rate limiting page next to the 300 production default, and change the API reference example to use the same number.

   **Evidence:** [docs.withpersona.com/rate-limiting](https://docs.withpersona.com/rate-limiting)

## What the docs get right

- **Recover from a 429: 3 PASS votes.** The error guide gives exponential backoff, header thresholds, and the 429 exception that lets retries reuse the same idempotency key.
- **Verify a webhook: 3 PASS votes.** The quickstart creates and exposes an endpoint, configures events, receives payloads, and verifies signatures with raw-body HMAC code.
- **4 of 5 agent surface checks.** Present: llms.txt, markdown mirrors, an MCP server, docs AI. Missing: llms-full.txt.

## Create the first Inquiry

**PARTIAL**

PARTIAL consensus from 1 PASS, 2 PARTIAL.

The Hosted Flow tutorial covers key acquisition through completion, but the quickstart says success is 200 while the API reference specifies 201. The Quickstart Tutorial covers signup, sandbox environment, API key and a working Create an Inquiry curl call, and the Pre-create inquiries tutorial continues from the sandbox key through launching the flow and completing government ID and selfie verification in Sandbox. The Quickstart shows getting a sandbox API key and creating an Inquiry via the API reference tool, but it stops there; launching the verification flow for a user requires independently discovering and cross-referencing the Embedded Flow tutorials.

## Find the exact limits

**PARTIAL**

PARTIAL consensus from 1 PASS, 2 PARTIAL.

The guide names all six headers and directs readers to environment-specific values, but its 300 default conflicts with the API reference’s 3003 example. Environment limits, Quotas and the RateLimit-Limit / RateLimit-Remaining / RateLimit-Reset and Quota-Limit / Quota-Remaining / Quota-Reset headers are stated consistently on one page and repeated identically on the Errors page, but only the production default is given as a number and no sandbox figure is published, so the exact limit for a sandbox environment must be read from the Dashboard or the List all Rate Limits endpoint. Environment rate limits and product-specific quotas are both stated at 300 requests per minute with no contradiction. The RateLimit-Limit, RateLimit-Remaining, Quota-Limit, and Quota-Remaining response headers that report remaining capacity are explicitly listed.

## Recover from a 429

**PASS**

PASS consensus from 3 PASS.

The error guide gives exponential backoff, header thresholds, and the 429 exception that lets retries reuse the same idempotency key. The Errors page gives the 429 meaning, a concrete exponential backoff schedule of 5, 10, 20 and 40 seconds, header-based throttling at 15% remaining, and an explicit statement that a rate-limited request is not cached by the idempotency layer. The docs provide a complete recovery path: structured exponential backoff (5, 10, 20, 40 seconds), monitoring RateLimit and Quota response headers, and explicit documentation that the rate limiter runs before the idempotency layer so retrying with the same key executes the request rather than returning a cached 429.

## Verify a webhook

**PASS**

PASS consensus from 3 PASS.

The quickstart creates and exposes an endpoint, configures events, receives payloads, and verifies signatures with raw-body HMAC code. Webhook creation in the Dashboard or through the Webhooks API, a local ngrok-based receiving quickstart, the t= and v1= header format, secret rotation with two space-separated signature sets, and constant-time comparison samples in Ruby, Python, JavaScript and Java are all documented. Creating a webhook, receiving events, and verifying the HMAC-SHA256 signature via the Persona-Signature header are documented end-to-end: Dashboard setup, event format, retry logic, and a full Node.js code example with timing-safe signature comparison.

## Use the JavaScript SDK

**PASS**

PASS consensus from 2 PASS, 1 PARTIAL.

The official SDK has minimal NPM and CDN examples, but one tutorial omits /api/v1 from its Inquiry retrieval URL. The Embedded Flow overview names the npm package persona and the CDN script, gives runnable NPM and HTML snippets, and the pre-create tutorial reconciles the SDK with the Inquiry API by passing inquiryId from POST /api/v1/inquiries instead of templateId. The persona npm package, client initialization with templateId or inquiryId, callback patterns, and the pre-create tutorial all agree with the Create Inquiry API shown in the API reference.

## The receipt

> The default rate limiter for production environments allows up to 300 requests per minute timeframe for all API requests from any API key within the environment.

The guide names all six headers and directs readers to environment-specific values, but its 300 default conflicts with the API reference’s 3003 example.

- [docs.withpersona.com/2021-07-05/rate-limiting](https://docs.withpersona.com/2021-07-05/rate-limiting)

## Agent surface notes

Initialize returned JSON-RPC protocol 2025-06-18 with serverInfo name fern-docs-mcp-server.

The hydrated docs home exposes a Fern Ask AI button with id fern-ask-ai-button that controls an assistant panel.

## 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-09-22.

Methodology: https://docsforagents.com/methodology/

Canonical URL: https://docsforagents.com/reports/persona-docs-ai-agent-readiness/
