Published 2026-09-22 · Tested 2026-09-22

Perplexity

A-

Perplexity received 9 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 Perplexity’s public documentation independently and attempted five first-hour developer jobs: make the first Sonar request, find the exact limits, recover from a 429, rotate an API key end to end, use the Python 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. Preflight substitutions: T4: API key authentication end to end replaces webhooks, because the Perplexity API offers no webhook interface.

Freshness

How rechecks work
Tested
Quotes verified
Surface rechecked
Not yet rechecked
Perplexity Mintlify · published
A-

92.5% · 74/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
Make the first Sonar request PASSPARTIALPASS PASS
Find the exact limits PARTIALPASSPARTIAL PARTIAL
Recover from a 429 PARTIALPARTIALPARTIAL PARTIAL
Rotate an API key end to end PASSPASSPASS PASS
Use the Python SDK PASSPASSPASS PASS

docs platform: Mintlify (unscored) · verified 2026-09-22

What to fix first

These 2 fixes could add up to 5 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 Recover from a 429 PARTIAL

    Found: Retry-After is documented only for the Router API, so a 429 from the Agent, Sonar, or Search endpoints has no documented retry interval.

    Fix: State whether Agent, Sonar, and Search 429s return Retry-After, and update the SDK error-handling backoff example to read that header.

    Evidence: docs.perplexity.ai/docs/admin/rate-limits-usage-tiers (opens in a new tab)

  2. 2
    +2 points Find the exact limits PARTIAL

    Found: The FAQ calls rate limiting one leaky-bucket algorithm, while the rate-limits page says behavior differs by API and omits numeric Router limits.

    Fix: Rewrite the FAQ to match the per-API limiter rules on the rate limits page, and add the numeric Router limits to that page.

    Evidence: docs.perplexity.ai/docs/admin/rate-limits-usage-tiers (opens in a new tab)

What the docs get right

  • Rotate an API key end to end: 3 PASS votes. The guide covers project setup, key creation, Bearer authentication, replacement-key validation, deployment, and old-key revocation.
  • Use the Python SDK: 3 PASS votes. The Sonar quickstart's official Python client and cURL examples use the same sonar-pro model and messages payload.
  • 5 of 5 agent surface checks. Present: llms.txt, llms-full.txt, markdown mirrors, an MCP server, docs AI.

Make the first Sonar request

PASS

PASS consensus from 2 PASS, 1 PARTIAL.

The Sonar quickstart links key generation, sets PERPLEXITY_API_KEY, and provides working SDK and cURL calls on one page. The key-generation card and a working curl call are both present, but the entry-point Overview and Quickstart list only Router, Agent, Search, and Embeddings, so reaching the Sonar path requires leaving the quickstart for a section the docs mark as retiring in five days. The Sonar quickstart page walks from API key creation through a working Python/cURL/TypeScript example, but Sonar is deprecated in favour of the Agent API (sunset 2026-09-27).

Find the exact limits

PARTIAL

PARTIAL consensus from 1 PASS, 2 PARTIAL.

The page omits numeric Router limits, and the FAQ contradicts its API-specific tier and limiter rules. One page states the six tier thresholds, per-tier Agent QPS, per-tier per-model Sonar RPM, embeddings QPS, and the separate 50 query units per second Search API limit, and the tier thresholds match the FAQ table exactly. The rate-limits page is thorough and self-consistent, but the FAQ describes rate limiting as a universal leaky-bucket algorithm while the rate-limits page states 'Rate limiter behavior differs by API; one algorithm does not apply across the platform' and documents a rolling-one-second window for the Agent API.

Recover from a 429

PARTIAL

PARTIAL consensus from 3 PARTIAL.

The Router page says to honor Retry-After, but the SDK examples calculate delays without reading that header. Retry-After is documented only for the Router API, so a 429 from the Agent, Sonar, or Search endpoints leaves the retry interval undocumented, and the FAQ contradicts the rate-limits page by describing a single leaky-bucket algorithm where the rate-limits page states the algorithm differs by API and that the Agent API uses a rolling one-second window rather than continuous token refill. The Retry-After header is documented only for the Router API, and the SDK error-handling guide does not use it in its exponential-backoff example, so a developer must cross-reference two pages to assemble the full correction.

Rotate an API key end to end

PASS

PASS consensus from 3 PASS.

The guide covers project setup, key creation, Bearer authentication, replacement-key validation, deployment, and old-key revocation. One page carries the project prerequisite, the console creation step, the generate_auth_token and revoke_auth_token endpoints with request and response shapes, a four-step zero-downtime rotation sequence, a runnable rotation class, and a troubleshooting table. The API Key Management page documents the full lifecycle, manual and programmatic key generation, authentication, rotation with a zero-downtime strategy, and revocation, with complete code examples for both endpoints.

Use the Python SDK

PASS

PASS consensus from 3 PASS.

The Sonar quickstart's official Python client and cURL examples use the same sonar-pro model and messages payload. The official Python SDK is installed with pip install perplexityai and imported as perplexity, the minimal example is shown side by side with the equivalent curl against https://api.perplexity.ai/v1/sonar, and the docs explicitly reconcile the apparent path difference instead of leaving the reader to guess. The SDK overview gives installation and authentication, and the GitHub README along with each API quickstart page shows working Python examples that match the REST / Sonar / Search / Agent cURL calls in model, endpoint, and parameter structure.

The receipt

Sustained: 50 query units per second on average

The page omits numeric Router limits, and the FAQ contradicts its API-specific tier and limiter rules.

Agent surface notes

Initialize returned JSON-RPC protocol 2025-06-18 and serverInfo name Perplexity.

Clicking the docs Toggle assistant panel control opened a Mintlify assistant with an "Ask a question..." input.

Show the score

AI Agent Readiness Score 92.5%, grade A-

Paste this into a readme:

[![AI Agent Readiness Score 92.5%](https://docsforagents.com/badge/perplexity.svg)](https://docsforagents.com/reports/perplexity-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 2 of five tasks. Quotes shown here were re-fetched and confirmed verbatim on 2026-09-22.

Read the full methodology

Put another docs site through the battery.

Nominate a docs site