Static IP guide

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

Python services on Render pick up Fixie with a proxies dict in requests, or process-wide by exporting http_proxy and https_proxy alongside FIXIE_URL in the service environment. Since Render has no marketplace integration, the variable is one you create — the dashboard's environment tab and render.yaml both work.

RuntimePython
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 Python 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

import os
import requests

proxies = {
    "http": os.environ["FIXIE_URL"],
    "https": os.environ["FIXIE_URL"],
}

response = requests.get("https://api.example.com/data", proxies=proxies)
print(response.status_code)

Good to know

  • render.yaml users: mark the variable sync: false so the secret is entered in the dashboard rather than committed to the repo.
  • Cron jobs on Render are separate services; give them the same FIXIE_URL if they call allowlisted endpoints.

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 Python app on Render.
  4. Run a small connection test before sending production traffic.

Related guides

Related docs