> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hyperbeam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# FAQ

> Frequently asked questions from the Hyperbeam community

## API

> **How do I make the browser behave as a mobile browser?**
>
> When creating the browser, set the `user_agent` field to a mobile preset,
> such as `{"user_agent": "chrome_android"}`.

## Streaming

> **Bandwidth requirements**
>
> To ensure optimal performance of Hyperbeam virtual computers, it is
> recommended that your users meet the following bandwidth requirements. Even
> though users who have less bandwidth available can still stream virtual
> computers, the image quality or framerate may be suboptimal.
>
> ```html theme={null}
> | Resolution | Framerate | Bandwidth Required |
> | ---------- | --------- | ------------------ |
> | 720p       | 24fps     | 5mbps              |
> | 720p       | 30fps     | 6.3mbps            |
> | 900p       | 24fps     | 7.8mbps            |
> | 900p       | 30fps     | 9.8mbps            |
> | 1080p      | 24fps     | 11.3mbps           |
> | 1080p      | 30fps     | 14.1mbps           |
> ```
>
> > [!WARNING]
> >
> > Enabling **sharp mode** triples these bandwidth requirements.

> **Why do I need to click a 'play' button to start the stream?**
>
> When playing back audio on the web, the user must interact with the website
> (e.g., by clicking, pressing keys, etc.) before playing audio content.
> Otherwise, the content will be blocked.
>
> For more information, see the
> [Autoplay Guide for media and Web Audio APIs](https://developer.mozilla.org/en-US/docs/Web/Media/Autoplay_guide).
> If there has been no page interaction before the `Hyperbeam` function has been called,
> a play button will be displayed on the Hyperbeam browser.

## Monitoring

> **Can I detect when a user changes the URL in the virtual browser?**
>
> Yes, you can detect when a user changes the virtual browser URL by using
> [Hyperbeam’s tab event listener
> API](https://docs.hyperbeam.com/client-sdk/javascript/examples.md#listen-to-tab-events) available in our
> Web SDK. We do not currently provide a way to directly detect this action
> server-side.

## Proxies

> **Is there an IP range I can use to whitelist Hyperbeam servers?**
>
> Not at the moment. Hyperbeam uses a variety of server providers which makes it difficult to whitelist Hyperbeam servers based on IP. You can use username/password authentication to ensure traffic originates from Hyperbeam.

> **Where do I put the credentials in FindProxyForURL?**
>
> ```json theme={null}
> {
>   "http_proxy": {
>     "pac": "function FindProxyForURL(url, host) {return 'PROXY <pac_ip>'}",
>     "username": "<username>",
>     "password": "<password>"
>   }
> }
> ```
>
> Relevant MDN docs: [Proxy Auto-Configuration (PAC) file](https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file)
>
> > [!WARNING]
> >
> > Caveats:
> >
> > * Only HTTP traffic is sent through the proxy server. WebRTC traffic is excluded. Hence, there is no functional difference between the use of SOCKS, HTTP or HTTPS protocol on the proxy server.
> > * Authentication is not supported for SOCKS protocol. This is due to it not being implemented by Chrome.
> > * Due to these reasons, we recommend the usage of HTTPS to authenticate and secure communication between Hyperbeam and the proxy server: [HTTPS Proxy Scheme.](https://chromium.googlesource.com/chromium/src/+/HEAD/net/docs/proxy.md#HTTPS-proxy-scheme)

## Troubleshooting

> **My API request fails due to CORS**
>
> Requests to the Hyperbeam API should not be made from the client as doing so
> exposes your API key to users which can easily be abused. Instead, API
> requests should only be made from a backend such as Vercel, Netlify or
> Cloudflare.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.