Drop Graviix Into the Stack You Already Use
Graviix does not require a proprietary SDK. Because it is a standard HTTP proxy, it works with the same libraries your team already uses for scraping, testing, monitoring, and browser automation. Below are the patterns we see most often and the details that matter when wiring them up.
Supported languages and tools
Python
requests, httpx, aiohttp, Scrapy, and pandas read_html all accept an upstream proxy URL or proxy dictionary.
Node.js
axios, node-fetch, got, Playwright, and Puppeteer support proxy configuration through options or environment variables.
PHP
cURL and Guzzle accept proxy host, port, and credentials directly; no extension beyond standard cURL is needed.
Go and Java
net/http transports and Java HTTP clients support authenticated proxy URLs or Proxy objects.
Browser automation
Playwright, Puppeteer, Selenium, and antidetect browser profiles can route traffic through the Graviix endpoint.
No-code tools
Any workflow tool with an HTTP request node that supports a proxy, or a custom cURL step, can call the endpoint.
Scrapy: per-request or global proxy
Scrapy can apply a proxy globally through downloader middleware or per request through request meta. Use the per-request approach when only some spiders should route through residential IPs, and keep retry middleware enabled so transient failures do not abort a crawl.
# settings.py
DOWNLOADER_MIDDLEWARES = {
"scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware": 110,
}
HTTPPROXY_ENABLED = True
DOWNLOAD_TIMEOUT = 30
# spider request
yield scrapy.Request(
url,
meta={
"proxy": "http://USERNAME:PASSWORD@proxy.graviix.com:8080",
"download_timeout": 30,
},
)Playwright and Puppeteer
Browser automation needs the proxy configured at launch, not per page. Pass credentials in the launch options, then set targeting headers on the browser context. For Puppeteer, the equivalent options are args: ["--proxy-server=http://proxy.graviix.com:8080"] plus page authentication.
const { chromium } = require("playwright");
const browser = await chromium.launch({
proxy: {
server: "http://proxy.graviix.com:8080",
username: "USERNAME",
password: "PASSWORD",
},
});
const page = await browser.newPage({
extraHTTPHeaders: { "X-Graviix-Country": "DE" },
});
await page.goto("https://httpbin.org/ip");
console.log(await page.textContent("body"));
await browser.close();Environment variables
Many tools read standard proxy environment variables. This is the quickest way to route an existing script without changing its code. Remember that some libraries ignore these variables unless explicitly told to trust them.
export HTTP_PROXY="http://USERNAME:PASSWORD@proxy.graviix.com:8080" export HTTPS_PROXY="http://USERNAME:PASSWORD@proxy.graviix.com:8080" export NO_PROXY="localhost,127.0.0.1"
Never commit credentials to a repository. Load the proxy URL from a secret manager or environment file that is excluded from version control.
Compatibility notes
| Tool | Configuration point | Watch out for |
|---|---|---|
| requests / httpx | proxies argument | URL-encode special characters in the password |
| Scrapy | Request meta or middleware | Proxy middleware ordering and retry settings |
| Playwright | launch proxy option | Authentication is set at browser launch |
| Puppeteer | --proxy-server argument | Handle proxy auth on the page |
| Selenium | Browser profile or capabilities | Driver-specific proxy configuration |
| cURL | -x / --socks5-hostname | Use socks5h for remote DNS resolution |
Integration questions
Do I need a separate endpoint per tool?
No. One endpoint and one set of credentials can serve several tools. Separate proxy users are still useful for tracking and revocation.
Can I mix residential and datacenter proxies in one application?
Yes. Use different ports, hosts, or credentials per proxy type and choose which one to pass to each request.
Does browser automation require a specific browser version?
Use a current version of Playwright, Puppeteer, or Selenium. Proxy support and authentication handling have changed over time, so older releases may behave differently.
Where do I get credentials?
After signup, the dashboard generates proxy users with a username and password. See the documentation for the exact endpoint shown on your account.






