Dynamic routes
You can create a dynamic route by wrapping the page file name in square brackets:

Then you can access any route and get the url parameter with the @vueuse/router useRouteParams composable:
pages/[id].vue
<template> {{ userId }}</template><script setup> import { useRouteParams } from '@vueuse/router' const userId = useRouteParams('id')</script>Will generate:

Then, you can use the generated userId within an API call.
Creating a dynamic page will overwrite the "not found" behavior on its nesting level. For example, if you create a [file].vue inside the /pages/posts/ folder, there will be no 404 fallback for the route /post.