perplexity.ai
Finalizing the report
Preparing the stored Is Agentic score
perplexity.ai
Preparing the stored Is Agentic score
perplexity.ai
These checks describe whether an ordinary agent can enter, read, and operate the public site.
Agents can reach the site
Crawler access and bot defenses.
Core content is available
Useful content remains accessible without a fragile browser-only path.
The public website is always evaluated. Optional surfaces appear when the scan finds positive evidence that they apply.
Needs work
Weighted across 12 applicable checks
Needs work
Weighted across 9 applicable checks
Needs work
Weighted across 3 applicable checks
Strong
Weighted across 3 applicable checks
Critical access gaps come first, followed by other applicable readiness gaps.
Server-side render your homepage so AI crawlers see meaningful content without JavaScript. Ensure an H1 and 500+ chars of text in raw HTML.
Verify that major agent User-Agents can reach the homepage. If your WAF or bot rules block them, remove or narrow the blocking rule. Add an allow rule only when your security setup denies them by default.
Return structured JSON error responses with error codes, messages, and resolution hints. Agents can't parse HTML error pages.
On the responses that serve text/markdown via Accept negotiation, add Accept to the Vary header (Vary: Accept, Accept-Encoding). Without it, CDNs can serve the cached HTML variant to an agent asking for markdown (or vice versa), depending on which variant landed in cache first.
Declare scoped API permissions where machines can read them: named OAuth scopes in your OpenAPI security schemes, or scopes_supported in RFC 9728 protected-resource metadata. Prose descriptions of roles help humans, but agents need the machine-readable declaration to request least-privilege access.
Checks are grouped by relevance for Docs & content sites.
Homepage blocked by WAF/security challenge - content not accessible to agents
How to pass
Server-side render your homepage so AI crawlers see meaningful content without JavaScript. Ensure an H1 and 500+ chars of text in raw HTML.
Agents blocked: GPTBot, ClaudeBot, ChatGPT-User, PerplexityBot, Google-Extended, Applebot-Extended
How to pass
Verify that major agent User-Agents can reach the homepage. If your WAF or bot rules block them, remove or narrow the blocking rule. Add an allow rule only when your security setup denies them by default.
OpenAPI spec found at https://docs.perplexity.ai/openapi.json (version: 3.1.0)
Not acceptmarkdown.com compliant: Accept: text/markdown returned text/html; charset=utf-8; Vary header missing Accept (got "none")
How to pass
On the responses that serve text/markdown via Accept negotiation, add Accept to the Vary header (Vary: Accept, Accept-Encoding). Without it, CDNs can serve the cached HTML variant to an agent asking for markdown (or vice versa), depending on which variant landed in cache first.
OAuth authorization server metadata at https://perplexity.ai (issuer=https://www.perplexity.ai/rest/computer/mcp)
Scoped permissions described at https://docs.perplexity.ai, but no machine-readable scope declaration found (OpenAPI oauth2 scopes or RFC 9728 scopes_supported)
How to pass
Declare scoped API permissions where machines can read them: named OAuth scopes in your OpenAPI security schemes, or scopes_supported in RFC 9728 protected-resource metadata. Prose descriptions of roles help humans, but agents need the machine-readable declaration to request least-privilege access.
API does not return JSON error responses (or no API detected)
How to pass
Return structured JSON error responses with error codes, messages, and resolution hints. Agents can't parse HTML error pages.
MCP server exposes 1 resource(s) via resources/list
Agent discovered 2 developer-resource types by name (developer portal, API docs) across 5 pages
perplexity.ai appears at position #3 in a clean brand-name search for "perplexity ai ml" (5 total matches)
Valid sitemap found at https://www.perplexity.ai/sitemap.xml with multiple sitemaps entries
JSON-LD Organization with name + description - add url and sameAs/logo/address for full score
How to pass
Add JSON-LD structured data to your homepage using the identity type that matches your site - SoftwareApplication for products, Organization or LocalBusiness for companies, Person for personal sites, Article for blogs - with name, description, url, and type-appropriate fields (offers, sameAs, author) so AI can parse your identity programmatically.
Documentation site found at https://docs.perplexity.ai
When-to-use guidance found at https://docs.perplexity.ai
How to pass
Tell agents when to reach for you: add a 'when to use this' section to your llms.txt (or a dedicated agent-instructions file) that names your best-fit use cases and how an agent should call you. Be specific about the jobs you are right for - generic marketing copy does not read as guidance.
All metadata signals present: canonical URL, lang="en", og:image, og:type
Organization schema found but missing: contactPoint, address
How to pass
Add Organization JSON-LD that includes both contactPoint (with email/phone and contactType) and address (PostalAddress). This lets AI verify your business legitimacy and answer contact queries.
No trust anchor pages found with sufficient content (About, Contact, Privacy)
How to pass
Publish real /about, /contact, and /privacy pages with at least 500 characters of content each. These are the pages AI agents check to verify your business is legitimate before recommending you.
Code fences balanced across 1 markdown document
Developer documentation portal found at https://docs.perplexity.ai
REST API documentation found at https://docs.perplexity.ai/docs/getting-started/overview.md. GraphQL endpoint at https://perplexity.ai/graphql is reachable; introspection requires authentication (API key / OAuth), which is expected for agent access. Best-of-protocols score: 7/7.
Onboarding signals described but not verified live: self-serve key generation, sandbox/test environment
How to pass
Offer a free tier or trial, self-serve API key generation, and a sandbox environment. Agents can't fill out 'contact sales' forms.
First-party MCP server published by product org (npm, @perplexity-ai/mcp-server, 12227 score). Add live handshake at /.well-known/mcp for full credit.
How to pass
Build an MCP (Model Context Protocol) server exposing your API as tools. Use Streamable HTTP transport for full score. This lets Claude, ChatGPT, and other AI agents call your product natively.
GraphQL introspection auth-gated and no header convention documented on GraphQL-tagged pages
How to pass
Return standard rate-limit headers on your API responses (the RFC RateLimit headers, plus Retry-After on a 429) so agents can self-throttle in real time, and document the conventions alongside your API.
CLI package found on npm: perplexity-cli
GraphQL: introspection auth-gated and no schema evidence in docs
How to pass
Make your API spec self-describing: a unique operationId and a description on every operation, typed parameters, and response schemas. For GraphQL, a fully typed schema with a documented cost or rate limit reads best.
No API spec found - function calling requires discoverable endpoints
How to pass
Ensure API endpoints have unique operation IDs, typed schemas, and descriptions compatible with LLM function-calling formats.
1/1 resources read with valid mimeType and non-empty content
NPM package found: @perplexity-ai/perplexity_ai - "The official TypeScript library for the Perplexity API"
MCP server discoverable via server-card.json at /.well-known/mcp/
Found the llms.txt at https://docs.perplexity.ai/llms.txt.
The llms.txt is well-formatted with markdown links, but at 43,100 characters it exceeds the 30,000-character recommendation for a navigation index.
How to pass
Format your llms.txt as a navigation index: start with a markdown heading, include markdown links to deeper resources, and keep it under 30,000 characters. If you have more to say, move long-form content into /llms-full.txt or per-section files (e.g. /docs/llms.txt, /api/llms.txt) and link to them from the main index.
Some extended schema types found: BreadcrumbList - add FAQPage, Service, or AggregateRating for full coverage
How to pass
Expand your JSON-LD beyond Organization/WebSite. Add FAQPage for common questions, Service or Product for offerings, AggregateRating or Review for social proof, and BreadcrumbList for navigation context.
All 5 probed llms.txt links resolve to real content
All 3 tools on docs MCP have detailed descriptions (>= 30 chars)
3/3 tools on docs MCP have parameter schemas
docs MCP identifies as "Perplexity" v1.0.0 with instructions
docs MCP exposes 3 tool(s) - focused docs surface
All 3 tool names follow consistent convention, descriptive, and non-generic
docs MCP is public - correct posture for documentation surface
Only AS metadata present; spec calls for both PRM and AS metadata
How to pass
Publish RFC 9728 protected-resource metadata at /.well-known/oauth-protected-resource on your resource server (the host that actually serves the API, e.g. api.<apex>) with resource and authorization_servers. Publish RFC 8414 authorization-server metadata at /.well-known/oauth-authorization-server on the AS origin, and include the WorkOS auth.md agent_auth block with register_uri, identity_types_supported drawn from the spec enum (anonymous, identity_assertion - variants like verified_email or urn:ietf:params:oauth:token-type:id-jag belong inside identity_assertion.assertion_types_supported, not at the top level), and a sibling per-type block for each advertised type (anonymous.credential_types_supported; identity_assertion.assertion_types_supported + credential_types_supported) so agents can look up the request shape. Cross-link by listing the AS origin in PRM authorization_servers, and point agent_auth.skill back at your published /auth.md. Spec: https://workos.com/auth-md.
docs MCP returns structured JSON-RPC errors with code and message
docs MCP uses modern Streamable HTTP transport
SDK found in npm, additional SDKs mentioned at https://docs.perplexity.ai
How to pass
Publish official SDK packages across multiple language ecosystems (npm, PyPI, Go modules, RubyGems). Auto-generate them from your OpenAPI spec using tools like openapi-generator. For each package set the project URL or homepage to your product domain (package.json repository/homepage, PyPI Home-Page or project_urls, RubyGems homepage_uri) - this is how agents verify the package is your official SDK.
NLWeb /ask endpoint exists but requires authentication (HTTP 403, via GET)
docs MCP: 3/3 tools have behavioral annotations
MCP server card found at https://docs.perplexity.ai/.well-known/mcp/server-card.json (2 tools advertised)
You run both MCP servers, but the product one (https://api.perplexity.ai/mcp) is not reachable. Fix it so agents can use it.
How to pass
Beyond your product MCP server, expose a documentation MCP surface so agents can pull your docs and reference material over the same protocol they use to act. Covering both the 'do' and the 'learn' surfaces over MCP earns this.
What does perplexity.ai do and who is it for? Explain it back to me.
Sign me up for Vercel product updates and marketing emails.
Unsubscribe anytime. Privacy Notice
Source: Ora API
What does perplexity.ai do and who is it for? Explain it back to me.
10 steps4 reasoning steps3 searches
The agent could not access perplexity.ai directly due to Cloudflare protection, so it assembled a comprehensive explanation from third-party review and pricing comparison sites found via web search. The final answer covers what Perplexity does, its target audience, pricing tiers, and differentiation from competitors—all sourced from secondary sites rather than the official domain. The primary website itself was not navigable, forcing heavy reliance on prior knowledge and third-party aggregators.