> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reader.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Proxy modes

> Two ways Reader can fetch a page: standard and premium. Pick one, or use the default.

Not every page is equally easy to fetch. A static blog post loads in a hundred milliseconds. A product detail page behind aggressive bot protection might refuse you three times before finally serving content. Reader handles both. You pick how.

## The two modes

| Mode                 | What it's for                                                                                          | Cost                   | Typical latency |
| -------------------- | ------------------------------------------------------------------------------------------------------ | ---------------------- | --------------- |
| `standard` (default) | Fast and affordable. Works for the vast majority of the web: blogs, docs, news, APIs, marketing pages. | **1 credit** per page  | Fast            |
| `premium`            | Bypasses aggressive bot walls. Use when `standard` gets blocked.                                       | **3 credits** per page | Slower          |

You set the mode with `proxyMode` on the request:

```json theme={null}
{
  "url": "https://shop.example.com/item/42",
  "proxyMode": "premium"
}
```

Omit `proxyMode` entirely and Reader defaults to `standard`.

## When to use `premium`

Force `proxyMode: "premium"` when the target site actively blocks datacenter proxies. Amazon product pages, LinkedIn profiles, booking sites, many e-commerce platforms, and most large social networks require premium residential proxies to get clean content.

```ts theme={null}
await reader.read({
  url: "https://www.amazon.com/dp/B08N5WRWNW",
  proxyMode: "premium",
});
```

## When to use `standard`

`standard` is the default and works for the vast majority of the web. Use it explicitly when you want to guarantee cost at exactly 1 credit per page, or when you want a clear error signal if a site blocks you (rather than silently paying more).

```ts theme={null}
await reader.read({
  url: "https://docs.example.com/api/v1/reference",
  proxyMode: "standard",
});
```

## Pre-flight credit checks

Reader checks your balance before the scrape runs:

* **`premium`**: rejected upfront if your balance is below 3 credits per page.
* **`standard`**: rejected upfront if your balance is below 1 credit per page.

## Cache hits are free

A scrape served from cache is **0 credits regardless of mode**. If the cached version was captured with `standard` and you now ask for it with `premium`, Reader still serves the cached copy and bills you nothing. The mode you requested only matters when Reader has to actually fetch the page.

See [Caching](/home/concepts/caching) for how keys and TTLs work.

## What the mode does not control

* **Content extraction**: `onlyMainContent`, `includeTags`, `excludeTags` work identically across all modes
* **Formats**: `markdown` and `html` are available in every mode
* **Rendering**: whether a page needs JavaScript execution is decided by Reader internally; it's not something you toggle alongside `proxyMode`

## Next

* [Choosing a proxy mode](/home/guides/advanced/choosing-a-proxy-mode): the practical decision guide
* [Credits and billing](/home/concepts/credits-and-billing): what each mode costs
* [Caching](/home/concepts/caching): free cache hits
