Can Perplexity fetch_url read through a login or paywall?

The Citead team, updated

In short. Perplexity documents that fetch_url does not bypass access controls and returns failure markers when an origin rejects a request.

Definition: Perplexity's fetch_url is an Agent API tool that fetches and extracts content from a URL supplied during an Agent API request. Perplexity documents that the tool does not bypass access controls, so an origin that rejects the request can produce a failure marker instead of the protected page content.

Key facts

  • Perplexity documents fetch_url as a tool for fetching and extracting content from specific URLs during an Agent API request. Perplexity's fetch_url documentation describes it as a known-URL tool.
  • The tool is best-effort. A completed Agent API response can still be returned when a URL cannot be fully fetched or extracted.
  • For an access-controlled page, the corresponding content item contains a failure marker when the origin rejects the request and may identify credentials or a non-GET method as the reason.
  • A 401 response means that the request lacks valid authentication credentials for the target resource. The HTTP Semantics standard requires a WWW-Authenticate challenge in that response.
  • A 403 response means that the server understood the request but refuses to fulfill it. Valid credentials that are insufficient for access also fit the standard's 403 description.

What does fetch_url do?

Perplexity's Agent API documentation says that fetch_url fetches and extracts content from specific URLs during an Agent API request. The application supplies the tool in the request, then tells the model to fetch the URL before summarizing it. The documentation separates this use from web_search, which is for finding pages when the application does not already have the URL.

{
  "tools": [
    {
      "type": "fetch_url"
    }
  ],
  "instructions": "Fetch the URL before summarizing it."
}

The tool returns fetch_url_results content items. Successful items contain extracted page text, while failed items contain an explicit marker in the snippet field for the requested URL.

What happens at a login or paywall?

Perplexity's access-control guidance is explicit: fetch_url does not bypass access controls. When the origin rejects the request, the result can explain that credentials or a non-GET method may be required. The documentation does not describe a way to provide a website login, browser cookie, or payment session to this tool.

Failure markers can identify an HTTP client error, a robots-policy block, or rate limiting. If the upstream fetch returns no item for the requested URL, Perplexity adds an item whose snippet includes no_result_returned; the documentation says to treat such markers as unavailable content rather than page text.

{
  "snippet": "no_result_returned"
}

The tool can extract whatever text the server returns at the URL. Perplexity warns that PDFs, binary downloads, and anti-bot challenge pages can produce limited or unrelated extracted content. Longer pages can also be truncated when extracted into snippets for model context.

How do HTTP responses describe the restriction?

The IETF HTTP Semantics standard defines a 401 response for a request that lacks valid authentication credentials. An origin server generating 401 must send a WWW-Authenticate header with at least one applicable challenge.

401 Unauthorized
WWW-Authenticate: Basic realm="example"

The same standard defines 403 when the server understood the request but refuses to fulfill it. If credentials were supplied but are insufficient, the server considers them inadequate for access. The standard also allows an origin to return 404 to hide the current existence of a forbidden resource, so a missing page response does not identify the precise access rule.

What should you check?

A site owner can compare the response from an unauthenticated HTTP request with the content item returned by fetch_url. The relevant signals are the status response, any WWW-Authenticate challenge, the extracted snippet, and whether the item contains a failure marker. Perplexity documents that redirects are followed when the destination can be fetched, while the returned url field remains the URL requested rather than the final redirect destination.

The tool accepts absolute http:// and https:// URLs. Its max_urls setting can be from 1 to 10, which bounds the number of URLs fetched in one tool call.

FAQ

Can fetch_url use my website customer's login?

Perplexity's documentation describes no login, cookie, or payment-session input for fetch_url. It says that an origin rejection produces a failure marker and may indicate a need for credentials or a non-GET method.

Does a 401 response mean that the page is paywalled?

No. RFC 9110 defines 401 as a response for missing or invalid authentication credentials. A paywall can use other application behavior, and 403 indicates that the server refuses the request after understanding it.

Can a redirect make protected content available?

Perplexity follows a redirect when its destination can be fetched. The result still records the originally requested URL in its url field, rather than the final destination.

What should an unavailable result be treated as?

Treat an explicit failure marker, including no_result_returned, as unavailable content. Perplexity distinguishes these markers from extracted page text.

Sources

  1. Perplexity, "Fetch URL Content", 2026
  2. IETF, "HTTP Semantics", June 2022

Check how a page reads to answer engines. Open the GEO score analyzer

Test a page and see what to fix first

The analysis usually takes less than 10 seconds and needs no account.

400,000+ pages scored in the public benchmark