Skip to content
Hoody.com

The instance management endpoints let you create, stop, and restart browser instances. Each instance is identified by a 0-based browser_id and can be configured independently with custom user agent, viewport, geolocation, locale, and proxy settings. Multiple instances can run concurrently inside the same container.

Use these endpoints to provision isolated browser sessions for automation, scraping, or testing workloads, and to recycle them when configuration changes are required.


Create a new browser instance, or return metadata for an existing one identified by browser_id. The response includes the Chrome DevTools WebSocket endpoint (webSocketDebuggerUrl) when launched with useRemoteDebuggingPort: true.

NameInTypeRequiredDescription
browser_idquerystringYesUnique identifier for the browser instance (0-based index).
chromiumVersionquerystringNoChromium/Chrome version selection. Full version (e.g. 136.0.7103.113), major version (e.g. 136), or channel tag (stable, beta, dev, canary). The server blocks until the browser is downloaded into BROWSERS_DIR. Only applies when browser=chromium.
fingerprintIdquerystringNoBase fingerprint profile id. Loads storage/config/fingerprints/<fingerprintId>.json and applies its context and launch defaults, then applies any request overrides.
useRemoteDebuggingPortquerybooleanNoIf true, launches Chromium with --remote-debugging-port and populates webSocketDebuggerUrl in metadata responses. Default: true.
remoteDebuggingPortqueryintegerNoFixed DevTools port (only used when useRemoteDebuggingPort=true). If omitted, a free port is chosen.
remoteDebuggingAddressquerystringNoInterface address for DevTools. Defaults to 127.0.0.1. Use 0.0.0.0 only in trusted environments.
extensionsquerystringNoComma-separated list (or JSON array string) of absolute extension directory paths to load. Requires showBrowser=true.
extensionsDirquerystringNoDirectory containing extension subfolders to load. Requires showBrowser=true.
extensionsStoreIdsquerystringNoComma-separated list (or JSON array string) of Chrome Web Store extension IDs to download and load. Requires showBrowser=true and browser=chromium.
proxyServerquerystringNoProxy server URL. Supports http://, https://, socks5://, or socks5h://. Example: socks5://127.0.0.1:9050.
proxyUsernamequerystringNoProxy username (if required).
proxyPasswordquerystringNoProxy password (if required).
proxyBypassquerystringNoComma-separated list of hosts that should bypass the proxy.
enableQuicquerybooleanNoEnable QUIC/HTTP3 transport. Defaults to false (QUIC blocked). Default: false.
enableDnsOverHttpsquerybooleanNoEnable DNS-over-HTTPS for browser DNS resolution. Default: true.
dnsOverHttpsUrlquerystringNoDoH resolver URL (HTTPS only). Default: "https://cloudflare-dns.com/dns-query".
displayqueryinteger | stringNoX display number or identifier for headful mode. Required when showBrowser=true and no DISPLAY environment variable is set on the server.
showBrowserquerybooleanNoWhether to run the browser headful (visible). Default: true.
sessionNamequerystringNoCustom session name for identifying this browser instance.
timezoneIdquerystringNoIANA timezone identifier for browser geolocation.
localequerystringNoBCP 47 language tag for browser locale.
userAgentquerystringNoUser agent string to apply to the browser context.
viewportquerystringNoViewport configuration as JSON string. Example: {"width":1920,"height":1080,"deviceScaleFactor":1}. Pass null to disable fixed-viewport emulation.
noViewportquerybooleanNoSet to true to disable fixed-viewport emulation (alias for viewport=null). Cannot be combined with a fixed viewport object. Default: false.
geolocationquerystringNoGeolocation configuration as JSON string. Example: {"latitude":40.7128,"longitude":-74.0060,"accuracy":100}.
stealthquerybooleanNoLaunch Chromium in stealth mode using Patchright (anti-detection patches). Only applies to browser=chromium. Ignored for Firefox. Default: true.
iframequerybooleanNoEnable or disable the full-page display iframe on the root URL. When enabled (default), navigating to / serves an HTML page with an iframe pointing to the Hoody display URL. Default: true.
iframe_urlquerystringNoExplicit URL for the display iframe. If not provided, the URL is auto-detected from the Host header subdomain pattern.
maximize_new_windowsquerybooleanNoWhen true, the hoody-display client opens new top-level app windows maximized. Default: true.

This endpoint does not accept a request body.

Terminal window
curl -X GET "https://proj-abc123-cnt-xyz789-browser-1.us-east-1.containers.hoody.icu/start?browser_id=0&timezoneId=America/New_York&locale=en-US&viewport=%7B%22width%22%3A1920%2C%22height%22%3A1080%2C%22deviceScaleFactor%22%3A1%7D"

Stop an active browser instance and release its resources. The child process is terminated and the browser_id can be reused for a fresh instance.

NameInTypeRequiredDescription
browser_idquerystringYesUnique identifier for the browser instance (0-based index).

This endpoint does not accept a request body.

Terminal window
curl -X GET "https://proj-abc123-cnt-xyz789-browser-1.us-east-1.containers.hoody.icu/stop?browser_id=0"

Stop and recreate a browser instance using the provided configuration. Accepts the same parameters as /start, plus additional options for browser engine selection, launch arguments, and user profile overrides.

NameInTypeRequiredDescription
browser_idquerystringYesUnique identifier for the browser instance (0-based index).
chromiumVersionquerystringNoChromium/Chrome version selection. Full version (e.g. 136.0.7103.113), major version (e.g. 136), or channel tag (stable, beta, dev, canary). The server blocks until the browser is downloaded into BROWSERS_DIR. Only applies when browser=chromium.
fingerprintIdquerystringNoBase fingerprint profile id. Loads storage/config/fingerprints/<fingerprintId>.json and applies its context and launch defaults, then applies any request overrides.
useRemoteDebuggingPortquerybooleanNoIf true, launches Chromium with --remote-debugging-port and populates webSocketDebuggerUrl in metadata responses. Default: true.
remoteDebuggingPortqueryintegerNoFixed DevTools port (only used when useRemoteDebuggingPort=true). If omitted, a free port is chosen.
remoteDebuggingAddressquerystringNoInterface address for DevTools. Defaults to 127.0.0.1. Use 0.0.0.0 only in trusted environments.
extensionsquerystringNoComma-separated list (or JSON array string) of absolute extension directory paths to load. Requires showBrowser=true.
extensionsDirquerystringNoDirectory containing extension subfolders to load. Requires showBrowser=true.
extensionsStoreIdsquerystringNoComma-separated list of Chrome Web Store extension IDs to download and load (Chromium only). Requires showBrowser=true and browser=chromium.
proxyServerquerystringNoProxy server URL (http, https, socks5, socks5h).
proxyUsernamequerystringNoProxy username (if required).
proxyPasswordquerystringNoProxy password (if required).
proxyBypassquerystringNoComma-separated list of hosts that should bypass the proxy.
enableQuicquerybooleanNoEnable QUIC/HTTP3 transport. Defaults to false (QUIC blocked). Default: false.
enableDnsOverHttpsquerybooleanNoEnable DNS-over-HTTPS for browser DNS resolution. Default: true.
dnsOverHttpsUrlquerystringNoDoH resolver URL (HTTPS only). Default: "https://cloudflare-dns.com/dns-query".
displayqueryinteger | stringNoX display number or identifier for headful mode. Required when showBrowser=true and no DISPLAY environment variable is set on the server.
showBrowserquerybooleanNoWhether to run the browser headful (visible). Default: true.
sessionNamequerystringNoCustom session name for identifying this browser instance.
timezoneIdquerystringNoIANA timezone identifier for browser geolocation.
localequerystringNoBCP 47 language tag for browser locale.
userAgentquerystringNoUser agent string to apply to the browser context.
viewportqueryobjectNoViewport configuration as JSON string. Example: {"width":1920,"height":1080,"deviceScaleFactor":1}. Pass null to disable fixed-viewport emulation.
noViewportquerybooleanNoSet to true to disable fixed-viewport emulation (alias for viewport=null). Cannot be combined with a fixed viewport object. Default: false.
geolocationqueryobjectNoGeolocation configuration as JSON string. Example: {"latitude":40.7128,"longitude":-74.0060,"accuracy":100}.
launchArgumentsqueryarrayNoAdditional browser launch arguments (repeatable or JSON array).
browserquerystringNoBrowser engine to use (chromium or firefox). Default: "chromium".
firefoxVersionquerystringNoFirefox version label (informational only). Playwright-managed Firefox builds are used by default. If omitted, a Playwright Firefox build is downloaded on demand.
firefoxExecutablePathquerystringNoAbsolute path to a custom Firefox executable (overrides download).
showDevtoolsquerybooleanNoWhether to open DevTools on launch (Chromium only). Default: false.
userProfilequeryobjectNoOptional user profile object (JSON string) for fingerprinting defaults.
stealthquerybooleanNoLaunch Chromium in stealth mode using Patchright (anti-detection patches). Only applies to browser=chromium. Ignored for Firefox. Default: true.
iframequerybooleanNoEnable or disable the full-page display iframe on the root URL. Default: true.
iframe_urlquerystringNoExplicit URL for the display iframe.
maximize_new_windowsquerybooleanNoWhen true, the hoody-display client opens new top-level app windows maximized. Default: true.

This endpoint does not accept a request body.

Terminal window
curl -X GET "https://proj-abc123-cnt-xyz789-browser-1.us-east-1.containers.hoody.icu/restart?browser_id=0&stealth=true&chromiumVersion=stable"