@solarisdk/browser
v0.1.4
Published
Official client SDK for Solari Browser.
Maintainers
Readme
@solarisdk/browser
Official client SDK for Solari Browser — managed, stealth-hardened browsers as an API.
Install
npm install @solarisdk/browserQuickstart
import { Solari } from "@solarisdk/browser";
const solari = new Solari({
apiKey: process.env.SOLARI_API_KEY!,
// region: "us-west", // default — additional regions coming soon
});
const browser = await solari.launch({ stealth: true });
const page = await browser.newPage();
await page.goto("https://example.com");
console.log(await page.title());
await browser.close();Or with explicit resource management (Node 22+):
await using browser = await solari.launch({ stealth: true });
const page = await browser.newPage();
await page.goto("https://example.com");Sessions
Drive a session yourself instead of using launch():
const session = await solari.sessions.create({ stealth: true });
// connect via Playwright wire protocol
import { chromium } from "patchright-core";
const browser = await chromium.connect(session.wsEndpoint);
// ...
await browser.close();
await solari.sessions.releaseAndWait(session.id);Or via raw CDP (Puppeteer, browser-use, playwright-core):
const session = await solari.sessions.create();
const browser = await chromium.connectOverCDP(session.cdpEndpoint);Regions
Solari runs in us-west (N. California) today, with additional regions
coming soon. Sessions, replays, and profile storage are colocated with
the region you pick.
const solari = new Solari({ apiKey, region: "us-west" });For staging or self-hosted gateways, pass baseUrl instead of region.
Managed proxies
await solari.launch({
stealth: true,
proxy: { country: "us", tier: "mobile" },
});For targets whose stealth posture is unknown a priori, proxy: "smart"
runs an escalation ladder (rotating residential → direct → mobile → fresh
residential → residential GB) and swaps the egress in-place when a block
page is detected mid-session — no client-side retry required.
await solari.launch({ stealth: true, proxy: "smart" });See the Solari docs for the full proxy, stealth, captcha, and profile reference.
Errors
import { SolariError } from "@solarisdk/browser";
try {
await solari.sessions.create({ stealth: true });
} catch (err) {
if (err instanceof SolariError && err.code === "FeatureRequiresPlan") {
// ...
}
}License
Apache-2.0
