---
name: "up.cache.get"
area: "API"
kind: "JavaScript function"
parent: "up.network module"
visibility: "experimental"
url: "https://unpoly.com/api/up.cache.get"
---
<nav aria-label="Unpoly docs">[All docs](https://unpoly.com/index.md) · [up.network module](https://unpoly.com/api/up.network.md)</nav>

# up.cache.get(requestOptions)

**This feature is experimental**. Please [share](https://github.com/unpoly/unpoly/discussions) your experiences so we know what to keep or change.

Returns a [cached](https://unpoly.com/learn/caching.md) request matching the given request options.

The request may still be in flight.

Returns `undefined` if the given request is not currently cached.

> #### Important
>
> [`up.request()`](https://unpoly.com/api/up.request.md) and [`up.render()`](https://unpoly.com/api/up.render.md) will only write to the cache when a [`{ cache }`](https://unpoly.com/api/up.request.md#options.cache) option is set.

<nav aria-label="Contents">

#### Contents

- [Example](#example)
- [Parameters](#parameters)
- [Return value](#return-value)

</nav>

## Example {#example}

```
let request = up.cache.get({ url: '/foo' })

if (request) {
  let response = await request
  console.log("Response is %o", response)
} else {
  console.log("The path /foo has not been requested before!")
}
```

---

## Parameters {#parameters}

### requestOptions {#requestOptions}

(required)

The request options to match against the cache.

See `options` for [`up.request()`](https://unpoly.com/api/up.request.md) for documentation.

Type: [Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects)

---

## Return value {#return-value}

The cached request.

Type: [up.Request](https://unpoly.com/api/up.Request.md) | undefined

