# Access a URL parameter outside Sapper script module

> Learn how to access a URL parameter in Sapper outside the preload function by returning it from preload and exposing it as a prop with export let.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2020-08-04 | Topics: [Svelte](https://flaviocopes.com/tags/svelte/) | Canonical: https://flaviocopes.com/sapper-access-url-param-outside-module/

Suppose you're building a Svelte application using Sapper, and you have a dynamic page route, for example `/routes/[id].svelte`.

You want to get the dynamic part of the URL (the `id` in this case), and you know you can get it in the `preload()` function in the `<script context="module">` part of the component:

```js
<script context="module">
	export async function preload({ params }) {
		const { id } = params
	}
</script>
```

But the problem is that you need to use it outside of `preload()`, to perform something else.

The way to do so is to return it from `preload`, and define it as a prop of the component, using the usual `export *` syntax.

Here's an example:

```js
<script context="module">
	export async function preload({ params }) {
		const { id } = params
		return { id }
	}
</script>

<script>
export let id

if (typeof window !== 'undefined') {
  alert(id)
}
</script>
```
