Static IP guide

Making API requests with a static IP from a Node app on Render

Render does not have a native Fixie integration the way Heroku and Vercel do, so the setup is manual but small: create an HTTP/S proxy in the Fixie dashboard, paste it into your service's environment as FIXIE_URL, and point axios at it. Web services, background workers, and cron jobs all read the same variable.

RuntimeNode.js and JavaScript
PlatformRender
DestinationAPI allowlisting
Fixie productFixie HTTP/S proxy

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 Render

Create a Fixie HTTP/S proxy in the Fixie dashboard. Copy the proxy value into Render Environment Variables as FIXIE_URL, and copy the outbound IPs into the destination allowlist.

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

  • Environment groups let you share one FIXIE_URL across several Render services that call the same allowlisted APIs.
  • Render deploys replace instances and can shift egress IPs; traffic through Fixie is unaffected because the proxy IPs never change.

Allowlist and test the static IPs

  1. Open the Fixie dashboard and copy the outbound IP addresses for this proxy.
  2. Add both IPs to the API provider.
  3. Deploy the updated Node.js app on Render.
  4. Run a small connection test before sending production traffic.

Related guides

Related docs