Releases and changes to the Solari API. Cloud browsers, sandboxes, and desktops, reached with one API key at api.getsolari.com.
record: true now returns its recordingUrl on the create response and on GET /sandboxes/:id, so you can hand off the replay link without a second lookup. Update to the latest SDK (@solarisdk/sdk 0.1.3, solari-sandbox 0.2.1) to pick it up.revert() — start a recording after reverting a desktop to a snapshot and the finished mp4 now uploads to the same playback URL, instead of being silently dropped. (An in-progress recording still ends at the revert, since a revert replaces the whole machine — start a new one after.)disk_gb on fresh creates — request up to 20 GB and your sandbox or desktop boots with a disk that size (the default template is 4 GB). The size is grown and its filesystem expanded before your first command runs; the API returns the disk size the host actually provisioned. Machines created from_snapshot or by forking keep their snapshot’s disk. Requests above the cap are refused with an explicit 400 rather than silently clamped.POST /profiles/{id}/login-handoff now opens without a Solari account, so you can hand it straight to your user. Each link carries a single-use credential bound to one profile, expires after 30 minutes, and dies the moment the sign-in is saved.revert() — and made it safe by construction: a revert boots a fresh VM from your snapshot and only swaps it in once it’s up, so a failed revert can never take your running machine down with it.from_snapshot, and deletion of ancestor snapshots while descendants exist — fork → patch → re-snapshot lineages now behave as documented.409 NotRunning (“resume it first”), and concurrency-limit errors now say how many slots are held by in-flight creates versus running sessions. GET /sandboxes/:id now returns recordingUrl for desktops created with record: true.webBotAuth option — it never signed anything, and passing it now returns an explicit 400. If verified bot identity matters to your use case, tell us at hello@getsolari.com.slr_live_ key, not just from the dashboard. Previously an API create on Free returned 402; the API and the dashboard now agree.connectOverCDP clients running back-to-back sessions under one key; Playwright /ws sessions were already isolated.Idempotency-Key and you get the machine the first request created, never a duplicate. A reused key with a different request returns 409.timeoutMs, cpu/memMb, or lifecycle now returns 400 before anything is created, instead of quietly starting a default machine. And GET /sessions/:id now reports released once a browser session is closed, so you can confirm teardown by polling.slr_live_ key now works immediately, instead of being rejected for up to a couple of minutes.running after they have ended.401.connectOverCDP clients (such as browser-use) — replays now capture the full session, including the final events.Browser, sandbox, and desktop requests now go through one host. Point any SDK at one base URL instead of a hostname per product.
api.getsolari.com reach the right backend automatically.us-west-1.A single slr_live_ key now works for browsers, sandboxes, and desktops. Previously each product used a separate credential.
@solarisdk/mcp) for calling Solari from Claude and other agents.solari-core, solari-sandbox, solari-desktop, and solari-browser to match the npm layout.Two compute products in addition to the browser. Both boot from a memory snapshot and are usually ready in about a second.
previewUrl(port) returns a public *.preview.getsolari.com URL for a port running inside a sandbox or desktop.
Cloud Chrome driven with Playwright or a CDP client. Includes stealth mode, managed proxies, captcha solving, profiles, and session recording.
What the API does today. GA is generally available; Beta is available and still stabilizing. Reference: docs.getsolari.com.
| Capability | What it does | Status |
|---|---|---|
| Playwright and CDP | launch() returns a Playwright browser; or take a cdpEndpoint for any CDP client. | GA |
| Stealth mode | Reduces bot detection from Cloudflare, DataDome, Akamai, and PerimeterX. | GA |
| Managed proxies | Residential, ISP, and mobile egress in 15 countries, with sticky sessions and geo-targeting. | GA |
| Profiles | Persist logins, cookies, and site data across runs. | GA |
| Recording | Capture a session and get a replay URL. | GA |
| Captcha solving | reCaptcha, hCaptcha, and Turnstile. | GA |
| Capability | What it does | Status |
|---|---|---|
| Commands and PTY | Run a command to completion, stream a long-running process, or open an interactive PTY. | GA |
| Code execution | Run snippets in a stateful kernel with stdout, stderr, and inline plots. | GA |
| Files and git | Filesystem API plus clone, commit, push, and pull with per-call credentials. | GA |
| Snapshots and templates | Save, revert, and fork state; promote a snapshot to a reusable template. | GA |
| Custom images | Build a template from your own apt, pip, and run steps. | Beta |
| Persistent volumes | Create org-scoped volumes and mount them into machines at create time; data survives the machine and is readable from the next one. | Beta |
| Structured charts | Return typed chart data alongside code output. | Beta |
| Capability | What it does | Status |
|---|---|---|
| VNC streaming | A live desktop stream with working mouse and keyboard input. | GA |
| Computer-use | Mouse, keyboard, and screenshots. | GA |
| Desktop control | Exec, filesystem, clipboard, launch app by name, process control, and resize. | GA |
| Screen recording | Record the session to an mp4 URL. | GA |
| Re-attach | Reconnect to a VM by id; a paused desktop resumes on reconnect. | GA |
| Capability | What it does | Status |
|---|---|---|
| One key and auth | A single slr_live_ key and one org identity across products. | GA |
| Console | Machines created from the SDK show up in the console and can be viewed live. | GA |
| Metering and quotas | Usage metering and per-plan concurrency limits. | GA |
| Organizations | Workspaces, roles, invite links, and shared keys. | GA |
| SDKs | TypeScript, Python, Go, Rust, C++, and an MCP server. | GA |