How to Use ProxyOmega Proxies with n8n
n8n is an open-source workflow automation tool — a self-hosted alternative to Zapier and Make. Any node that issues an outbound HTTP request can be routed through ProxyOmega so that scraping, monitoring or third-party API calls exit from a residential IP instead of your hosting provider.
Quick start
Use the Premium Unlimited endpoint below — it accepts the username-modifier syntax used throughout this guide. Other plans use the same code shape with a different host and port (see the endpoint table at the bottom).
{
"method": "GET",
"url": "https://api.ipify.org?format=json",
"options": {
"proxy": "http://<USERNAME>:<PASSWORD>@premium.proxyomega.com:8000",
"timeout": 30000
}
}Rotation: sticky session vs rotating
Append -session-<id>-ttl-<seconds> to your username to hold the same exit IP. Drop the suffix entirely for a fresh IP on every request.
// In a Function node before the HTTP Request node — build the proxy URL.
const base = 'premium.proxyomega.com:8000';
// Rotating: new IP per request
const rotating = `http://<USERNAME>:<PASSWORD>@${base}`;
// Sticky: keep IP for 300 s, keyed off the workflow execution id
const sid = $execution.id.slice(0, 8);
const sticky = `http://<USERNAME>-session-${sid}-ttl-300:<PASSWORD>@${base}`;
return [{ json: { proxy: sticky } }];Country targeting
Add -country-XX (ISO 3166 alpha-2) to your username. State and city modifiers are supported on Premium Unlimited, Platinum and Mobile.
# Drop this string into the HTTP Request node "Proxy" field.
# Replace -country-XX with the ISO 3166 alpha-2 of your choice.
http://<USERNAME>-country-de:<PASSWORD>@premium.proxyomega.com:8000
http://<USERNAME>-country-us-state-CA:<PASSWORD>@premium.proxyomega.com:8000
http://<USERNAME>-country-jp-session-store42-ttl-600:<PASSWORD>@premium.proxyomega.com:8000Authentication: username/password vs IP whitelist
Two ways to authenticate. Username/password is set on every request and is what every example in this guide uses. IP whitelist is configured in the ProxyOmega dashboard — once your runner IP is listed, drop the credentials from the proxy URL and the connection is authorised by source IP.
n8n forwards the credentials embedded in the proxy URL. If you self-host n8n on a static IP, IP whitelisting (set in the ProxyOmega dashboard) is simpler — drop the credentials from the URL once whitelisted.
Common errors and fixes
Wrong username or password, or the credentials contain a special character that was not URL-encoded. Re-copy from the dashboard.
Either the runner IP is not on your whitelist (if you use IP auth) or your network blocks outbound on the proxy port. Test with curl first.
Residential exits sometimes have tail latency. Raise client timeout to 30–60 s and enable retry. If timeouts persist across many sessions, the target is rate-limiting your country — switch country.
You have a -session- suffix in your username, or HTTP keep-alive is reusing the connection. Drop the session suffix and disable keep-alive on the client to force new exits.
Recommended plan
All endpoints
| Plan | Host | Port | Notes |
|---|---|---|---|
| Budget Unlimited | residential.proxyomega.com | 10000–10099 | Per-port country / rotation set in the dashboard. No username suffixes. |
| Premium Unlimited | premium.proxyomega.com | 8000 | Username modifiers: -country-XX, -session-{id}-ttl-{seconds}. |
| Platinum | platinum.proxyomega.com | 20228 | ASN / state / city targeting via username modifiers. |
| Mobile | mobile.proxyomega.com | 20229 | Real 4G/5G carrier IPs. Same username modifier syntax. |
| IPv6 | ipv6.proxyomega.com | 9000 | IPv6 exits, supports UDP_ASSOCIATE. |
FAQ
Does every n8n node honour the proxy?
The HTTP Request node and any node that uses it under the hood does. Vendor-specific SDK nodes (Slack, GitHub, etc.) usually do not — they hit the API directly. If routing those is critical, replace them with HTTP Request nodes.
Can I store the proxy URL as a credential?
Yes — create a Generic Credential with the proxy URL as a field, then reference it from the HTTP Request node. Keeps username/password out of workflow JSON.
How do I rotate IP between iterations of a Split In Batches node?
Use a Function node before each batch to mint a new sticky session id, or simply remove the session suffix so every request gets a fresh IP.
Why does my Webhook node not use the proxy?
Webhooks are inbound — they receive requests, they do not make them. Only outbound nodes (HTTP Request, Function with axios, etc.) need a proxy.