Give Respell a Static Outbound IP With a QuotaGuard Relay

QuotaGuard Engineering
July 24, 2026
5 min read
Pattern

Respell can't set an HTTP proxy, so route its outbound calls through a small relay function that egresses via QuotaGuard's two static IPs.

A relay function is how you give Respell a fixed outbound IP. Respell runs your Spells on managed infrastructure, so you don't control the host network and there's no field to set an HTTP proxy on a request. When a target API only accepts traffic from allowlisted addresses, you route the call through a relay that egresses through QuotaGuard. The API then sees a stable pair of static IPs instead of Respell's rotating cloud addresses.

Respell Has No Proxy Setting, So a Relay Carries the Static IP

Respell's outbound steps reach external APIs from shared cloud infrastructure. The Web and Code Tools, the integrations, and a Run Code step all egress from addresses you don't own and can't pin. There's no proxy field in a step, and you can't run a sidecar next to a Spell. So the direct approach of pointing Respell at a proxy doesn't exist here.

The fix is a small relay function that you host and control. You deploy it once on AWS Lambda or a Google Cloud Function, and you point it at QuotaGuard. QuotaGuard assigns two load-balanced static IPs to every subscription, and the relay routes Respell's traffic through that pair so the target API sees a fixed origin. Allowlist both IPs on the firewall and Respell's calls get through.

The Relay Forwards Respell's Request Through QuotaGuard's Two Static IPs

The relay is a thin forwarder. Respell calls the relay function's URL and passes two headers. X-Relay-Key is a shared secret that stops anyone else from using your relay. X-Target-URL is the real API you want to reach. The relay checks the key, then forwards the request through its QUOTAGUARDSTATIC_URL connection to the target. For a standard HTTPS API call, the payload is tunneled end to end and is never decrypted at the proxy.

You don't have to build this from scratch. QuotaGuard publishes a ready-to-run example and documents the full pattern, so you deploy the function, set your QuotaGuard connection string and relay key, and wire Respell to the function URL. The reusable relay pattern is documented at quotaguard.com/docs/platforms/static-ip-no-http-proxy, and the working code is in the lambda-relay example repo.

Respell's Run Code Step Calls the Relay With Two Headers

Make the outbound call from a Run Code step. Instead of calling the target API directly, call your relay URL and put the target in the X-Target-URL header. The relay does the rest.

const response = await fetch("https://your-relay-id.lambda-url.us-east-1.on.aws/", {
  method: "POST",
  headers: {
    "X-Relay-Key": "your-secret-relay-key",
    "X-Target-URL": "https://api.your-vendor.com/v1/resource",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ example: "payload" })
});

const data = await response.json();
return data;

The same two headers work from anything that can send an HTTP request, so you can test the relay from your terminal before you wire it into a Spell.

curl -X POST "https://your-relay-id.lambda-url.us-east-1.on.aws/" \
  -H "X-Relay-Key: your-secret-relay-key" \
  -H "X-Target-URL: https://api.your-vendor.com/v1/resource"

Point X-Target-URL at ip.quotaguard.com to Confirm the Static IP

Before you allowlist anything, prove the traffic is leaving through QuotaGuard. Send a request through the relay with X-Target-URL set to https://ip.quotaguard.com. That endpoint returns the static IP the request came from, which will be one of your subscription's two addresses.

curl -X POST "https://your-relay-id.lambda-url.us-east-1.on.aws/" \
  -H "X-Relay-Key: your-secret-relay-key" \
  -H "X-Target-URL: https://ip.quotaguard.com"

Run it a few times and you'll see both IPs, because the pair sits behind a load balancer. Add both addresses to the target API's firewall allowlist. Then your Respell Spell's calls arrive from a source the vendor recognizes.

QuotaGuard Static Pricing Starts at $19/Month

QuotaGuard Static direct plans start at $19/month. Bandwidth is bundled and there are no per-GB overage fees. For most Respell workflows calling a standard HTTPS API, Static is the right product, because the payload is tunneled end to end and is never decrypted at the proxy. Dedicated IPs are available on Enterprise and above. On lower tiers your two assigned IPs are still static, but shared with other customers.

QuotaGuard Shield Pricing Starts at $29/Month

QuotaGuard Shield direct plans start at $29/month. Shield uses SSL passthrough, so the TLS connection runs end to end and QuotaGuard doesn't decrypt your data. Use Shield when your Spell moves regulated data and you need to meet HIPAA, PCI-DSS, or SOC 2 requirements. The relay pattern is the same. The relay egresses through your QUOTAGUARDSHIELD_URL connection instead. All plans include a 3-day trial, Enterprise plans include a 7-day trial, and a credit card is required.

Host the relay once and every outbound call from Respell leaves through a fixed pair of static IPs. Deploy the ready-to-run function from the lambda-relay example repo, follow the no-proxy relay guide, and see full plan details on the QuotaGuard pricing page.

QuotaGuard Static IP Blog

Practical notes on routing cloud and AI traffic through Static IPs.

Reliability Engineered for the Modern Cloud

For over a decade, QuotaGuard has provided reliable, high-performance static IP and proxy solutions for cloud environments like Heroku, Kubernetes, and AWS.

Get the fixed identity and security your application needs today.