How to Use ProxyOmega Proxies with curl
curl is the standard command-line HTTP client and the fastest way to verify any proxy is wired up correctly. Before integrating ProxyOmega into a scraper or browser, run the curl check below — if the IP returned changes between calls, the rest of your stack will work too.
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).
curl -x "http://<USERNAME>:<PASSWORD>@premium.proxyomega.com:8000" \
-sS https://api.ipify.org?format=json
# Expected: a JSON body with a residential IP that is NOT your own.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.
# Rotating: bare username — new IP every invocation
for i in 1 2 3; do
curl -sS -x "http://<USERNAME>:<PASSWORD>@premium.proxyomega.com:8000" \
https://api.ipify.org
echo
done
# Sticky: same IP for 600 seconds via -session-<id>-ttl-<seconds>
curl -sS -x "http://<USERNAME>-session-abc123-ttl-600:<PASSWORD>@premium.proxyomega.com:8000" \
https://api.ipify.orgCountry targeting
Add -country-XX (ISO 3166 alpha-2) to your username. State and city modifiers are supported on Premium Unlimited, Platinum and Mobile.
# Country (ISO 3166 alpha-2)
curl -sS -x "http://<USERNAME>-country-de:<PASSWORD>@premium.proxyomega.com:8000" \
https://api.ipify.org
# US state
curl -sS -x "http://<USERNAME>-country-us-state-CA:<PASSWORD>@premium.proxyomega.com:8000" \
https://api.ipify.org
# City
curl -sS -x "http://<USERNAME>-country-us-city-newyork:<PASSWORD>@premium.proxyomega.com:8000" \
https://api.ipify.orgAuthentication: 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.
curl encodes the credentials into the Proxy-Authorization header automatically. Use -U user:pass to keep them out of shell history, or whitelist the host IP in the dashboard and drop credentials altogether.
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
curl returns 407, what does it mean?
The proxy rejected your Proxy-Authorization header. Re-check the username/password copied from the dashboard — special characters need URL-encoding if you embed them in -x.
Connection refused on port 8000?
Most likely your network blocks outbound 8000. Try from another network, or use --proxy-insecure to rule out TLS. The standard ProxyOmega ports are 8000 / 10000-10099 / 20228 / 20229 / 9000.
How do I force HTTPS proxy (CONNECT)?
For HTTPS targets, curl automatically issues CONNECT through the proxy. You do not need --proxytunnel unless your target is a non-HTTP protocol.
Why does the IP not change between requests?
You almost certainly have a -session- suffix in the username. Drop it for rotating. Otherwise, check Keep-Alive — same TCP connection may reuse the same upstream.