Static IPs
Static IP usage is another powerful feature of Hyperbrowser, allowing users to maintain a consistent IP address across sessions. This feature can be essential for activities requiring a stable connection identity.
import { connect } from "puppeteer-core";
import { Hyperbrowser } from "@hyperbrowser/sdk";
import { config } from "dotenv";
config();
const client = new Hyperbrowser({
apiKey: process.env.HYPERBROWSER_API_KEY,
});
const main = async () => {
const session = await client.sessions.create({
staticIpId: "<STATIC_IP_ID>",
});
try {
const browser = await connect({
browserWSEndpoint: session.wsEndpoint,
defaultViewport: null,
});
const [page] = await browser.pages();
// Navigation
console.log("Using Static IP to navigate to Hacker News...");
await page.goto("https://news.ycombinator.com/");
const pageTitle = await page.title();
console.log("Page title:", pageTitle);
} catch (err) {
console.error(`Encountered error: ${err}`);
} finally {
await client.sessions.stop(session.id);
}
};
main();
import { chromium } from "playwright-core";
import { Hyperbrowser } from "@hyperbrowser/sdk";
import { config } from "dotenv";
config();
const client = new Hyperbrowser({
apiKey: process.env.HYPERBROWSER_API_KEY,
});
const main = async () => {
const session = await client.sessions.create({
staticIpId: "<STATIC_IP_ID>",
});
try {
const browser = await chromium.connectOverCDP(session.wsEndpoint);
const context = browser.contexts()[0];
const page = await context.newPage();
// Navigation
console.log("Using Static IP to navigate to Hacker News...");
await page.goto("https://news.ycombinator.com/");
const pageTitle = await page.title();
console.log("Page title:", pageTitle);
} catch (err) {
console.error(`Encountered error: ${err}`);
} finally {
await client.sessions.stop(session.id);
}
};
main();
import asyncio
from pyppeteer import connect
import os
from dotenv import load_dotenv
from hyperbrowser import AsyncHyperbrowser
from hyperbrowser.models import CreateSessionParams
# Load environment variables from .env file
load_dotenv()
client = AsyncHyperbrowser(api_key=os.getenv("HYPERBROWSER_API_KEY"))
async def main():
# Create a session with Static IP
session = await client.sessions.create(
params=CreateSessionParams(
static_ip_id="<STATIC_IP_ID>",
)
)
try:
browser = await connect(
browserWSEndpoint=session.ws_endpoint, defaultViewport=None
)
pages = await browser.pages()
page = pages[0]
# Navigation
print("Using Static IP to navigate to Hacker News...")
await page.goto("https://news.ycombinator.com/")
page_title = await page.title()
print("Page title:", page_title)
except Exception as e:
print(f"Error: {e}")
finally:
await client.sessions.stop(session.id)
# Run the async main function
if __name__ == "__main__":
asyncio.run(main())
import asyncio
from playwright.async_api import async_playwright
import os
from dotenv import load_dotenv
from hyperbrowser import AsyncHyperbrowser
from hyperbrowser.models import CreateSessionParams
# Load environment variables from .env file
load_dotenv()
client = AsyncHyperbrowser(api_key=os.getenv("HYPERBROWSER_API_KEY"))
async def main():
# Create a session with Static IP
session = await client.sessions.create(
params=CreateSessionParams(
static_ip_id="<STATIC_IP_ID>",
)
)
try:
async with async_playwright() as p:
browser = await p.chromium.connect_over_cdp(session.ws_endpoint)
default_context = browser.contexts[0]
page = await default_context.new_page()
# Navigation
print("Using Static IP to navigate to Hacker News...")
await page.goto("https://news.ycombinator.com/")
page_title = await page.title()
print("Page title:", page_title)
except Exception as e:
print(f"Error: {e}")
finally:
await client.sessions.stop(session.id)
# Run the async main function
if __name__ == "__main__":
asyncio.run(main())
Management of static IP and corresponding user must be performed on the client side. Hyperbrowser maintains no inherent association between users and static IPs.
Access to static IPs is only available on PAID
plans at request. If you, or your team, require static IPs let us know.
Last updated