# How to access clientAddress in Astro api routes?
I know that we can access user's IP address in Astro using Astro.clientAddress value but this would only work in .astro pages.
```
// your-ip.astro
---
const detectedIp = Astro.clientAddress;
---
<h1>
Your IP: {{ detectedIP }}
</h1>
```
but in my case, I have created a server-side API endpoint in Astro itself so like below.
```
// pages/api/create-user.ts
export async function post({ request }) {
console.log(await request.json());
// I want to do like this in typescript endpoint file
// const IP = Astro.clientAddress;
return {
body: JSON.stringify({
name: 'Astro',
url: 'https://astro.build/',
ip: `Your IP: {IP}`
}),
};
}
```
I want to access the user's IP address within this typescript file itself, but I think Astro is not provided in the .ts file context. So how to achieve that?
## Answer
You can access the clientAddress from the API context object in an endpoint function.
```
import type { APIContext } from 'astro';
export function get({ clientAddress }: APIContext) {
return {
body: `Your IP address is: ${clientAddress}`
}
}
```