Proxy ServersFree Tools
Integrations

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

ToolConfiguration pointWatch out for
requests / httpxproxies argumentURL-encode special characters in the password
ScrapyRequest meta or middlewareProxy middleware ordering and retry settings
Playwrightlaunch proxy optionAuthentication is set at browser launch
Puppeteer--proxy-server argumentHandle proxy auth on the page
SeleniumBrowser profile or capabilitiesDriver-specific proxy configuration
cURL-x / --socks5-hostnameUse 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.