Static IP guide
Making API requests with a static IP from a Node app on Fly.io
Fly.io machines can stop, start, and migrate between hosts, and their shared egress IPs offer no stability for API allowlisting. Store your Fixie proxy URL with fly secrets set FIXIE_URL=... and route axios through it; the partner API then sees the same two addresses from every machine and region.
Recommended setup
Use Fixie HTTP/S proxy 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 Fly.io
Create a Fixie HTTP/S proxy in the Fixie dashboard. Copy the proxy value into Fly.io secrets as FIXIE_URL, and copy the outbound IPs into the destination allowlist.
Set a Fly.io secret
fly secrets set FIXIE_URL=...Implementation
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
- Check fly status for your app's REGION and create the Fixie proxy in the nearest Fixie region to keep the extra hop short.
fly secrets settriggers a release, after whichprocess.env.FIXIE_URLis live on all machines — no separate deploy step.
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 Fly.io.
- Run a small connection test before sending production traffic.
Related guides
- Connecting to Postgres with a static IP from a Node app on Fly.io
- 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 Fly.io
- Making API requests with a static IP from a Node app on Vercel
- Making API requests with a static IP from a Go app on Fly.io
- Making API requests with a static IP from a Node app on Render