Using Vercel rewrites as a reverse proxy

Last updated:

|Edit this page

On this page

Note: The following self-hosted proxy isn't provided by PostHog, so we can't take responsibility for it! If unsure, we recommend using our managed reverse proxy.

Note: If you are using the EU cloud then use eu instead of us in all domains (e.g. us.i.posthog.com -> eu.i.posthog.com)

Vercel supports rewrites which we can use as a reverse proxy. Create a vercel.json file and add a rewrites object from the /ingest route.

JSON
{
"rewrites": [
{
"source": "/ingest/static/:path*",
"destination": "https://us-assets.i.posthog.com/static/:path*"
},
{
"source": "/ingest/:path*",
"destination": "https://us.i.posthog.com/:path*"
}
]
}

Some frameworks, like SvelteKit and Astro, require a hungrier regex pattern like:

JSON
{
"rewrites": [
{
"source": "/ingest/static/:path(.*)",
"destination": "https://us-assets.i.posthog.com/static/:path*"
},
{
"source": "/ingest/:path(.*)",
"destination": "https://us.i.posthog.com/:path*"
}
]
}

Note: Some frameworks, like T3 app, don't support Vercel rewrites well. If neither of these options work, we recommend trying another proxy method.

Once done, set the /ingest route of your domain as the API host in your PostHog initialization like this:

JavaScript
posthog.init('<ph_project_api_key>',
{
api_host: 'https://www.your-domain.com/ingest',
ui_host: '<ph_app_host>'
}
)

Once updated, deploy your changes on Vercel and check that PostHog requests are going to https://www.your-domain.com/ingest by checking the network tab on your domain.

Setup video

Questions? Ask Max AI.

It's easier than reading through 620 docs articles.

Community questions

Was this page useful?

Next article

Billing limits and alerts

To help you avoid surprise bills, PostHog enables you to set billing limits for each of our products. Setting a billing limit means we will stop ingesting and processing your data so you are not charged over the set limit. In other words, if you exceed the billing limit you set, your additional data is lost forever. To set a billing limit: Go to your organization's billing settings View the billing limit section at the bottom of the product and click "Set billing limit." Set your dollar limit…

Read next article