Browserstack logo
  • AI Agents
  • Pricing
  • Manual Testing

    Live

    Cross-browser testing

    Testing Toolkit

    Essential manual testing tools

    Accessibility Testing

    Test WCAG compliance

    Website Scanner

    All-in-one website checker

    Test Automation

    Automate

    Browser automation cloud

    Low Code Automation

    Automation without coding

    Accessibility Automation

    Automate WCAG testing

    Percy

    Visual testing & review

    Custom Device Lab

    Tailored test environments

    Management & Optimization

    Test Management

    Plan, track, and manage tests

    Test Management for Jira

    Manage tests inside JIRA

    Test Reporting & Analytics

    Monitor & optimize tests

    Explore BrowserStack for Enterprise

    Manual Testing

    App Live

    Real device testing

    App Accessibility Testing

    Test WCAG compliance

    Test Automation

    App Automate

    Real device automation cloud

    App Percy

    Visual testing & review

    App Low Code Automation

    AI-driven automated tests

    Custom Device Lab

    Tailored test environments

    Management & Optimization

    Test Management

    Plan, track, and manage tests

    Test Management for Jira

    Manage tests inside JIRA

    Test Reporting & Analytics

    Monitor & optimize tests

    Explore BrowserStack for Enterprise

    control

    • Documentation
    • Support
    • Status
    • Release Notes
    • Open Source
    • Events
    • Meetups
    • BrowserStack Talks
    • Community
  • AI Agents
  • Pricing
  • Sign in
  • Free Trial
Home Documentation App Automate Capabilities

Capabilities Builder - Appium

Capabilities are a series of key-value pairs that allow you to configure your tests on BrowserStack.

BrowserStack now supports the official WebDriver W3C Protocol for Appium tests. In order to run your Appium tests using W3C protocol, update to a latest version of your Appium client library in case its not W3C-compliant.Additionally, all BrowserStack specific capabilities should be passed inside bstack:options as shown below.

Note: Any BrowserStack capability passed outside bstack:options will not be honoured.

  • JSON wire protocol
  • W3C Protocol
Configure capabilities
Code
Select core capabilities
*  PlatformName
platformName
Select a platformName
Android
Mobile
  • iOS
  • Android
Desktop
Browser
Windows XP
*  deviceName
deviceName
Select a device
iOS
This device is not available in the free plan. Please upgrade to a paid plan.
We now support passing regular expressions in device and OS version capabilities on BrowserStack App Automate. Please refer to our documentation. We now support testing on latest iOS minor versions on BrowserStack App Automate. Please refer our documentation
Resolution
1024 x 768
Resolution
    app
    Specify the app to test on
    Select a recently uploaded app
    Please select
    caret-reverse Created with Sketch.
    Enter the app_url or custom_id of an uploaded app
    Select appium capabilities
    otherApps
    A list of other apps to install prior to running test
    language
    Set the language of the app under test
    locale
    Set device locale
    Project details (Project, Build & Session name)
    projectName
    A unique identifier to logically group multiple builds together
    buildName
    A unique identifier to logically group multiple test sessions together
    sessionName
    A unique identifer for your test session
    Test configuration
    local
    Test localhost / internal servers in your network
    midSessionInstallApps
    A list of apps to be installed in the middle of the test session
    idleTimeout
    This capability can be used to modify the timeout value.
    Debugging options
    deviceLogs
    Enable device logs
    video
    Enable video recording during your test
    interactiveDebugging
    Enable interactive debugging during your test
    debug
    Enable automatic screenshots for various appium commands
    appiumLogs
    Enable Appium logs
    appProfiling
    Enable app profiling
    Device features
    gpsLocation
    Simulate the location of the device to particular GPS location
    deviceOrientation
    Change the screen orientation of the device
    geoLocation
    Test how your app behaves in specific countries
    Note: IP Geolocation is available only in BrowserStack Enterprise Plan. View more details and list of 65+ supported countries.
    customNetwork
    Simulate custom network conditions
    disableAnimations
    Disable animations on the device
    uploadMedia
    Use your uploaded images or videos in the test
    Note:
    • Supported format for images : JPG, JPEG, PNG, GIF, BMP. Max file size allowed for image is 10MB
    • Supported format for videos: .mp4, .mov and .3gp. Max file size allowed for videos is 50MB.
    • Supported format for non-media files: XLS, XLSX, DOC, DOCX, PDF, CSV, TXT. Max file size allowed is 15 MB.

    Capabilities

    • Core
    • Appium configuration
    • Project details
    • Test configuration
    • Debugging options
    • Device features

    Capabilities Reference

    Appium capabilities:

    Capability Values
    app
    Specify the app you want to test. You need to pass the app_url obtained on uploading the app on BrowserStack
    Example: { "app":"bs://5f5w7g3s5a9b5g6f39fk0", "bstack:options": { }}
    deviceName

    Specify particular mobile device for the test environment. Visit the list of supported devices.

    Example: { "deviceName": "Google Pixel 3", "bstack:options": { } }
    platformVersion

    Specify the OS version of the device. Visit the list of supported devices and versions.

    Example: { "platformVersion": "10.0" , "bstack:options": { } }
    otherApps
    String array of uploaded app ids.

    Note: Maximum 3 app ids allowed. This capability has to be used along with app capability.
    Example: { "otherApps": ["bs://……", "bs://…"] , "bstack:options": { } }
    automationName

    Set the automation engine to use

    UIAutomator2, XCUITest, Appium, Flutter, YouiEngine, UIAutomator1
    Android (Default): UIAutomator2
    iOS (Default): XCUITest

    Example: { "automationName": "Espresso", "bstack:options": { } }
    language

    Set the language of the app under test


    Note: This capability will only affect the application under test and not the device.
    fr

    Example: { "language": "fr", "bstack:options": { } }
    locale

    Set locale for iOS and Android

    fr_CA format for iOS. CA format (country name abbreviation) for Android

    Example: { "locale": "fr_CA", "bstack:options": { } }
    buildTag

    Use this capability to add a custom tag to the builds. These tags can be used to filter the builds on the App Automate dashboard. View Documentation

    Example: { "buildTag": "My Build Tag" }

    bstack:options capabilities

    Capability Values
    userName
    Set the username for authentication.
    You can find your username and access key on the Settings page under the App Automate section.

    Example: { "bstack:options": { "userName": "<BROWSERSTACK_USERNAME>" } }
    accessKey
    Set the access-key for authentication.
    You can find your username and access key on the Settings page under the App Automate section.

    Example: { "bstack:options": { "accessKey": "<BROWSERSTACK_ACCESSKEY>" } }
    appiumVersion

    Set the Appium version in your test scripts.

    Android: 1.15.0 and above
    iOS: 1.15.0 and above

    Example: { "bstack:options": { "appiumVersion": "1.16.0" } }
    projectName

    Specify a name for a logical group of builds.

    Default: Untitled Project

    Example: { "bstack:options": { "projectName": "SampleProject" } }
    buildName

    Specify a name for a logical group of tests.

    Default: Untitled Build

    Example: { "bstack:options": { "buildName": "SampleBuild" } }
    sessionName

    Specify an identifier for the test run.

    Example: { "bstack:options": { "sessionName": "SampleSession" } }
    appVersion

    Test the previously uploaded apps with same custom_id.



    Note: 'app_version' capability can be used only if you use custom_id or shareable_id in the 'app' capability of your test. If you use app_url in the 'app' capability, Appium will install the app corresponding to the app_url ignoring the app_version capability.
    Acceptable values are '-1', '-2' or so on. This will pick the latest-1 or latest-2 etc. version of your uploaded builds to install on your target device.

    Example: { "bstack:options": { "appVersion": "-2" } }
    acceptInsecureCerts

    Avoid invalid certificate errors while using self-signed certificate to test your app.

    true/false. Default: false

    Example: { "bstack:options": { "acceptInsecureCerts": "true" } }
    This feature is not supported on the following devices: ["Oppo Reno 6", "Oppo Reno 3 Pro", "Realme 8", "Oppo A96", "Vivo V23 5G", "Samsung Galaxy M32", "Samsung Galaxy M31", "OnePlus Nord CE 2 Lite 5G", "TMobile REVVL 7 5G"]
    local

    Enable testing against internal/local servers.

    true/false. Default: false

    Example: { "bstack:options": { "local": "true" } }
    midSessionInstallApps

    Set this capability if you want to install apps in the middle of the test session.

    Example: {"bstack:options": { "midSessionInstallApps": ["bs://……", "bs://…"] }}
    Note:
    - Maximum 3 app ids allowed.
    - This parameter has to be used along with app parameter.
    localIdentifier

    Specify the unique Local Testing connection name in your test.

    Example: { "bstack:options": { "localIdentifier": "local_connection_name" } }
    debug

    Generate screenshots at various steps in your test.

    true/false. Default: false

    Example: { "bstack:options": { "debug": "true" } }
    deviceLogs

    Capture device logs for your test.

    true/false. Default: false

    Example: { "bstack:options": { "deviceLogs": "false" } }
    networkLogs

    Capture network logs for your test.

    true/false. Default: false

    Example: { "bstack:options": { "networkLogs": "true" } }
    This feature is not supported on the following devices: ["Oppo Reno 6", "Oppo Reno 3 Pro", "Realme 8", "Oppo A96", "Vivo V23 5G", "Samsung Galaxy M32", "Samsung Galaxy M31", "OnePlus Nord CE 2 Lite 5G", "TMobile REVVL 7 5G"]
    networkLogsOptions

    Use this capability to configure Network logs. You can configure logs to capture response payload.

    Default: Empty JSON

    captureContent
    Captures response payload in network logs. To enable this property, set captureContent to TRUE. By default, it is set to FALSE.

    Example: {"captureContent": true}
    This feature is not supported on the following devices: ["Oppo Reno 6", "Oppo Reno 3 Pro", "Realme 8", "Oppo A96", "Vivo V23 5G", "Samsung Galaxy M32", "Samsung Galaxy M31", "OnePlus Nord CE 2 Lite 5G", "TMobile REVVL 7 5G"]
    networkLogsExcludeHosts

    Specify a list of certificate pinned hosts that should bypass BrowserStack MITM proxy while capturing network logs.

    List of certificate pinned hosts (Array) or regular expression value matching a list of hosts (String). Check documentation for examples.

    This feature is not supported on the following devices: ["Oppo Reno 6", "Oppo Reno 3 Pro", "Realme 8", "Oppo A96", "Vivo V23 5G", "Samsung Galaxy M32", "Samsung Galaxy M31", "OnePlus Nord CE 2 Lite 5G", "TMobile REVVL 7 5G"]
    networkLogsIncludeHosts

    Use this capability if you wish to capture network logs only for specific hosts. Traffic for all other remaining hosts will bypass BrowserStack MITM proxy and won’t be captured in network logs.

    List of hosts (Array) or regular expression value matching a list of hosts (String). Check documentation for examples

    This feature is not supported on the following devices: ["Oppo Reno 6", "Oppo Reno 3 Pro", "Realme 8", "Oppo A96", "Vivo V23 5G", "Samsung Galaxy M32", "Samsung Galaxy M31", "OnePlus Nord CE 2 Lite 5G", "TMobile REVVL 7 5G"]
    appiumLogs

    Capture raw appium logs for your test.

    true/false. Default: false

    Example: { "bstack:options": { "appiumLogs": "false" } }
    video

    Enable video recording during your test.

    true/false. Default: true

    Example: { "bstack:options": { "video": "false" } }
    gpsLocation

    Simulate the location of the device to a particular GPS location.

    latitude, longitude
    Acceptable range for latitude is -90 to +90 and for longitude is -180 to +180. Example: 40.730610,-73.935242
    Default: 0,0

    Example: { "bstack:options": { "gpsLocation": "-90,+90" } }
    geoLocation

    Test how your app behaves in specific countries.

    "CN" for China, "FR" for France, "IN" for India and "US" for United States of America
    Note: View the list of over 45+ supported countries.

    Example: { "bstack:options": { "geoLocation": "Fr" } }
    networkProfile

    Simulate different network conditions.

    Note: View the list of supported network profiles.

    Example: { "bstack:options": { "networkProfile": "4g-lte-good" } }
    The airplane-mode network profile is not supported on the following devices: ["Oppo Reno 6", "Xiaomi Redmi Note 9", "Xiaomi Redmi Note 11", "Huawei P30", "Oppo Reno 3 Pro", "Realme 8", "Xiaomi Redmi Note 10S", "Xiaomi Redmi Note 7 Pro", "Xiaomi Redmi Note 12 Pro Plus", "Xiaomi Redmi Note 12 Pro", "Xiaomi Redmi Note 12 4G", "Xiaomi Redmi Note 10 Pro", "Xiaomi Redmi Note 9 Pro Max", "Xiaomi Redmi Note 5 Pro", "Realme 11X 5G", "Huawei Nova 11 SE", "OnePlus 12R", "Xiaomi Redmi Note 13 Pro 5G", "Xiaomi Redmi Note 14 Pro 5G", "Vivo T4x 5G", "Huawei Nova 13", "Oppo A96", "Oppo A78", "Vivo Y50", "Vivo Y21", "Vivo Y22", "Vivo V21", "Vivo S1 Pro", "Vivo V20", "Vivo V23 5G", "Vivo Y15", "Vivo Y73", "Motorola Moto G9 Play", "Motorola Moto G71 5G", "Samsung Galaxy Tab S8", "Samsung Galaxy Tab S10 Plus", "Google Pixel 6 Pro", "Google Pixel 7", "Google Pixel 8", "Google Pixel 8 Pro", "Google Pixel 7 Pro", "Samsung Galaxy M32", "OnePlus 11R", "Samsung Galaxy S22", "Samsung Galaxy S23", "Samsung Galaxy S22 Plus", "Samsung Galaxy S22 Ultra", "Samsung Galaxy S23 Ultra", "Google Pixel 6a", "Samsung Galaxy M31", "OnePlus 10 Pro", "Oppo A54", "Samsung Galaxy A33 5G", "Oppo F21 Pro Max", "Oppo Reno 10", "OnePlus Nord CE 2 Lite 5G", "OnePlus Nord CE 5G", "OnePlus Nord", "OnePlus Nord 2 5G", "Oppo Reno 8T 5G", "Vivo Y100", "Vivo V30", "Samsung Galaxy S24", "Samsung Galaxy S24 Ultra", "Samsung Galaxy S25", "Samsung Galaxy S25 Ultra", "Samsung Galaxy A34", "Motorola Edge 40 Neo", "Motorola Edge 50 Fusion", "Google Pixel 9", "Google Pixel 9 Pro XL", "Samsung Galaxy Tab A9 Plus", "Samsung Galaxy A35", "Google Pixel 9 Pro", "TMobile REVVL 7 5G", "Realme 12 Plus", "Motorola Edge 60 Fusion", "Samsung Galaxy A16 5G", "Oppo F29", "Google Pixel 10", "Google Pixel 10 Pro", "Google Pixel 10 Pro XL", "Realme P3", "Samsung Galaxy Tab S11", "Samsung Galaxy S26", "Samsung Galaxy S26 Ultra"]
    customNetwork

    Simulate the custom network condition.

    Format: download speed (kbps), upload speed (kbps), latency (ms), packet loss (%)

    Example: { "bstack:options": { "customNetwork": "1000,100,10,1" } }
    resignApp

    Set this capability to false if you want to test features like, Push Notifications on iOS apps. Use this along with your Enterprise signed app in the app capability. It will disable the resigning of your Enterprise signed app so that you can test features like, push notifications on BrowserStack devices

    true, false
    IOS (Default): true
    Android: Not required for Android.

    Example: { "bstack:options": { "resignApp": "false"} }
    timezone

    Required if you want to configure tests to run on a custom time zone.


    Examples - UTC, New_York (for America/New_York), Los_Angeles (for America/Los_Angeles), La_Rioja (for America/Argentina/La_Rioja).
    View the list of supported timezones.
    This feature is not supported on following Android devices: ["Xiaomi Redmi Note 9-10.0"]
    disableAnimations

    Enable/Disable animations on the device. Set this parameter to "true" to disable animations on the device.

    true/false. Default: false

    Example: { "bstack:options": { "disableAnimations": "true" } }
    enablePasscode

    Enable/Disable Passcode on the device. Set this parameter to "true" to enable Passcode on the device.

    true/false. Default: false

    Example: { "bstack:options": { "enablePasscode": "true" } }
    deviceOrientation

    Set the screen orientation of the mobile device.

    portrait, landscape
    Default: portrait

    Example: { "bstack:options": { "deviceOrientation": "portrait" } }
    idleTimeout

    Set the capability to modify the timeout value.

    0 to 300 seconds
    Default: 90 seconds

    Example: { "bstack:options": { "idleTimeout": "120" } }
    maskCommands
    Use this capability to mask the data sent or retrieved by certain commands.

    Note: You can pass multiple commands in a single array, separated by commas.
    Default: Empty Array

    setValues
    All the text send via sendKeys command will be redacted.

    getValues
    All the text retrieved via get command will be redacted.

    Example:
    { "bstack:options": { "maskCommands": "setValues,getValues" } }
    Note: Sensitive data in certain logs (like Appium, video, etc.) cannot be masked.
    uploadMedia

    Use your uploaded images or videos in the test. Upload your custom media on BrowserStack servers using REST API . Use the media_url(media://…….) returned as a result of the upload in this capability.



    Note:
    • Only 5 files are allowed per test
    • Supported format for images are JPG, JPEG, PNG, GIF, BMP
    • Max file size allowed for images is 10MB
    • Supported format for videos are .mp4, .mov and .3gp
    • Max file size allowed for videos is 50MB
    Example: { "bstack:options": { "uploadMedia": ["media://…..","media://…."]} }

    PRODUCTS

    • Live
    • App Automate
    • App Live
    • Accessibility Testing
    • Automate
    • Test Management
    • App Accessibility Testing
    • Low Code Automation
    • Testing Toolkit
    • Percy
    • Custom Device Lab
    • Website Scanner
    • App Percy
    • App Low Code Automation
    • Test Reporting & Analytics
    • Requestly
    • Test Management for Jira
    • Test Companion
    • Load Testing

    WHY BROWSERSTACK

    • Customers
    • Case Studies
    • AI Agents
    • Browsers & Devices
    • Enterprise
    • Data Centers
    • Real Device Features
    • Security

    RESOURCES

    • Support
    • Status
    • Release Notes
    • Blog
    • Events
    • Community
    • Meetups
    • Champions
    • Guide
    • Partners
    • Find a partner
    • Trust Center
    • Test University (Beta)

    COMPANY

    • About Us
    • Careers
    • Open Source
    • Press
    • Newsletter
    Browserstack logo
    SOCIAL
    twitter social link facebook social link linkedin social link youtube social link instagram social link discord social link
    Contact Us

    We are available 24 / 7

    More Resources

    Cross Browser Testing Selenium Testing Test Management Emulators vs Real Device Mobile App Testing

    Test on Device

    Test on iPad Test on Galaxy Test In IE Test on Android Test on iOS Mobile Emulators Test on Right Devices

    Tools

    SpeedLab Screenshots Responsive Nightwatch.js
    Browserstack logo
    twitter social link facebook social link linkedin social link youtube social link instagram social link discord social link
    Contact Us

    We are available 24 / 7

    © 2026 BrowserStack. All rights reserved.

    • Terms of Service
    • Privacy Policy
    • Cookie Policy
    • Sitemap