Static IP guide

Making API requests with a static IP from a Deno app on Supabase

Supabase Edge Functions run on a Deno-compatible edge runtime that Supabase's own documentation confirms can't provide a static egress IP — each invocation can be handled by a different location, so there's no fixed address to give an API partner. Set your Fixie proxy URL as an Edge Function secret and build a Deno HTTP client around it, and every request leaves from the same pair of addresses regardless of which location ran the function.

RuntimeDeno
PlatformSupabase
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 Deno to route outbound traffic through Fixie before connecting to API allowlisting.

Set up Fixie on Supabase

Create a Fixie HTTP/S proxy in the Fixie dashboard. Copy the proxy value into Supabase Edge Function secrets 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 fixieUrl = new URL(Deno.env.get("FIXIE_URL")!);

const client = Deno.createHttpClient({
  proxy: { url: fixieUrl.toString() },
});

const response = await fetch("https://api.example.com/data", { client });
console.log(response.status);

client.close();

Good to know

  • The Supabase CLI sets it with supabase secrets set FIXIE_URL="<proxy-url>"; the Dashboard's Edge Functions → Secrets page does the same thing with a Key/Value form if you'd rather not use the terminal.
  • Secrets are read the same way as any other environment variable inside the function, via Deno.env.get("FIXIE_URL") — no separate secrets API to learn.

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

Related docs

Is this guide useful?