perplexity.ai
perplexity.ai · Developer / Data APIs modeIntegrated
Last probed 2026-10-07 04:32 UTC · Provisional
People come to perplexity.ai to: call developer and data APIs.
Verdict: Partially — an AI agent can use perplexity.ai, but activate is blocked — A CAPTCHA blocks automated signup.
- DiscoverIncomplete
- ActivateBlocked
- OperateEasygated by Activate
- ManageNot yet probedgated by Activate
Capability parity
Each stage answers one question about what an agent can do unattended. Stages are ordered by the credential-gateway dependency: Activate issues the keys that unlock Operate and Manage. A row marked “Not yet probed” means no probe has tried that capability yet — a different ledger from the “unassessed” properties under Findings, where no probe tier capable of catching that interrupt has run.
Discover
Can an agent find and read it, no account?
Assessment incomplete - not yet probed: Read pricing & limits without login.
- Be found by a retrieval agentEasy
Retrieval access present.
Evidence
- Path tried
- robots.txt / sitemap / discovery headers
- Where it stalled
- completed
- Evidence tier
- Tier 1 (unauth probe)
- Verification
- Evidence-only — graded from passive signal, not live-verified.
- Backing checks
sitemap_xml
- Read what it does and how to use itEasy
Machine-readable docs present.
Evidence
- Path tried
- llms.txt / AGENTS.md / schema.org / docs
- Where it stalled
- completed
- Evidence tier
- Tier 1 (unauth probe)
- Verification
- Evidence-only — graded from passive signal, not live-verified.
- Backing checks
llms_txt, llms_full_txt, agents_md, agent_card
- Read pricing & limits without loginNot yet probed
Public pricing was not confirmed - the page was absent, gated, or unreadable.
Activate
Can an agent sign up and walk away with the keys it needs?
Assessment incomplete - not yet probed: Obtain a management / admin key.
- Create an account self-serveBlocked
A CAPTCHA blocks automated signup.
CAPTCHA / bot-challenge blocks this.
Evidence
- Path tried
- signup flow
- Where it stalled
- verification step
- Evidence tier
- Tier 0 (passive scan)
- Verification
- Evidence-only — graded from passive signal, not live-verified.
- CAPTCHA / bot-challengeBefore any account existsHomepage load triggered a turnstile challenge page (matched signal: script[src*="turnstile"]).
- Obtain an API / MCP access credentialEasy
Self-serve credential path detected.
Evidence
- Path tried
- docs → key issuance
- Where it stalled
- completed
- Evidence tier
- Tier 1 (unauth probe)
- Verification
- Evidence-only — graded from passive signal, not live-verified.
- Backing checks
api_key_self_serve
- Obtain a management / admin keyNot yet probed
No scoped or administrative key path was confirmed after activation.
- Accept the terms without a bot-banEasy
No bot-prohibition signal found.
Evidence
- Path tried
- ToS / policy scan
- Where it stalled
- completed
- Evidence tier
- Tier 0 (passive scan)
- Verification
- Evidence-only — graded from passive signal, not live-verified.
Operate
Can an agent do the service's actual jobs — call, transact, pay?
Gated by Activate — the credential this stage needs isn't issued unattended, so these rows may be unreachable even where they read Easy.
- Call the primary service over MCP / APIEasy
Machine interface present — evidence-only, not live-verified.
Gated by Activate — the credential this needs isn't issued unattended.
Evidence
- Path tried
- API / MCP / browser
- Where it stalled
- completed
- Evidence tier
- Tier 1 (unauth probe)
- Verification
- Evidence-only — graded from passive signal, not live-verified.
- Backing checks
openapi_spec
- Complete a transaction / checkoutNot applicable
Integrated tool — the API call is the transaction, no separate checkout.
Gated by Activate — the credential this needs isn't issued unattended.
- Pay via an agent rail (x402 / ACP / AP2)Easy
Agent-payment metadata present.
Gated by Activate — the credential this needs isn't issued unattended.
Evidence
- Path tried
- payment protocol / oauth metadata
- Where it stalled
- completed
- Evidence tier
- Tier 1 (unauth probe)
- Verification
- Evidence-only — graded from passive signal, not live-verified.
- Backing checks
oauth_metadata
Manage
Can an agent administer the account and provision resources?
No probe has attempted this stage yet: Provision / scale / tear down a service; Change account details / set budget / rotate keys; View usage & billing; Cancel / export / delete (offboard).
Gated by Activate — the credential this stage needs isn't issued unattended, so these rows may be unreachable even where they read Easy.
- Provision / scale / tear down a serviceNot yet probed
Not probed - provisioning is not part of the probe suite yet.
Gated by Activate — the credential this needs isn't issued unattended.
- Change account details / set budget / rotate keysNot yet probed
Not probed - account admin is not part of the probe suite yet.
Gated by Activate — the credential this needs isn't issued unattended.
- View usage & billingNot yet probed
Authenticated usage and billing access was not confirmed.
Gated by Activate — the credential this needs isn't issued unattended.
- Cancel / export / delete (offboard)Not yet probed
No self-serve cancellation, export, or deletion path was confirmed.
Gated by Activate — the credential this needs isn't issued unattended.
Findings
How scoring works →Interrupt tier: Moderate-Interrupt — derived from 1 finding; interrupt score 72 / 100 — the badge-driving metric. (range 41–91 · 8 unassessed)
Every tool starts at 100. Each interrupt found subtracts a penalty of base weight × timing × hardness × evidence — the multiplier values below come from the same rubric tables the score is computed with. New snapshots also provisionally subtract 50% of the full worst-case tax for each unassessed property and 25% for evidence-graded successes not live-verified by Tier 2.
Property coverage
A check only counts as clean when a probe tier capable of detecting that interrupt actually ran and found nothing. Not tested ≠ clean.
| Property | Stage | State | Evidence | Required |
|---|---|---|---|---|
| CAPTCHA / bot-challenge | activate | failed | Active finding — itemized in the penalty matrix below. Tier 0 assesses this property. | no |
| Mandatory phone verification call | activate | unassessed | No probe tier that can detect this has run yet — unknown, not clean. Tier 2 assesses this property. | no |
| Mailed physical code (postal) | activate | unassessed | No probe tier that can detect this has run yet — unknown, not clean. Tier 2 assesses this property. | no |
| “Contact sales” wall (no self-serve path) | activate | unassessed | No probe tier that can detect this has run yet — unknown, not clean. Tier 2 assesses this property. | no |
| Manual approval queue | activate | unassessed | No probe tier that can detect this has run yet — unknown, not clean. Tier 2 assesses this property. | no |
| Rate-limit-triggered manual review | manage | unassessed | No probe tier that can detect this has run yet — unknown, not clean. Tier 2 assesses this property. | no |
| One-time account / payment-method provisioning | manage | unassessed | No probe tier that can detect this has run yet — unknown, not clean. Tier 2 assesses this property. | no |
| Identity / KYC verification | activate | unassessed | No probe tier that can detect this has run yet — unknown, not clean. Tier 2 assesses this property. | no |
| Crypto wallet / key-custody setup | operate | unassessed | No probe tier that can detect this has run yet — unknown, not clean. Tier 2 assesses this property. | no |
| Email OTP verification | activate | success | None found — checked at Tier 1 (unauth probe) (evidence-graded; not yet live-verified by a Tier 2 probe) Tier 1 assesses this property. | no |
| SMS / phone OTP verification | activate | success | None found — checked at Tier 1 (unauth probe) (evidence-graded; not yet live-verified by a Tier 2 probe) Tier 1 assesses this property. | no |
| ToS clause banning automated/bot access | discover | success | None found — checked at Tier 0 (passive scan) (evidence-graded; not yet live-verified by a Tier 2 probe) Tier 0 assesses this property. | no |
| Mandatory redirect to vendor’s own site | operate | success | None found — checked at Tier 1 (unauth probe) (evidence-graded; not yet live-verified by a Tier 2 probe) Tier 1 assesses this property. | no |
| SSO-only signup, no API-key issuance | activate | success | None found — checked at Tier 1 (unauth probe) (evidence-graded; not yet live-verified by a Tier 2 probe) Tier 1 assesses this property. | no |
| No Machine Interface | operate | success | None found — checked at Tier 1 (unauth probe) (evidence-graded; not yet live-verified by a Tier 2 probe) Tier 1 assesses this property. | yes |
| Interrupt found | Base weight | × Timing | × Hardness | × Evidence | = Penalty |
|---|---|---|---|---|---|
| Starting score | 100 | ||||
| CAPTCHA / bot-challengeBefore any account existsHomepage load triggered a turnstile challenge page (matched signal: script[src*="turnstile"]). | 6 | ×1one-time setup | ×2.5hard | ×0.6Tier 0 (passive scan) | −9 |
| Total penalty | −9 | ||||
| Full unknown tax 95 — capped at 25 (point score uses 50% of the capped value) | −95 | ||||
| Evidence-graded tax (successes not live-verified by a Tier 2 probe) 152.4 — capped at 25 (point score uses 25% of the capped value) | −152.4 | ||||
| Raw score = 100 − 9 = 91 Point score = 91 − 50% × 25 − 25% × 25 = 72.3 → 72 | 72 | ||||
What would make this Easy
One concrete change per blocker found. These are the diffs between this listing's current parity and an unattended agent path.
- Activate — CAPTCHA / bot-challengeDrop the CAPTCHA, or gate it behind a documented bot-detection signal a well-behaved agent can pass.
How we scored this
- Confidence: Provisional (0.55) — Based on Tier 0/1 evidence only (passive checks, no live transaction attempt) — treat the number as a triage signal, not a verified outcome.
- Machine-Readability sub-score: 44 / 100 (a separate integration-ease signal — it never enters the Interrupt Score or badge).
- Some capability stages are not yet probed — shown plainly in the spine above, never as a pass.
- Rubric, tiers, confidence model, and badge thresholds →
Machine-readability checks 44 / 100
Four check groups, equal weight: machine interfaces, browsing efficiency, element discoverability, and discovery/agent access. Each check carries an evidence grade (proven / plausible / emerging) — an honesty label that never weights the score. What these mean →
- llms.txtemergingFound — docs.perplexity.ai/llms.txt (35.5 KB, 168 links)
- llms-full.txtemergingFound — docs.perplexity.ai/llms-full.txt (1024.0 KB, 225 links)
- AGENTS.mdemergingFound — docs.perplexity.ai/AGENTS.md
- A2A agent cardemergingFound — docs.perplexity.ai/.well-known/agent-card.json
- MCP server (well-known or official registry)plausibleNot provided
- OpenAPI/Swagger specplausibleFound — docs.perplexity.ai/openapi.json
- Rate-limit headersplausibleNot provided
- Structured JSON error responsesplausibleNot provided
- OAuth authorization-server metadata (RFC 8414)provenFound — perplexity.ai/.well-known/oauth-authorization-server
- API catalog (RFC 9727) (emerging)emergingNot provided
- Agent-payment discovery (x402 / UCP) (emerging)emergingNot provided
- Lean HTML transfer sizeplausible6 KB raw HTML (threshold 488 KB)
- Manageable DOM sizeplausible47 DOM nodes (threshold 1500)
- High content-to-markup densityplausibleNot provided
- Content readable without JS executionprovenNot provided
- Clean-content alternate (RSS/Atom/feed/markdown)plausibleNot provided
- Serves markdown on Accept: text/markdownplausibleNot provided
- Interactive elements are semanticplausible2/2 semantic (100%); 0 div/span click targets
- Form fields have accessible namesplausibleNot checked — no form fields on the representative page
- Inputs carry autocomplete hintsplausibleNot checked — no autocomplete-eligible inputs
- WebMCP tools (modelContext API)emergingNot provided
- AI retrieval/search fetchers allowed (robots.txt)provenNot provided
- Sitemap (indexability)plausibleFound — www.perplexity.ai/sitemap.xml
- schema.org JSON-LD in raw HTMLplausibleNot provided
- Content-Signal directives (robots.txt)emergingNot provided
- Web Bot Auth key directory (emerging)emergingNot provided
- Discovery Link headers on homepage (emerging)emergingNot provided
- Pricing visible without loginNot checked — homepage returned HTTP 403
- robots.txt AI-crawler accessplausibleno AI-crawler blocks in robots.txt
- Unauthenticated API error is structured JSONplausibleFound — docs.perplexity.ai/openapi.json (HTTP 200)
- Unauthenticated API returns auth guidance (401/403 or documented)plausibleNot provided
- API exposes rate-limit headersplausibleNot provided
- API key obtainable without human interactionplausibleOpenAPI spec published and signup is not SSO-only
Evidence & history
Last probed 2026-10-07 04:32 UTC. The raw JSON is the archival record.
| Date | Score | Badge | Rubric version |
|---|---|---|---|
| 2026-10-07 04:32 UTC | 72 | Moderate-Interrupt (current) | rubric v2026.4 |
| 2026-10-07 04:32 UTC | 72 | Moderate-Interrupt | rubric v2026.4 |
| 2026-09-07 01:52 UTC | 72 | Moderate-Interrupt | rubric v2026.4 |
| 2026-08-09 23:54 UTC | 72 | Moderate-Interrupt | rubric v2026.4 |
| 2026-08-09 23:54 UTC | 72 | Moderate-Interrupt | rubric v2026.4 |
| 2026-08-09 17:13 UTC | 72 | Moderate-Interrupt | rubric v2026.4 |
| 2026-08-09 05:41 UTC | 79 | Moderate-Interrupt | rubric v2026.3 |
| 2026-08-09 05:41 UTC | 79 | Moderate-Interrupt | rubric v2026.3 |
| 2026-08-09 05:38 UTC | 79 | Moderate-Interrupt | rubric v2026.3 |
| 2026-08-09 05:38 UTC | 79 | Moderate-Interrupt | rubric v2026.3 |
Alternatives in Developer / Data APIs
Other Developer / Data APIs tools in the same mode (integrated), ranked by Overall LLM-Friendliness (the mean of Interrupt Score and Machine-Readability) — comparable to this listing because they share its usage mode.
- 84triageOverallOpenWeatherMap
openweathermap.org · Developer / Data APIsMR88 - 74triageOverallupstash.com
upstash.com · Developer / Data APIsMR67 - 72triageOverallsupabase.com
supabase.com · Developer / Data APIsMR63 - 71triageOveralltavily.com
tavily.com · Developer / Data APIsMR62 - 70Overallclerk.com
clerk.com · Developer / Data APIsMR59