Static IP guide
Making API requests with a static IP from a Node app on Vercel
Vercel functions run across a broad, changing pool of egress IPs, so API partners that allowlist callers cannot rely on them. The Fixie Vercel integration provisions a proxy and injects FIXIE_URL into your project, and each function invocation routes its axios calls through your two static addresses.
Recommended setup
Use Fixie Vercel integration for HTTP and HTTPS requests to an API, webhook provider, or service that allowlists outbound IP addresses. Store the proxy value in FIXIE_URL, then configure Node.js to route outbound traffic through Fixie before connecting to API allowlisting.
Set up Fixie on Vercel
Add the Fixie Vercel integration, create a proxy in the Fixie dashboard, and connect it to the Vercel project and environment. The integration can create FIXIE_URL in Vercel Environment Variables for the connected project.
Pull Vercel environment variables locally
vercel env pull
grep FIXIE_URL .env.localImplementation
The example below shows the core application-side change. Keep credentials in environment variables and avoid committing proxy, database, or API secrets.
Make an HTTP request through FIXIE_URL
const axios = require('axios');
const fixieUrl = new URL(process.env.FIXIE_URL);
axios.get('https://api.example.com/data', {
proxy: {
protocol: 'http',
host: fixieUrl.hostname,
// URL drops default ports, so fall back to 80 for Fixie's standard proxy port.
port: Number(fixieUrl.port) || 80,
auth: {
username: fixieUrl.username,
password: fixieUrl.password,
},
},
}).then((response) => {
console.log(response.status);
});Good to know
- Use the Node.js runtime for these routes — Edge functions cannot use an HTTP proxy for outbound requests.
- Run
vercel env pullto bringFIXIE_URLinto.env.localfor local development parity. - The proxy adds one hop, typically a few milliseconds — pick a Fixie region near your function region to keep it that way.
Allowlist and test the static IPs
- Open the Fixie dashboard and copy the outbound IP addresses for this proxy.
- Add both IPs to the API provider.
- Deploy the updated Node.js app on Vercel.
- Run a small connection test before sending production traffic.
Related guides
- Connecting to Postgres with a static IP from a Node app on Vercel
- Making API requests with a static IP from a Node app on Heroku
- Making API requests with a static IP from a Python app on Vercel
- Connecting to MySQL with a static IP from a Node app on Vercel
- Making API requests with a static IP from a Node app on Render
- Making API requests with a static IP from a Go app on Vercel