scanned Jun 3, 2026

Perplexity

perplexity.ai

Perplexity provides AI-powered APIs for web-wide research, Q&A, and semantic search capabilities.

64/100

Tier 4 · Agent-Ready

Content answers78/100
Protocol plumbing31/1005 of 16 checks pass

Scored by asking 15 questions a buyer of a ai-ml product asks, then grading this site’s own pages: answered, hedged (partial or vague), or silent (no page answers it). How scoring works

This report is public. Own perplexity.ai? Claiming is free: crawl every page, re-audit as you fix, and track your score over time.

Sign in to claim

The fix queue

36 points sit between perplexity.ai and 100: 8 open questions and 11 missing protocol checks, ordered by estimated payoff.

Point estimates are per fix under scoring v2. They are not additive to a promised total.

Hedged · 8 of 15 questions

A buyer gets something, then has to guess the rest. Expand any row for the evidence and the fix.

01Can I create an API key restricted to only the Search endpoint, or do all keys have full access to chat, embeddings, and agent features by default?securityHedges+2 pts est.

Can I create an API key restricted to only the Search endpoint, or do all keys have full access to chat, embeddings, and agent features by default?

What the pages say

The documentation explains how to create API keys and organize them into API groups for different projects or environments, and shows that Search, Chat, Embeddings, and Agent endpoints all use Bearer token authentication, but it does not specify whether an API key can be restricted to only the Search endpoint or whether keys provide full access to chat, embeddings, and agent features by default.

The fix

Add explicit documentation on the API Key Management page clarifying whether API keys can be scoped to individual endpoints or if every key grants universal access to Search, Chat, Embeddings, and Agent APIs by default.

Where we looked: /docs/admin/api-key-management.md, /docs/admin/api-key-management, /api-reference/embeddings-post, /api-reference/agent-post, /api-reference/search-post, /api-reference/sonar-post

confidence medium · grounding synthesized · weight 0.65 · Vague

02We're migrating from OpenAI and your compatibility page says you match their chat format. Which specific parameters or features are explicitly not supported in your OpenAI-compatible endpoint?integrationHedges+2 pts est.

We're migrating from OpenAI and your compatibility page says you match their chat format. Which specific parameters or features are explicitly not supported in your OpenAI-compatible endpoint?

What the pages say

The documentation does not explicitly list any unsupported parameters or features. It only enumerates supported standard OpenAI parameters—for the Sonar API: `model`, `messages`, `max_tokens`, `stream`, `temperature`, `top_p`, and `response_format`; for the Agent API: `model`, `input`, `instructions`, `max_output_tokens`, `stream`, and `tools`—plus Perplexity-specific additions. No limitations or excluded OpenAI parameters are mentioned.

The fix

Add an explicit 'Unsupported Parameters' or 'Limitations' section to the OpenAI compatibility pages that lists which OpenAI parameters and features (e.g., logprobs, function calling, vision, etc.) are not supported.

Where we looked: /docs/sonar/openai-compatibility, /docs/sonar/openai-compatibility.md, /docs/agent-api/openai-compatibility

confidence high · grounding synthesized · weight 0.70 · Vague

03Do your API rate limits apply per individual API key or across our entire organization? And do they reset on a rolling window or at a fixed calendar time?limitsHedges+2 pts est.

Do your API rate limits apply per individual API key or across our entire organization? And do they reset on a rolling window or at a fixed calendar time?

What the pages say

The documentation does not explicitly state whether rate limits apply per individual API key or across the entire organization, though it notes that usage tiers are based on “cumulative purchases across your account lifetime” [4] and that Search API limits “apply consistently across all accounts” [1]. It also does not specify whether limits reset on a rolling window or at a fixed calendar time; the Search API is described as using a “leaky bucket algorithm” [1], while Sonar and Agent APIs list QPS and RPM limits [2][4] without describing reset behavior.

The fix

Add explicit documentation on whether rate limits are enforced per API key or aggregated across the organization, and clarify whether QPS/RPM limits reset on a rolling window or at fixed calendar intervals.

Where we looked: /docs/admin/rate-limits-usage-tiers.md, /docs/admin/rate-limits-usage-tiers.md, /docs/admin/rate-limits-usage-tiers.md, /docs/admin/rate-limits-usage-tiers.md, /docs/resources/faq

confidence medium · grounding synthesized · weight 0.65 · Vague

04If I create an async chat completion, how long will the result be available before Perplexity deletes it? Is there a hard retention TTL I need to know about?limitsPage missing+2 pts est.

If I create an async chat completion, how long will the result be available before Perplexity deletes it? Is there a hard retention TTL I need to know about?

What the pages say

Perplexity's documentation states a strict Zero Data Retention Policy for the Sonar API, meaning it does not retain any data sent via the API beyond processing the immediate request. However, the retrieved chunks do not specify a retention TTL or how long async chat completion results remain available before deletion.

The fix

Add documentation for the async chat completions endpoint that specifies how long results are retained, the polling window, and any hard TTL before deletion.

Where we looked: /docs/resources/privacy-security, /docs/getting-started/integrations/pipedream, /docs/getting-started/integrations/pipedream.md

confidence medium · grounding synthesized · weight 0.65 · Page missing

05When I generate an auth token via the API, how long is it valid by default? Can I set a custom expiration, and is there a maximum number of active tokens allowed per account?securityHedges+2 pts est.

When I generate an auth token via the API, how long is it valid by default? Can I set a custom expiration, and is there a maximum number of active tokens allowed per account?

What the pages say

The API reference for `generate_auth_token` shows the request body only accepts an optional `token_name` parameter and does not include an expiration field, indicating custom expiration is not supported. The documentation does not specify a default validity period for auth tokens. The troubleshooting section mentions checking "API tier limits" if key generation fails, but it does not state a maximum number of active tokens allowed per account.

The fix

Document the default auth token validity period, whether custom expiration can be configured, and the exact maximum number of active tokens per account on the API Key Management or Generate Auth Token reference pages.

Where we looked: /api-reference/generate-auth-token-post.md, /api-reference/generate-auth-token-post, /api-reference/generate-auth-token-post, /docs/admin/api-key-management, /docs/admin/api-key-management

confidence high · grounding synthesized · weight 0.70 · Vague

06My finance team wants to subscribe through AWS Marketplace. Will we get identical rate limits, model access, and pricing as direct API customers, or are there differences?integrationHedges+2 pts est.

My finance team wants to subscribe through AWS Marketplace. Will we get identical rate limits, model access, and pricing as direct API customers, or are there differences?

What the pages say

AWS Marketplace subscribers appear to receive the same model access and pricing as direct API customers: purchased credits are applied to your Perplexity API balance and work across all APIs (Sonar, Agent API, Search API, and Embeddings), and credits are denominated 1:1 with USD, drawn down according to the standard per-request and per-token pricing. However, the retrieved chunks do not state whether rate limits and usage tiers are identical for AWS Marketplace customers compared with direct API customers.

The fix

Add an explicit statement on the AWS Marketplace page confirming whether rate limits and usage tiers are the same as direct API customers, or list any differences.

Where we looked: /docs/resources/aws-marketplace, /docs/resources/aws-marketplace.md, /docs/resources/aws-marketplace.md, /docs/resources/aws-marketplace.md

confidence medium · grounding synthesized · weight 0.65 · Vague

07The docs mention automatic model fallback. What specific error codes or failure scenarios actually trigger it—just rate-limit 429s, or do 5xx errors and model timeouts also count?technicalHedges+2 pts est.

The docs mention automatic model fallback. What specific error codes or failure scenarios actually trigger it—just rate-limit 429s, or do 5xx errors and model timeouts also count?

What the pages say

The documentation states that automatic model fallback tries the next model when the prior one "fails or is unavailable," but it does not specify the exact HTTP error codes or failure scenarios—such as 429 rate limits, 5xx server errors, or model timeouts—that trigger the automatic fallback chain.

The fix

Add an explicit section to the Model Fallback documentation listing which HTTP status codes (e.g., 429, 5xx) and failure modes (e.g., timeouts, connection errors) trigger automatic fallback versus returning an error directly to the client.

Where we looked: /docs/agent-api/model-fallback.md, /docs/agent-api/model-fallback, /docs/agent-api/model-fallback.md, /api-reference/agent-post.md, /docs/sdk/error-handling, /docs/sdk/error-handling.md

confidence high · grounding synthesized · weight 0.70 · Vague

08For the web Search endpoint, what's the maximum number of results or citations returned in a single response? Can I paginate to get more, or is it a hard cap?technicalHedges+2 pts est.

For the web Search endpoint, what's the maximum number of results or citations returned in a single response? Can I paginate to get more, or is it a hard cap?

What the pages say

The Perplexity Search API (the `POST /search` web Search endpoint) accepts a `max_results` parameter with values from 1 to 20, and the default maximum is 10 results per search. None of the retrieved chunks mention pagination parameters, offset tokens, or any continuation mechanism, so the documentation does not clarify whether 20 is a hard cap or if additional results can be fetched via pagination.

The fix

Add explicit documentation on whether the Search API supports pagination (e.g., offset or page tokens) or if the max_results=20 limit is a hard cap per request.

Where we looked: /docs/search/quickstart.md, /docs/search/quickstart

confidence medium · grounding synthesized · weight 0.65 · Vague

What the pages already answer cleanly

7 of 15. Answered with enough specificity for a buyer to act on. This is the bar the queue above is chasing.

pricingAnswered

I'm comparing API costs across providers for my app. What are the exact per-token rates for Sonar Pro versus the base Sonar model right now?

What the pages say

Base Sonar: $1 per 1M input tokens and $1 per 1M output tokens. Sonar Pro: $3 per 1M input tokens and $15 per 1M output tokens.

Source: /docs/getting-started/pricing.md, /docs/getting-started/pricing, /docs/sonar/models/sonar

confidence high · grounding stated · weight 1.00 · Answered

limitsAnswered

We're planning load tests before going live. What are the specific requests-per-minute limits for the free API tier compared to the production tier?

What the pages say

Perplexity’s “free” tier is Tier 0 ($0 in cumulative spending). The tier explicitly labeled “Production usage” is Tier 4 ($1,000+). The requests-per-minute limits depend on which API you use: **Sonar API** - Tier 0 (free): 5 RPM for sonar-deep-research and POST /v1/async/sonar; 50 RPM for sonar-reasoning-pro, sonar-pro, and sonar. - Tier 4 (production): 60 RPM for sonar-deep-research and POST /v1/async/sonar; 4,000 RPM for sonar-reasoning-pro, sonar-pro, and sonar. - GET /v1/async/sonar stays at 3,000 RPM and GET /v1/async/sonar/{request_id} stays at 6,000 RPM in both tiers. **Agent API** - Tier 0 (free): 50 requests per minute. - Tier 4 (production): 2,000 requests per minute. **Search API** - 50 requests per second (3,000 RPM) across all tiers, independent of usage tier. **Embeddings API** - Tier 0: 85 QPS. - Tiers 4–5: 335 QPS. (This API is measured in queries per second rather than RPM.)

Source: /docs/admin/rate-limits-usage-tiers.md, /docs/admin/rate-limits-usage-tiers.md, /docs/admin/rate-limits-usage-tiers.md, /docs/admin/rate-limits-usage-tiers.md, /docs/admin/rate-limits-usage-tiers.md

confidence high · grounding synthesized · weight 0.95 · Answered

technicalAnswered

I want users to upload screenshots through the Agent API. What are the exact file size limits and accepted image formats or MIME types?

What the pages say

When uploading images via base64 encoding through the Agent API, the exact file size limit is 50 MB per image. The accepted image formats and their MIME types are PNG (image/png), JPEG (image/jpeg), WEBP (image/webp), and GIF (image/gif). Images can alternatively be provided as publicly accessible HTTPS URLs, but the retrieved chunks do not specify separate file size or format limits for URL-based images.

Source: /docs/agent-api/image-attachments, /docs/agent-api/image-attachments.md

confidence high · grounding stated · weight 1.00 · Answered

technicalAnswered

What's the maximum input token limit for the contextualized embeddings endpoint? I need to know if it's lower than the standard embeddings API limit.

What the pages say

The contextualized embeddings endpoint has a maximum input token limit of 32K tokens per document, which is the same as the standard embeddings API limit of 32K tokens per text. Both endpoints also share a combined per-request limit of 120,000 tokens.

Source: /docs/embeddings/contextualized-embeddings.md, /docs/embeddings/standard-embeddings.md

confidence high · grounding world-knowledge · weight 0.60 · Answered

technicalAnswered

What's the largest context window currently available through the Sonar API? I need the exact maximum token count for the biggest model.

What the pages say

The Sonar model features a 128K context length — 128,000 tokens. This is the largest exact token count documented for a model available through the Sonar API.

Source: /docs/sonar/models/sonar, /docs/sonar/models/sonar-pro.md, /docs/cookbook/articles/memory-management/chat-summary-memory-buffer/README.md, /docs/cookbook/articles/memory-management/chat-with-persistence/README.md

confidence medium · grounding synthesized · weight 0.90 · Answered

operationsAnswered

Our security team needs to allowlist or block your web crawlers. What are the exact User-Agent strings, and can we block just the search crawler while allowing the user-facing one?

What the pages say

Perplexity’s crawlers send one of two User-Agent strings: `PerplexityBot` and `Perplexity-User`. Each crawler also has its own IP range endpoint (`https://www.perplexity.com/perplexitybot.json` and `https://www.perplexity.com/perplexity-user.json`). The WAF configuration instructions tell you to create rules that combine each IP set with its corresponding User-Agent string, so because the two crawlers have distinct User-Agent strings and distinct IP ranges, you can configure your WAF to block one while allowing the other.

Source: /docs/resources/perplexity-crawlers

confidence high · grounding synthesized · weight 0.95 · Answered

operationsAnswered

According to your public API roadmap, what is the next planned feature or capability, and does it list a specific target release quarter or date?

What the pages say

Perplexity’s public API roadmap lists multiple upcoming and in-progress capabilities—including Sandbox API, Sonar API Performance Upgrade, Video Upload Capabilities, File Search and Connectors, Async API Webhook Support, and others—but it does not designate any single feature as the “next” planned release. It also does not list specific target release quarters or dates for upcoming capabilities; instead, the page notes that shipped updates and release dates are tracked in the changelog.

Source: /docs/resources/feature-roadmap.md, /docs/resources/feature-roadmap

confidence high · grounding synthesized · weight 0.95 · Answered

Protocol plumbing · 31/1005 of 16 checks pass · each fix +6 protocol pts est.

The other half of the score: 16 checks for the files and headers agents look for. The 11 below are installs, not judgment calls, and most are an afternoon. Expand any for the snippet and the standard it follows. They sit after the queue because none of them changes what your pages say.

llms.txtDiscoverability+6 pts est.

Sitedex generates this file from your crawl. Grab it in Files from this audit below.

Standardllmstxt.orgCommunity spec

Content signalAccess+6 pts est.
Install snippet
User-agent: *
Content-Signal: search=yes, ai-input=yes, ai-train=no
Allow: /

StandardCloudflare proposalVendor proposal

Clean crawlAccess+6 pts est.

StandardSitedex metricSitedex metric

Markdown negotiationRendering+6 pts est.

StandardRFC 9110 + 7763IETF RFC

Server-rendered contentRendering+6 pts est.

StandardSitedex metricSitedex metric

MCP cardInteraction+6 pts est.

Sitedex generates this file from your crawl. Grab it in Files from this audit below.

StandardModel Context ProtocolCommunity spec

OpenAPI specInteraction+6 pts est.

StandardOpenAPI SpecIndustry standard

WebMCP widgetInteraction+6 pts est.

Sitedex generates this file from your crawl. Grab it in Files from this audit below.

StandardW3C WebMCP draftW3C / WHATWG

Canonical URLsHygiene+6 pts est.
Install snippet
<link rel="canonical" href="https://perplexity.ai/" />

StandardRFC 6596IETF RFC

Organization schemaIdentity+6 pts est.

Sitedex generates this file from your crawl. Grab it in Files from this audit below.

StandardSchema.org + JSON-LDIndustry standard

Sitemap lastmodDiscoverability+6 pts est.

Standardsitemaps.orgIndustry standard

Already passing 5 of 16: robots.txt, sitemap.xml, AI crawler access, Meta descriptions, HTML lang attribute.

Ask this site’s index

Sitedex already serves perplexity.ai as an MCP endpoint. Ask perplexity.ai anything an AI agent might ask, and see what its index returns. (To score your own site, use the form below.)

Snippets & configs

For developers and the engineer-on-call: copy these into your tools or your site.

Files from this audit

Built from this crawl. Download or copy each, then install it at the path noted.

llms.txt

Built from this crawl. Install at /llms.txt so agents start here.

organization.json

Organization JSON-LD, pre-filled from this crawl. Wrap in a ld+json script.

server-card.json

MCP server card built from this crawl. Host at /.well-known/mcp/server-card.json.

webmcp.json

WebMCP discovery manifest built from this crawl. Host at /.well-known/webmcp.json.

MCP endpoint

https://mcp.sitedex.dev/s/perplexity-ai/mcp

The URL anyone's agent points at. Read-only; safe to share.

Claude Code

claude mcp add perplexity --transport http https://mcp.sitedex.dev/s/perplexity-ai/mcp

One command, then the agent has it.

Cursor / Continue

{
  "mcpServers": {
    "perplexity": {
      "url": "https://mcp.sitedex.dev/s/perplexity-ai/mcp"
    }
  }
}

Drop into mcp.json.

WebMCP: two parts

WebMCP-capable browsers run the widget at runtime. Crawlers without JS rendering need the discovery manifest to find your tool surface. Install both.

1 · Widget script

<script async src="https://sitedex.dev/widget.js"></script>

Drop in <head>. WebMCP-capable browsers (Chrome 146+ Origin Trial) call navigator.modelContext.provideContext() via this script.

2 · Discovery manifest

{
  "$schema": "https://wellknownmcp.org/schemas/webmcp.json",
  "name": "perplexity.ai",
  "tools": [
    { "name": "search", "description": "Search perplexity.ai's indexed content." },
    { "name": "get_page", "description": "Fetch a page from perplexity.ai as markdown." }
  ]
}

Host alongside the script at /.well-known/webmcp.json. Crawlers that don't render JS rely on this.

Your turn

See which of these questions your site goes silent on.

Free, about 5 minutes. We crawl your site, test it against the buyer questions your category asks, and name what’s vague, contradictory, or missing, plus the files AI agents look for.

ComingEmbeddable grade badgeScore history and deltasOpt-in public board