Proxy quickstart
Find your proxy credentials, send a test request, and confirm the exit IP before you connect real traffic.
Search1API sells two kinds of proxies:
- Rotating residential: one gateway endpoint that sends your traffic through residential IPs worldwide. Usage is billed by traffic (GB).
- Static ISP: a fixed IP for the whole order. Each IP has its own connection details.
Both use username and password authentication and support HTTP and SOCKS5. There is no IP allowlist option.
Connect to the Host and Port from the dashboard
Proxy credentials are separate from your Search1API API key. Always connect to the Host and Port shown for your proxy. The Exit IP is what target sites see; it is not a connection address, and your credentials do not work against it.
Open your proxy
Go to app.s1.dev/proxies and open the proxy under Your proxies.
- Rotating residential: the connection details are in the Gateway endpoint card.
- Static ISP: open an IP from the IP list. The connection details are in Proxy IP information.
Choose a protocol and copy the connection
Pick HTTP or SOCKS5 under Connection protocol. Use HTTP unless your tool specifically needs SOCKS5. For static IPs, the Host and Port can differ between protocols, so copy them after you choose.
On a rotating gateway, set Exit country and IP mode first. These options change the password, so copy the connection after you set them. See Rotating proxy parameters.
Click Copy connection and choose the format your tool expects:
| Format | Typical use |
|---|---|
protocol://username:password@host:port | curl, code, most HTTP libraries |
host:port:username:password | Anti-detect browsers and bulk import fields |
username:password@host:port | Tools that ask for the protocol separately |
Send a test request
Replace the placeholders with your copied values:
curl -x "http://USERNAME:PASSWORD@HOST:PORT" https://ipinfo.io/jsonFor SOCKS5, use socks5h:// so the proxy also resolves DNS:
curl -x "socks5h://USERNAME:PASSWORD@HOST:PORT" https://ipinfo.io/jsonA working proxy returns JSON with the ip and country that target sites see:
- Static ISP:
ipmatches the Exit IP in the dashboard. - Rotating residential: running the command again returns a different
ip, unless you chose Keep the same IP.
If you get an error instead, look it up in Troubleshooting.
Use the proxy in your code
The proxy URL always starts with http:// or socks5h://, even when the target site uses HTTPS.
import requests
proxy = "http://USERNAME:PASSWORD@HOST:PORT"
proxies = {"http": proxy, "https": proxy}
response = requests.get("https://ipinfo.io/json", proxies=proxies, timeout=30)
print(response.json())Both keys point to the same http:// URL. For SOCKS5, install requests[socks] and use socks5h://.
import { ProxyAgent, fetch } from 'undici';
const dispatcher = new ProxyAgent('http://USERNAME:PASSWORD@HOST:PORT');
const response = await fetch('https://ipinfo.io/json', { dispatcher });
console.log(await response.json());import { chromium } from 'playwright';
const browser = await chromium.launch({
proxy: {
server: 'http://HOST:PORT',
username: 'USERNAME',
password: 'PASSWORD',
},
});
const page = await browser.newPage();
await page.goto('https://ipinfo.io/json');
console.log(await page.textContent('body'));
await browser.close();Use HTTP with Playwright. Chromium does not support SOCKS5 proxies that require a username and password.
Before you go to production
- Idle connections close after 5 minutes. Reconnect when a long-lived connection drops.
- Rotating residential traffic counts both upload and download. When the monthly allowance runs out, new connections are refused until the next billing period. Check usage in the Bandwidth card.
- On static ISP Pro and Premium, keep each IP under about 90 concurrent connections. Above 100, new connections may be refused.
- Target ports
80and443work on every IP; other ports may be refused with403 Tunnel Failed. Do not run the proxy as a whole-device VPN: in Clash, Shadowrocket, or Surge, use rule mode and send only the sites you need through it. See Blocked ports and sites. - Set a connect timeout of at least 30 seconds, and retry on a new connection with backoff.
- Some site categories (banking and payments, crypto exchanges, some government sites) and outbound email (SMTP, port 25) may be unavailable.