Appetize Docs
HomeDemoUploadPricing
  • Introduction
  • Platform
    • App Management
      • Uploading Apps
        • Android
        • iOS
      • App Dashboard
      • Running Apps
      • App Permissions
    • Device Sandbox
    • Embedding
    • Sharing
    • Session Inactivity Timeout
    • Query Params Reference
  • Features
    • Devices & OS Versions
    • Network Traffic Monitor
    • Debug Logs
    • UI Automation
    • Proxy
    • Language & Locale
    • Mock Location
    • Deep links
    • Launch Params
    • Media
    • Auto-grant Permissions
    • Custom Branding
    • Custom Launch Pages
    • Advanced Features
      • Android
        • ADB tunnel
        • Hide Password Visibility
      • Reserved Devices
  • Account
    • Invite your team
    • Single Sign-On
      • OpenID Connect
      • SAML
      • Azure Active Directory
      • Google Workspace (GSuite)
    • Reporting
      • Session History
      • Usage Summary
  • Infrastructure
    • Configure Network Access
    • Enterprise Hosting Options
  • JavaScript SDK
    • Configuration
    • Automation
      • Device commands
      • Touch interactions
    • API reference
      • Initialization
      • Client
      • Session
      • Types
        • AdbConnectionInfo
        • AppetizeApp
        • AndroidElementAttributes
        • Coordinates
        • DeviceInfo
        • Element
        • ElementBounds
        • IOSAccessibilityElement
        • IOSElementAttributes
        • NetworkRequest
        • NetworkResponse
        • SessionConfig
        • SwipeMove
        • RecordedAction
        • RecordedSwipeAction
        • RecordedKeypressAction
        • RecordedPosition
        • RecordedTapAction
        • RecordedTouchAction
        • UserInteraction
  • Testing
    • Getting Started
    • Writing Tests
    • Running Tests
    • Test Configuration
    • Continuous Integration
    • Record Tests (experimental)
    • Trace Viewer
    • Web Tests on Mobile Browsers
  • REST API
    • Create new app
    • Update existing app
    • Direct file uploads
    • Delete app
    • List apps
    • Usage summary
    • Devices & OS Versions
      • v1
    • IP Blocks
      • v1
    • Sample code
  • Guides & Samples
    • Impersonation
    • Automate Sign-in Flow
    • Screenshot Automation
    • Unlock Device
    • Validate Analytics Events
    • Lock Your Device to One App
    • Test Accessibility Font Sizes
    • Common testing scenarios
    • Samples Repository
  • Deprecated
    • Cross-document messages
  • Changelog
  • Additional Support
    • Knowledge Base
    • Support Request
Powered by GitBook
On this page
  • Configuration Options
  • buildId
  • device
  • osVersion
  • scale
  • autoPlay
  • adbShellCommand
  • androidPackageManager
  • appearance
  • audio
  • codec
  • debug
  • deviceColor
  • disableVirtualKeyboard
  • enableAdb
  • grantPermissions
  • hidePasswords
  • iosKeyboard
  • iosAutocorrect
  • language
  • launchApp
  • launchUrl
  • launchArgs
  • locale
  • location
  • noVideo
  • orientation
  • platform
  • params
  • plistEdit
  • proxy
  • record
  • region
  • screenOnly
  • showRotateButtons
  • timezone
  • endSessionRedirectUrl
  • userInteractionDisabled
  • volume
  1. JavaScript SDK

Configuration

With Appetize's configuration options, users can easily switch between different device and operating system versions, languages, and many other options in order to customize their experience.

PreviousJavaScript SDKNextAutomation

Last updated 1 month ago

You can configure the client to change the device, OS version, app, and various other options. This will set the configuration for the embed before the session starts, either programmatically or by user interaction.

await client.setConfig({
    device: 'iphone11pro',
    osVersion: '15.0'
})

Additionally, you can provide these when starting a session programmatically:

const session = await client.startSession({
    device: 'iphone11pro',
    osVersion: '15.0'
})

Initial values may also be provided in the embed URL. See .

Configuration Options

buildId

string

The buildId (previously known as publicKey) of the Appetize app that you wish to run.

device

string

osVersion

string

The operating system version on which to run your app. e.g. 11.4, 12.2, 13.3, 14.0

Note: We recommend leaving this blank so it will always use our latest default for the device.

scale

number | 'auto'

Sets the scale of the device in the iframe.

If a number is provided it must be between 10 and 100. If 'auto', the device will scale up to fit inside the iframe.

autoPlay

boolean

When true, starts streaming the app on device load. Default is false.

We recommend starting the session programmatically using client.startSession() instead as this could cause the session to start before the SDK is ready.

adbShellCommand

string

(Android only) Executes an adb shell command on the device.

androidPackageManager

boolean

(Android only) Allows installation of additional APKs after app launch.

appearance

"dark" | "light"

(iOS 13+ and Android 10+) Sets dark or light mode UI.

audio

boolean

(Android Only) Enables audio playback on the device.

This feature is currently in Alpha and might not always work as expected.

codec

"h264" | "jpeg"

Set the video codec used for the stream. Default is h264 if the browser supports it, otherwise falls back to jpeg.

debug

boolean

When true, the session will listen for debug logs and emit them as a log event.

deviceColor

"black" | "white"

Sets the color of the device chrome.

disableVirtualKeyboard

boolean

(Android only) When true, disabled the onscreen keyboard.

enableAdb

boolean

grantPermissions

boolean

hidePasswords

boolean

(Android only) Hide password visibility when typing.

iosKeyboard

string

iosAutocorrect

boolean

Turn on Auto-Correction for iOS. Defaults to true.

language

string

launchApp

boolean | string

Indicates whether an app launches after installation and allows specifying which installed app to open.

Possible values:

  • false - Apps install but do not launch.

  • true or undefined – Default behavior

launchUrl

string

Specify a deep link to open when your app is launched.

launchArgs

string[]

(iOS only) An array of strings to pass when launching your app.

locale

string

(iOS only) Sets the locale of the device. Must be a locale ID e.g. en_GB, fr_FR.

location

number[]

(iOS 12+, Android 10+) Sets location of the device in latitude and longitude. e.g.. [39.903924,116.391432]

noVideo

boolean

Sets whether the video feed is enabled.

orientation

"portrait" | "horizontal"

Sets the orientation of the device

platform

'ios' | 'android'

Sets the platform of the device.

params

object

A JSON object that will be passed to your app on launch

plistEdit

Object

Represents an object that allows additional key-value properties to be added to the app's plist, enabling customization or configuration of the app behavior during launch.

proxy

string

Specify a proxy server to route network traffic. eg http://example.com:8080

For Appetize's built-in intercepting proxy, use intercept. Network logs are emitted from the session as a network event.

Our current support is limited to HTTP Proxies. When your app makes HTTPS connections, the data remains encrypted despite the unencrypted connection to the proxy. The app sends a CONNECT request to the proxy for the destination HTTPS server, initiating an SSL handshake. The proxy acts as a TCP connection forwarder, ensuring end-to-end encryption for app data.

record

boolean

region

us | eu

Ensures that Appetize sessions are launched only from servers in a specific region.

It is best to avoid setting this property unless absolutely necessary. Our system automatically directs requests to the closest servers for optimal performance. Using this property could lead to longer queues in busy regions.

screenOnly

boolean

If true, only show the screen and not the device chrome.

showRotateButtons

boolean

Enables the display of rotate buttons next to the device. Requires scale to be set to auto.

timezone

string

endSessionRedirectUrl

string

Specifies the URL to redirect users to at the end of the session.

userInteractionDisabled

boolean

Sets whether user interaction is disabled.

volume

number

Sets the audio playback level. The value ranges from 0 to 1, defaults to 0.5

The device to run on. .

(Android only) Sets up an SSH tunnel to allow ADB connections to the emulator. SSH command and info can be found by accessing the property on the session.

For more information see .

Automatically grant all required app permissions. .

Set the language for the iOS Keyboard. eg. ja_JP@sw. .

Sets the language of the device. Must be an language code.

appId - Launches the app with the specified (e.g., com.android.chrome).

Enables recording of all user actions that took place during the session. See for more information. Default is true.

(Android only) Sets the timezone of the device. .

Query Params Reference
See Devices & OS Versions
ADB tunnel
See Auto-grant permissions
See available values
ISO 639-1 & BCP 47
UI Automation
See available values
app Identifier
adbConnection