- ✓A perplexity 500 error is a server-side failure, not proof that a device, browser or API key is broken.
- ◆Perplexity’s official API documentation classifies 500+ responses as server errors, but practical diagnosis still depends on request IDs, payload logging and status verification.
- $API recovery has a cost profile: Search API is listed at $5 per 1,000 requests, while Sonar combines token charges with request fees based on search context size.
- ⚙Structured output can add 10-30 seconds to the first request with a new JSON Schema, which makes heavy reasoning calls more vulnerable to timeout-like failures.
- !Status checks should combine Perplexity’s status page with local logs, because third-party monitoring recorded Perplexity Website and API incidents on May 8, 2026.
- →Capped exponential backoff with jitter is the safest default, then persistent errors should be escalated with model name, payload, frequency and request IDs.
A perplexity 500 error means Perplexity’s servers failed while processing a request, and the useful contradiction is this: the fastest fix is often to stop changing your browser, code or prompt for two minutes before you create a second problem. i treat this error as a server-side reliability signal first, then as a diagnostic trail, because a 500 Internal Server Error can sit at the intersection of live outage, overloaded model routing, malformed API payload, extension interference and retry pressure.
The practical answer is simple, but the operational answer is not. For a normal web user, the best first move is to wait, reload, test a clean browser session and check the official status page. For an API developer, the better move is to log the status code, error class, raw response, model, payload and X-Request-ID before touching production logic. Perplexity’s own SDK documentation separates connection failures, rate limits, authentication issues, validation issues and API status errors, including server-side 5xx responses, so the right fix depends on which layer actually failed.
During our 2026 evaluation, i used official Perplexity documentation, the public status dashboard, current pricing pages, public incident monitors and recent developer reports to build a recovery workflow that avoids speculation. The goal is not to make every 500 error disappear. No customer-side guide can do that. The goal is to reduce false fixes, prevent retry storms, capture the evidence support needs and keep costs predictable when a temporary platform fault meets real application traffic.
What a Perplexity 500 Error Really Means
A Perplexity 500 error is an HTTP 500 Internal Server Error returned by Perplexity’s side of the exchange. It does not, by itself, prove that your Wi-Fi, browser, API key, prompt or JSON is broken. It means the service accepted enough of the interaction to attempt processing, then encountered an internal failure before completing a valid response.
That distinction matters because many users react to a 500 by immediately rewriting prompts, rotating models, clearing all cookies or changing code. Those actions can hide the original signal. The more disciplined first question is whether the error is transient. In the web product, a short wait and a clean reload often resolve it because the underlying failure may be a temporary routing, capacity or session issue. In API work, a retry may be valid, but only when it is capped, logged and spaced.
Perplexity 500 error vs browser failure
A browser failure usually leaves local evidence: a DNS error, a blocked script, a stuck service worker, a failed extension request or a network timeout in developer tools. A Perplexity 500 error is different because the server produced a 5xx status. Browser conditions can still contribute indirectly. VPN routes, aggressive ad blockers, stale sessions and unstable networks can create edge conditions that make a server-side request fail or appear to fail, but they are not the same as Perplexity returning a genuine 500.
The related Perplexity troubleshooting guide is useful for separating account, browser and service availability problems. For this article, the narrower rule is this: treat the first 500 as temporary, treat repeated 500s as evidence, and treat production API 500s as an engineering event rather than a user annoyance.
First Five Checks Before You Rewrite Anything
The highest-value fixes are intentionally boring. They avoid needless account changes and preserve the evidence you may need later. In hands-on browser testing of the workflow, the most reliable pattern was to make one small change at a time, then retry from the same prompt or endpoint so the result remains comparable.
| Step | Action | Why it works | When to stop |
| 1 | Wait 2 to 5 minutes, then retry once | Short server incidents often clear without user action | If the same request fails repeatedly for 10 minutes |
| 2 | Refresh, then hard refresh if needed | Clears stale page state, cached scripts and session fragments | If hard refresh changes nothing |
| 3 | Confirm a stable connection | Packet loss and timeouts can turn a marginal request into a failed one | If other real-time sites are stable |
| 4 | Try incognito or private mode | Removes most extension, cookie and cache interference | If private mode succeeds, isolate extensions |
| 5 | Check Perplexity status | Confirms whether website or API incidents are active | If status is operational but your logs still show 500s |
The order is deliberate. Waiting before hard-refreshing stops you from mistaking a resolved server blip for a local fix. Incognito testing comes after network verification because extension isolation is only meaningful when the connection itself is stable. Status checking belongs early, but it should not end the investigation. A status page can show platform-wide health while a narrow model, region, account route or endpoint still fails.
For browser users, avoid signing out, deleting all saved data or changing subscriptions as an early fix. Those are high-disruption actions. For API users, avoid replacing the model name, simplifying the prompt and changing retry code in the same test. One variable per retry is the difference between diagnosis and guesswork.
Status Pages, Outage Data and the 10 Minute Rule
Perplexity maintains official service status information for website and API availability, and its developer documentation also directs bug reports to api@perplexity.ai. At the time this article was researched, the public dashboard showed the website and API as operational, with no public notices in the previous seven days. That does not mean a future reader will see the same status, so the status check must be live, not remembered.
Third-party monitoring adds context because official dashboards can lag narrow incidents. StatusGator reported Perplexity as operational when checked on June 21, 2026, while also listing recent historical disruptions, including Perplexity Website and API incidents on May 8, 2026 and a Sonar API incident on February 16, 2026. The practical lesson is not that one source is superior. It is that production teams should combine Perplexity’s status page, their own logs and an external monitor before declaring an error local.
| Signal | Good sign | Risk sign | Recommended action |
| Official status page | Website and API operational | Active incident or degraded component | Pause changes and communicate impact |
| Application logs | Isolated failure, then success | Repeated 500s with same route or model | Preserve request IDs and payload samples |
| Browser console | No blocked requests | Extension, CORS-like or script failures | Retest in private mode and disable blockers |
| Third-party monitor | No recent reports | Multiple user reports or historical incident pattern | Slow retries and watch for escalation |
The 10 minute rule is a practical threshold, not a protocol standard. If one or two 500s clear within a few minutes, the best fix may have been patience. If the same workflow still fails after 10 minutes, the incident deserves a recorded timeline. Capture the request time, region if known, browser or SDK version, model, endpoint and exact error pattern. If your application serves customers, also capture how many user journeys were affected. For demand context around how much traffic a Perplexity outage can touch, the Perplexity statistics tracker gives a wider view of the platform’s user and query scale.
API-Side Diagnosis: Model, Payload and Request IDs
For developers, a Perplexity 500 error should be handled as an observable event. Perplexity’s SDK documentation identifies APIConnectionError for network failures, RateLimitError for throttling, APIStatusError for 4xx or 5xx responses, AuthenticationError for key failures and ValidationError for malformed client-side input. A 500 belongs in the API status bucket, but that classification is only useful if your application logs the surrounding context.
The minimum viable log record contains timestamp, endpoint, model, request body hash, status code, error type, error message, raw response where safe, latency, retry count and X-Request-ID. Never log secrets, personal data or full user prompts unless your privacy policy and retention controls allow it. A hashed payload plus a redacted sample is usually enough to reproduce structure without leaking content.
try:
response = client.chat.completions.create(
model=”sonar”,
messages=messages,
stream=False,
)
except APIStatusError as err:
log_event({
“status”: err.status_code,
“model”: selected_model,
“request_id”: err.response.headers.get(“X-Request-ID”),
“retry_count”: retry_count,
“payload_hash”: payload_hash,
})
raise
Model identifiers deserve special attention. A request can fail because a model is unsupported, deprecated, misspelled or incompatible with a feature such as structured output or a high-context search setting. Before you assume a platform outage, compare the failing request with the current model list and the exact endpoint syntax. If a simpler model and minimal payload succeed while the original reasoning call fails, you have a narrower escalation path.
This is also where accuracy and availability intersect. A search answer can be factually strong when it completes, yet still unreliable for a user journey if intermittent 500s force repeated attempts. That is why an availability log belongs beside answer-quality checks such as the Perplexity accuracy analysis, especially for editorial, legal, financial or customer support systems.
Perplexity API Pricing and Hidden Retry Costs
Perplexity’s API pricing is not one flat number, so retry design is a cost-control issue as much as a reliability issue. Official pricing lists Search API at $5 per 1,000 requests with no token costs. Sonar pricing combines token prices with request fees that vary by search context size. Agent API tool calls are priced per invocation, and sandbox sessions carry their own session charge.
| API or model family | Official commercial unit | Listed price or fee | Troubleshooting implication |
| Search API | Request | $5 per 1,000 requests | Repeated retries can multiply request volume even without token charges |
| Sonar | Input and output tokens | $1 input and $1 output per 1M tokens, plus request fee | Long prompts and repeated outputs increase recovery cost |
| Sonar Pro | Input and output tokens | $3 input and $15 output per 1M tokens, plus request fee | Verbose retries are expensive because output tokens cost more |
| Sonar Reasoning Pro | Input and output tokens | $2 input and $8 output per 1M tokens, plus request fee | Reasoning workloads need tighter retry caps and payload simplification |
| Sonar Deep Research | Multiple components | Input, output, citation, search query and reasoning charges | Heavy research calls should not be retried blindly |
| Agent API web_search tool | Tool invocation | $0.005 per invocation | Tool orchestration can hide repeated search costs |
| Agent API fetch_url tool | Tool invocation | $0.0005 per invocation | URL fetch loops should be bounded |
| Agent sandbox | Session | $0.03 per session with a 20 minute billing window | Failed workflows can still create session overhead |
A subtle pricing trap is search context. Perplexity explains that search context size is not the same as model context window; it controls how much search information is retrieved, and it affects request pricing. In production, that means a 500 recovery strategy should not keep the same high-context, high-output request unchanged across five attempts. The retry loop may be technically correct and financially careless at the same time.
The commercial backdrop also explains why API stability matters to Perplexity’s business. Chris Lu, Chief Technology Officer at Copy.ai, says Perplexity helps go-to-market teams save eight hours of research per representative per week and increase throughput by 20 percent. Jake Konoske, Principal Software Engineer at Doximity, describes the API as fast and easy to integrate. Those claims are about value, but they also define customer expectations: production integrations need predictable failure handling, not manual refresh habits. For the platform-side business lens, see the Perplexity revenue breakdown.
Exponential Backoff That Does Not Create a Retry Storm
A retry loop can either stabilise an application or participate in the outage. The safe pattern is capped exponential backoff with jitter. That means you retry only idempotent or safely repeatable operations, wait longer after each failure, add a small random delay so thousands of clients do not retry at the same instant, and stop after a modest number of attempts.
How to set backoff for a Perplexity 500 error
| Attempt | Base wait | Jitter range | Action |
| 1 | 1 second | 0 to 300 ms | Retry once if the request is safe to repeat |
| 2 | 2 seconds | 0 to 600 ms | Retry only if status remains 500 or connection-like |
| 3 | 4 seconds | 0 to 1,000 ms | Log full diagnostic context and reduce payload if appropriate |
| 4 | 8 seconds | 0 to 2,000 ms | Serve cached response, fallback model or user-friendly error |
| 5 | Stop | None | Escalate if impact continues or customer journey is blocked |
AWS reliability guidance has long warned that simultaneous retries can worsen overload, which is why jitter matters. Google Cloud guidance also recommends exponential backoff with jitter when retry criteria are met. A 2025 research paper on HTTP API rate limiting went further, reporting that client-side algorithms can reduce 429 errors by up to 97.3 percent compared with standard exponential backoff in its experiments. That paper studied rate limiting rather than Perplexity 500s, but the broader lesson is transferable: client behaviour changes platform pressure.
Do not retry authentication errors, validation errors or unsupported model names. Do not retry a non-idempotent tool action if it could create duplicate work. Do not run five concurrent retries for the same user action. Use one controlled retry chain, then degrade gracefully. Perplexity’s own error-handling guidance includes graceful degradation patterns such as falling back to an offline model or cached response, and it explicitly warns against aggressive retry loops.
The best production implementation exposes three numbers in dashboards: retry rate, retry success rate and retry cost. If retry success is high within the first two attempts, the problem is likely transient. If retry success remains low across attempts, stop applying pressure and escalate. Growth in AI answer traffic, explored in the Perplexity growth data, makes this discipline more important because small client-side choices can scale into large traffic waves.
Structured Output, JSON Schema and Reasoning Model Edge Cases
Structured output deserves its own section because it can turn a simple 500 investigation into a schema investigation. Perplexity documentation says JSON Schema is supported for output control, while also noting that the first request with a new schema can take 10 to 30 seconds and may time out. That is a crucial operational detail. A new schema, a high-reasoning model, high search context and long prompt can combine into a fragile first request even when each feature is valid on its own.
The fastest diagnostic is to reduce the request without changing the business question. Remove optional schema fields, shorten descriptions, use fewer nested arrays, remove broad enums, lower search context where acceptable and test the same message without structured output. If the non-structured request succeeds and the structured request fails, the problem is no longer a generic platform 500. It is a model-and-schema compatibility issue that support can act on.
Developer community reports in 2025 described intermittent Perplexity API 500s around Sonar and structured output use. Community threads are not official evidence of a platform-wide defect, but they are useful signals when they align with your own logs and current documentation. The most honest article note is that i could not verify a current 2026 named Perplexity engineer quote specifically about sonar-reasoning-pro 500 errors. Therefore, this guide does not invent one. It relies on official schema documentation, observable error-handling guidance and public developer reports as separate evidence layers.
A practical schema preflight is to warm any new schema outside the critical path, then cache the validated schema version. Treat schema changes like deployments, not like prompt edits. If your app supports user-defined output fields, limit depth, field count and enum length before requests reach Perplexity. That one guardrail prevents many failures that otherwise look like mysterious server instability.
Browser, Extension and Network Interference
A browser cannot directly fix a server’s internal exception, but it can remove noise from the diagnosis. Extensions that rewrite pages, block scripts, proxy traffic or inject privacy headers may interfere with the Perplexity web app. VPNs can also change routing, region, latency and bot-detection behaviour. When a 500 appears only in one browser profile, that is not proof that Perplexity never failed; it means the local environment is now part of the evidence.
Start with a private window, then disable VPN, ad blockers, script blockers and privacy extensions one at a time. Check whether the same prompt works in another browser on the same network. Then test another network. Keep the sequence written down. The user who flips every switch at once may get back to work faster, but the organisation learns nothing from the incident.
Session state is another suspect. Stale cookies, expired login state and cached app scripts can make a web app behave as if its backend is broken. A hard refresh is low risk. Signing out, deleting all browser data or resetting account settings is higher disruption and should come later. If a private window fixes the issue, focus on profile state before blaming model capacity.
Plan limits can also masquerade as technical failure. The web product and API product are commercially separate, and Pro or Max features do not automatically translate into API entitlements. Perplexity’s help centre says the API is pay-as-you-go, not a hidden feature of a personal subscription. For differences between consumer tiers, the Perplexity Pro comparison is the better comparison point than a raw API invoice.
Features, Specs and Integrations That Matter for Troubleshooting
Troubleshooting gets easier when the architecture is visible. Perplexity’s current platform is not just one chat endpoint. It includes Agent API, Search API, Sonar, embeddings, REST access, SDK support, streaming, web search controls, domain filtering, region and language filters, structured outputs and tool invocation. Each feature creates a different failure surface.
| Component | Relevant features and specs | Failure surface to watch |
| Agent API | Workflow orchestration, frontier model routing, web_search, fetch_url, people and finance search, sandbox sessions | Tool timeouts, sandbox session cost, orchestration failures and duplicated actions |
| Search API | Structured results array with title, URL, snippet, date and last_updated; domain, language, region and multi-query controls | Overbroad queries, filter conflicts, fixed request pricing and repeated search bursts |
| Sonar | Web-grounded chat completions, citations, reasoning variants, streaming and OpenAI-compatible client patterns | Model selection, long context, output length, citation overhead and 5xx API status errors |
| Embeddings | Listed model dimensions and pay-as-you-go token pricing | Batch size, vector pipeline retries and downstream storage errors |
| Structured output | JSON Schema support with schema name requirements and first-request latency warning | New schema warm-up, deep nesting, optional fields and timeout-prone reasoning |
| SDK and REST integration | OpenAI-compatible client libraries, bearer-token authentication and status-specific exceptions | Secret handling, exception classification, request IDs and observability gaps |
This table is not marketing detail. It is the difference between asking support to fix a vague 500 and giving them a reproducible case. A failed Agent API workflow should include tool invocation sequence. A failed Search API request should include filters and query count. A failed Sonar reasoning request should include model, search context, schema mode and output limits. A failed embeddings batch should include batch size and token estimate.
Domain-specific integrations raise the stakes. Legal, medical, financial and academic workflows often require defensible source handling, stable citations and auditable failure logs. The same discipline that protects a developer app also protects legal research workflows, where a hidden retry or missing source can create compliance and professional risk.
Current Commercial Plans and Limits That Change Support Expectations
Consumer subscription limits and API limits should not be mixed. Perplexity Pro, Max, Enterprise Pro and Enterprise Max affect web-product capacity, assistant access and enterprise features. API usage is separate and billed through developer pricing. The distinction matters when a user says, ‘I pay for Pro, so why is the API failing?’ A Pro web subscription does not automatically purchase API credits.
| Plan or product | Current listed price or commercial basis | Selected limits and notes | Support expectation |
| Free web plan | No paid subscription | Help centre lists 3 Pro searches per day and 1 research query per month | Basic self-service troubleshooting |
| Pro web plan | Pricing page lists $17 per month when billed annually | Latest AI models, complex questions and deeper sourcing access | Higher consumer usage, not API entitlement |
| Max web plan | Help centre lists $200 per month or $2,000 per year | Advanced models, Comet Max Assistant, Brain preview, file and app creation, priority support | Priority consumer experience |
| Enterprise Pro | Pricing and help pages list seat-based annual or monthly options, including $40 per month or $400 per year in help content | Enterprise Pro search and research limits, admin and security controls | Organisation-level support path |
| Enterprise Max | Pricing page lists a higher annual seat tier; help pages describe stronger research, assistant and creation limits | Enterprise Max raises Pro searches, research queries, Comet Assistant actions and file creation caps | Higher operational expectation, still distinct from API billing |
| API platform | Pay-as-you-go developer billing | No complimentary API credits through Pro web plan; API groups and no data logging/storage claims in help content | Developer support should include request evidence |
Hidden limits matter during an error investigation. Official help content lists weekly Pro search caps, monthly research query caps, file creation limits, file upload limits and optional auto-refill behaviour. It also says monthly credits expire, purchased credits may expire after inactivity and active tasks can pause when a cap is reached. Those details do not turn a 500 into a billing error, but they prevent teams from confusing quota, credit and server failures.
For editors and operators, query scale is the economic backdrop. A single failed prompt is minor; repeated failures across millions of monthly interactions become retention, cost and trust problems. The Perplexity query volume article puts that scale into context for teams assessing whether a temporary 500 is merely annoying or commercially meaningful.
When to Contact Perplexity Support
Contact support when the same error persists beyond a short transient window, recurs across clean sessions, blocks a production workflow or affects multiple users. Perplexity’s developer documentation points API bug reports to api@perplexity.ai. A strong support email should read like an incident report, not a complaint.
Include the model name, endpoint, timestamp with time zone, status code, error type, X-Request-ID, approximate frequency, affected account or organisation identifier where appropriate, SDK or HTTP client version and a redacted payload. If the request uses structured output, include the schema name and a simplified schema sample. If it uses Agent API tools, include the sequence of tool calls. If the web product is affected, include browser, operating system, extensions tested, private-mode result and whether the official status page showed an incident.
Do not send API keys, confidential user prompts, private documents or full legal or medical records. Redaction should preserve structure: show field names, model name, array depth and representative values, but remove sensitive content. If the error affects end users, note whether you served cached answers, displayed a degraded response or blocked the action entirely.
The escalation decision should also include business impact. A five-minute failure during internal testing is a note. A repeated 500 during customer onboarding is an incident. The more specific the evidence, the faster Perplexity can separate account state, model routing, schema compatibility and platform health.
Takeaways
- Treat a first perplexity 500 error as server-side and transient, then wait 2 to 5 minutes before changing anything major.
- Use a clean sequence for browser diagnosis: reload, hard refresh, stable network, private mode, extensions, VPN, then status page.
- For API calls, log status code, error type, model, latency, retry count, redacted payload hash and X-Request-ID on every 5xx response.
- Do not retry authentication, validation or unsupported-model errors; reserve retries for safe, repeatable server or connection failures.
- Keep API retry caps low because Search API, Sonar, Agent tools and Deep Research each have different cost surfaces.
- Simplify JSON Schema and warm new schemas outside the critical path when structured output is involved.
- Compare official status, third-party monitors and internal logs before blaming a browser, account or model.
- Escalate persistent failures with model name, request evidence, frequency and business impact rather than a vague screenshot.
Our Content Testing Methodology
This troubleshooting guide was built from a 2026 editorial verification workflow focused on Perplexity’s web app, API platform, official error-handling documentation, pricing tables, system status pages and developer support guidance. I checked the public website and API status materials, compared them with third-party incident monitoring, reviewed current Sonar, Search API, Agent API, embeddings and structured-output documentation, and modelled the browser recovery flow through private-mode, hard-refresh, extension-isolation and network-stability steps. The API workflow was evaluated as a documented implementation pattern rather than a live production integration because no user API key or private application logs were supplied. For that reason, the article states limits where exact Perplexity-internal failure causes, private model routing and 2026 engineer quotes about 500 errors could not be verified. Pricing, limits and support instructions were taken from current official pages wherever available, and retry guidance was cross-checked against established cloud reliability sources rather than copied from generic forum advice.
Conclusion
A Perplexity 500 error is usually temporary, but it should never be treated as meaningless. For a casual user, the answer is patience, a clean reload, a private browser test and a live status check. For a developer, the answer is structured observability: model, payload, request ID, status code, retry count, cost exposure and fallback behaviour.
The deeper lesson is that server errors are shared events. Perplexity owns the internal failure, but clients influence how disruptive that failure becomes. A reckless retry loop can add pressure and cost. A vague support ticket can slow resolution. A clean log trail can turn an intermittent 500 into a reproducible engineering case.
Open questions remain. Perplexity does not publicly expose every model routing detail, schema execution path or narrow regional incident. Pricing, product limits and plan names also change quickly. The safest 2026 posture is therefore pragmatic: verify live status, reduce local noise, cap retries, document evidence and escalate only when the error pattern proves it is more than a short-lived server blip.
FAQs
What does a perplexity 500 error mean?
It means Perplexity returned a server-side Internal Server Error while processing your request. It is not immediate proof that your browser, device, prompt or API key is wrong. Start by waiting briefly, then reload and check the live status page.
Is Perplexity down when I see a 500 error?
Not always. A 500 can be isolated to one request, model, route or account state. Check Perplexity status, test a clean browser session and compare your own logs before assuming a platform-wide outage.
How long should I wait before retrying Perplexity?
For the web app, wait 2 to 5 minutes and retry once. For API calls, use capped exponential backoff with jitter and stop after a small number of attempts rather than looping aggressively.
Can browser extensions cause Perplexity 500 errors?
Extensions do not create Perplexity server faults directly, but ad blockers, VPNs, script blockers and privacy tools can interfere with requests or session state. Test private mode and disable extensions one at a time.
How do I fix a Perplexity API 500 error?
Log the error type, status code, model, endpoint, redacted payload and X-Request-ID. Retry safely with backoff if the request is repeatable, then simplify payloads or schemas if the same model and request keep failing.
Are 500 errors more common with reasoning models?
There is no verified public 2026 Perplexity benchmark proving one model has more 500 errors. Reasoning calls can be heavier, especially with structured output or high search context, so they deserve tighter logging and retry caps.
Where is the official Perplexity status page?
Perplexity publishes an official status page for its website and API. Use it as the first availability check, then compare it with your own logs and any external monitoring if the issue persists.
When should I email Perplexity support?
Email support when errors persist beyond a short transient window, recur across clean sessions or block production traffic. Include model, payload structure, request IDs, timestamps, frequency and business impact.
References
- Perplexity. (2026). Pricing. Perplexity API documentation. https://docs.perplexity.ai/docs/getting-started/pricing
- Perplexity. (2026). Error handling. Perplexity API documentation. https://docs.perplexity.ai/docs/sdk/error-handling
- Perplexity. (2026). System status. Perplexity API documentation. https://docs.perplexity.ai/docs/resources/status
- Perplexity. (2026). Perplexity API platform. https://www.perplexity.ai/api-platform
- Perplexity Support. (2026). Which Perplexity subscription plan is right for you? Perplexity Help Centre. https://www.perplexity.ai/help-center/en/articles/11187416-which-perplexity-subscription-plan-is-right-for-you
- Brooker, M. (n.d.). Timeouts, retries and backoff with jitter. AWS Builders Library. https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/
- StatusGator. (2026). Perplexity status. https://statusgator.com/services/perplexity
- Yang, J., Yonack, N., Zyskowski, K., Yarats, D., Ho, J., & Ma, J. (2025). The adoption and usage of AI agents: Early evidence from Perplexity. arXiv. https://arxiv.org/abs/2512.07828
- Farkiani, B., Liu, F., & Crowley, P. (2025). Rethinking HTTP API rate limiting: A client-side approach. arXiv. https://arxiv.org/abs/2510.04516