Give Adalo a Static Outbound IP With a Relay Function

July 22, 2026
5 min read
Pattern

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

An API vendor asks you to allowlist your app's outbound IP. Adalo doesn't give you one. Its Custom Actions and External Collections leave from shared infrastructure, and there's no field to pin the egress address. You can still get a fixed IP. You host a tiny relay function that forwards your requests through QuotaGuard, and the vendor sees a stable pair of static IPs every time.

Adalo Sends Outbound Calls From Shared IPs With No Proxy Field

Adalo reaches external APIs two ways. External Collections connect a REST API as a data source with a base URL, method, and header or query parameters. Custom Actions fire a request when a user does something, and you set the method, the full URL, headers, and a JSON body. Both are useful. Neither exposes an HTTP proxy setting, and you don't control the host network, so you can't set HTTPS_PROXY or run a sidecar. The outbound IP is whatever Adalo's platform assigns, and it can change. That breaks any vendor that allowlists by IP.

A Relay Function Gives Adalo a Fixed Egress IP

The pattern is simple. You deploy a small HTTP function on infrastructure you control, an AWS Lambda or a Google Cloud Function, and that function egresses through QuotaGuard. Your Adalo Custom Action calls the relay instead of the vendor API directly. The relay forwards the request through the QUOTAGUARDSTATIC_URL connection, and the vendor API sees QuotaGuard's static IPs. Every QuotaGuard subscription includes two load-balanced static IPs. Allowlist both with your vendor, because either one can serve a given request. QuotaGuard confirms the two-IP pair is fixed for the life of the subscription, which is what makes it safe to allowlist.

You don't have to write the relay from scratch. QuotaGuard publishes a ready-to-run example, and the reusable pattern is documented. Deploy the example, set two environment variables, and you're done. Links are at the end of this post.

Point Your Adalo Custom Action at the Relay in Three Steps

First, deploy the relay function and set two environment variables on it: QUOTAGUARDSTATIC_URL from your QuotaGuard dashboard, and RELAY_KEY, a secret you invent so only your app can call the relay.

Second, in Adalo, create a Custom Action that calls the relay's function URL. Send two headers. X-Relay-Key carries your secret. X-Target-URL carries the real API you want to reach. Put the payload the vendor API expects in the body.

Third, allowlist both of your subscription's static IPs with the vendor. Here's the Custom Action configuration:

POST https://your-relay-function-url/relay
X-Relay-Key: your-relay-secret
X-Target-URL: https://api.your-vendor.com/v1/orders
Content-Type: application/json

{
  "amount": 4200,
  "currency": "usd",
  "reference": "adalo-order-1187"
}

The relay reads X-Target-URL, forwards your body and method to that URL through QuotaGuard, and returns the vendor's JSON response straight back to Adalo. Your Custom Action handles the response the same way it would a direct call.

Confirm the Static IP With a One-Line curl Test

Before you wire up the real vendor, point X-Target-URL at https://ip.quotaguard.com. That endpoint returns the egress IP the relay used, which will be one of your two static IPs. You can test the relay from your terminal before touching Adalo:

curl -X POST https://your-relay-function-url/relay \
  -H "X-Relay-Key: your-relay-secret" \
  -H "X-Target-URL: https://ip.quotaguard.com"

Run it twice. You should see one of your two static IPs each time. Add both to your vendor's allowlist and the integration is done.

Use QuotaGuard Shield If You Handle Regulated Data

QuotaGuard Static is right for standard HTTPS API calls. On outbound HTTPS it uses a CONNECT tunnel, so your payload stays encrypted end to end and is never decrypted at the proxy. That covers almost every Adalo integration. If your relay carries regulated data, healthcare records, payment card data, or anything under HIPAA, PCI-DSS, or SOC 2 review, use QuotaGuard Shield instead. Shield uses SSL passthrough so the TLS connection runs end to end and QuotaGuard does not decrypt your payload in ordinary operation. The relay setup is the same. You point it at the QUOTAGUARDSHIELD_URL connection instead.

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. A relay in front of a handful of Adalo Custom Actions uses very little bandwidth, so the entry tier covers most apps. Dedicated IPs are available on Enterprise and above. On lower tiers your subscription's two IPs are still static, just shared with other customers, and that's exactly what you allowlist.

QuotaGuard Shield Pricing Starts at $29/Month

QuotaGuard Shield direct plans start at $29/month. Shield costs slightly more than Static at each tier because SSL passthrough adds routing overhead. The compliance coverage it supports, like HIPAA, PCI-DSS, and SOC 2, is worth the difference if your data requires it.

All plans include a 3-day trial. Enterprise plans include a 7-day trial. Credit card required.

Adalo can't pin its own outbound IP, but a relay function fixes that in a couple of minutes. Deploy the ready-to-run example, set two environment variables, point your Custom Action at it, and allowlist both static IPs. See the full pricing table at quotaguard.com/products/pricing, grab the relay example at github.com/quotaguard/static-examples, and read the full relay pattern at the QuotaGuard docs.

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.