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

# Managing caches

> The global caches object — accessing the default cache and opening named caches.

## Default cache

The `caches.default` API is strongly influenced by the web browsers’ Cache API Interface and gives you a single, unnamed cache shared across requests.

```typescript theme={null}
await caches.default.match(request);
```

## Named caches

You may create and manage additional Cache instances via the `caches.open` method. Named caches are useful when you want to version cache contents (e.g. `cache:v1`, `cache:v2`) so a deploy can switch over cleanly.

```typescript theme={null}
const cache = await caches.open("cache:v1");
await cache.match(request);
```

<Info>
  **Note:** When using the Cache API, avoid overriding the hostname in cache requests, as this can lead to unexpected behaviour when using multiple domains associated with a PullZone.

  ```typescript theme={null}
  // recommended approach: use current request url
  const url = new URL(request.url);

  const cache = await caches.open("cache:v1");
  const response = await cache.match(`${url.origin}/example.html`);
  ```
</Info>

## References

* [Reading & writing](./reading-writing) — `match`, `put`, `delete` method reference.
* [Examples](./examples) — end-to-end recipes using named and default caches.
* [Cache API overview](./index) — regional behavior, limitations, and API surface.
