Browserstack logo Search logo Open Menu Close Menu
  • Products
  • Developers
  • Live for Teams
  • Pricing
  • Products
      • Test your websites
      • Live
        Interactive cross browser testing
      • Automate
        Selenium testing at scale
      • Percy New
        Visual testing & review
      • Test your mobile apps
      • App Live
        Interactive native & hybrid app testing
      • App Automate
        Test automation for native & hybrid mobile apps

      Use BrowserStack with your favourite products. See our Integrations ⟶

      • For Teams
      • Enterprise
      • Tools
      • Screenshots
      • Responsive
      • SpeedLab
  • Developers
    • Documentation
    • Support
    • Status
    • Release Notes
    • Open Source
    • Events
  • Live for Teams
  • Pricing
  • Sign in
  • Free Trial
  • Products
  • Test your websites
  • Live
    Interactive cross browser testing
  • Automate
    Selenium testing at scale
  • Percy
    Visual testing & review
  • Test your mobile apps
  • App Live
    Interactive native & hybrid app testing
  • App Automate
    Test automation for native & hybrid mobile apps
  • For Teams
  • Enterprise
  • Tools
  • Screenshots
  • Responsive
  • SpeedLab
  • Developers
  • Documentation
  • Support
  • Status
  • Release Notes
  • Open Source
  • Events
  • Get help
  • Documentation
  • Appium
  • Espresso
  • XCUITest
  • EarlGrey
  • Test dev environments
  • Speed up your test suite
  • References
  • Features
  • Browsers & Devices
  • Emulator vs Real Device
  • Simulator vs Real Device
  • Security
  • Debugging
  • Device Features
  • Status

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.

  • JSON wire protocol
  • W3C Protocol
Configure capabilities
Code
Select core capabilities
*  Operating System
os
Select an OS
Android
Mobile
  • iOS
  • Android
Desktop
Browser
Windows XP
*  device
device
Select a device
iOS
This device is not available in the free plan. Please upgrade to a paid plan.
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
    Project details (Project, Build & Session name)
    project
    A unique identifier to logically group multiple builds together
    build
    A unique identifier to logically group multiple test sessions together
    name
    A unique identifer for your test session
    Test configuration
    browserstack.local
    Test localhost / internal servers in your network
    otherApps
    A list of other apps to install prior to running test
    browserstack.acceptInsecureCerts
    Avoid invalid certificate errors when using self-signed certificates
    browserstack.idleTimeout
    This capability can be used to modify the timeout value.
    Debugging options
    browserstack.deviceLogs
    Enable device logs
    browserstack.video
    Enable video recording during your test
    browserstack.debug
    Enable automatic screenshots for various appium commands
    browserstack.appiumLogs
    Enable appium logs
    Device features
    browserstack.gpsLocation
    Simulate the location of the device to particular GPS location
    language
    Set the language of the app under test
    locale
    Set device locale
    deviceOrientation
    Change the screen orientation of the device
    browserstack.geoLocation
    Test how your app behaves in specific countries
    Note: IP Geolocation is available only in BrowserStack Enterprise Plan. More details and list of 90+ countries can be found here.
    browserstack.customNetwork
    Simulate custom network conditions
    disableAnimations
    Disable animations on the device
    browserstack.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.

    Capabilities

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

    Capabilities Reference

    Capabilities

    Appium provides a series of capabilities that you can set for the Appium version you are running. Appium server on the BrowserStack will receive all the capabilities you set on the client side. You can also use BrowserStack specific capabilities to configure your tests. Below is the complete list of BrowserStack Capabilities we support for App testing:

    Appium capabilities

    Capability Values
    app

    Accepts App URL returned after uploading an app on the BrowserStack servers or custom_id defined by you to upload an app. Upload the App using REST API.

    bs://<hashed app-id> or custom_id
    automationName

    Set the automation engine to use

    UIAutomator2, XCUITest, Appium, UIAutomator1
    Android (Default): UIAutomator2
    iOS (Default): XCUITest
    otherApps

    String array of uploaded app ids.

    Note: Maximum 3 app ids allowed. This capability has to be used along with app capability.

    Example: ["bs://<hashed app-id>", "bs://<hashed app-id>"]

    Note: Refer to complete list of Appium supported capabilities

    Test configuration capabilities

    Capability Values
    userName

    Set the username for authentication.

    You can find your username and access key on the Settings page under the Automate section.

    Example: { "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: { "accessKey": "<BROWSERSTACK_ACCESSKEY>" }
    project

    Allows the user to specify a name for a logical group of builds.

    Example: loginformproject
    Default: Untitled Project
    build

    Allows the user to specify a name for a logical group of tests.

    Example: build 4.5
    Default: Untitled Build
    name

    Allows the user to specify an identifier for the test run.

    Example: logintest
    browserstack.local

    Required if you are testing against internal/local servers.

    true, false
    Default: false
    browserstack.debug

    Required if you want to generate screenshots at various steps in your test.

    true, false
    Default: false
    browserstack.deviceLogs

    Required if you want to capture device logs for your test.

    true, false
    Default: true
    browserstack.networkLogs

    Required if you want to capture network logs for your test.

    true, false
    Default: false
    browserstack.acceptInsecureCerts

    Use this capability to avoid invalid certificate errors while using self-signed certificate to test your app.

    true, false
    Default: false
    browserstack.appiumLogs

    Required if you want to capture raw appium logs for your test.

    true, false
    Default: true
    browserstack.video

    Required if you want to enable video recording during your test.

    true, false
    Default: true
    browserstack.appStoreConfiguration

    Required if you want to login to your google account on the devices in order to test the functionalities like Google Pay or Google In-app purchase.

    Example: { "username" : "play-store-email", "password" : "play-store-password" }
    This feature is not supported on the following devices: ["Vivo Y50"]
    browserstack.app_version

    Required if you want to test previously uploaded apps under same custom_id. 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.

    Note: 'browserstack.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 browserstack.app_version capability.

    -1, -2 and so on
    Default: Latest uploaded app version under the custom_id
    browserstack.gpsLocation

    Required if you want to 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
    browserstack.geoLocation

    Required if you want to 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: Complete list of of over 60+ countries can be found here.
    This feature is only available with a BrowserStack Enterprise plan. View details.
    browserstack.networkProfile

    Required if you want to simulate different network conditions from the list of existing network profiles.

    Example: 2g-gprs-good, 2g-gprs-lossy, 3g-umts-good etc.
    Complete list of network profiles can be found here.
    The airplane-mode is not supported on the following devices: ["Vivo Y50"]
    browserstack.customNetwork

    Required if you want to simulate the custom network condition

    Example ('1000', '1000', '100', '1')
    download speed (kbps), upload speed (kbps), latency (ms), packet loss (%)
    browserstack.resignApp

    Set this capability to false if you want to test features like, Push Notifications. Use this capability along with your Enterprise signed app in the app capability. Using this capability will disable 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.
    browserstack.timezone

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

    UTC, New_York (for America/New_York), Los_Angeles (for America/Los_Angeles), La_Rioja (for America/Argentina/La_Rioja)
    Note: Supported only on Android. You can view the complete list of timezones on Wikipedia.
    This feature is not supported on the following devices: ["Vivo Y50"]
    disableAnimations

    Required if you want to disable animations on the device.

    Set this parameter to "true" to disable animations on the device.
    browserstack.uploadMedia

    Required if you want to use your uploaded images or videos in the test. Upload your custom media on BrowserStack servers using REST API. Use the hashed url returned as a result of the upload in this capability.

    Example: ["media://hashedid", "media://hashedid"]
    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
    browserstack.idleTimeout

    BrowerStack triggers BROWSERSTACK_IDLE_TIMEOUT error when a session is left idle for more than 90 seconds. This happens as BrowserStack by default waits for the timeout duration for additional steps or commands to run, if we do not receive any command during that time, the session is stopped, changing the session status to TIMEOUT on the dashboard.


    This capability can be used to modify the timeout value.
    0 to 300 seconds
    Default: 90 seconds

    Example: "browserstack.idleTimeout": 120
    browserstack.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:
    "browserstack.maskCommands": "setValues,getValues"
    Note: Sensitive data in certain logs (like Appium, video, etc.) cannot be masked.

    Mobile capabilities

    Capability Values
    device

    Specifies a particular mobile device for the test environment.

    Android devices: Samsung Galaxy S20, Samsung Galaxy S20 Plus, Samsung Galaxy S20 Ultra, Samsung Galaxy Note 20 Ultra, Samsung Galaxy Note 20, Samsung Galaxy A51, Samsung Galaxy A11, Samsung Galaxy S9 Plus, Samsung Galaxy S8 Plus, Samsung Galaxy S10e, Samsung Galaxy S10 Plus, Samsung Galaxy S10, Samsung Galaxy Note 10 Plus, Samsung Galaxy Note 10, Samsung Galaxy A10, Samsung Galaxy Note 9, Samsung Galaxy J7 Prime, Samsung Galaxy S9, Samsung Galaxy Note 8, Samsung Galaxy A8, Samsung Galaxy S8, Samsung Galaxy S7, Samsung Galaxy S6, Samsung Galaxy S5, Samsung Galaxy Note 4, Google Pixel 5, Google Pixel 4, Google Pixel 4 XL, Google Pixel 3, Google Pixel 3a XL, Google Pixel 3a, Google Pixel 3 XL, Google Pixel 2, Google Pixel, Google Nexus 6, Google Nexus 5, OnePlus 8, OnePlus 7T, OnePlus 7, OnePlus 6T, Xiaomi Redmi Note 8, Xiaomi Redmi Note 7, Motorola Moto G7 Play, Motorola Moto X 2nd Gen, Vivo Y50, Samsung Galaxy Tab S7, Samsung Galaxy Tab S6, Samsung Galaxy Tab S5e, Samsung Galaxy Tab S4, Samsung Galaxy Tab S3, Samsung Galaxy Tab 4
    iOS devices: iPhone XS, iPhone 12 Pro Max, iPhone 12 Mini, iPhone 12, iPhone 11 Pro Max, iPhone 11, iPhone 11 Pro, iPhone XS Max, iPhone XR, iPhone X, iPhone 8, iPhone 8 Plus, iPhone 7, iPhone 7 Plus, iPhone 6S, iPhone 6S Plus, iPhone 6, iPhone SE 2020, iPhone SE, iPad Air 4, iPad Pro 12.9 2020, iPad 8th, iPad Pro 12.9 2018, iPad Pro 11 2020, iPad Mini 2019, iPad Air 2019, iPad 7th, iPad Pro 11 2018, iPad Pro 9.7 2016, iPad Pro 12.9 2017, iPad Mini 4, iPad 6th, iPad 5th
    Note: All values are strings.
    browserstack.appium_version

    Use this capability to set the Appium version in your test scripts.

    Android: 1.20.2 , 1.19.1 , 1.18.0 , 1.17.0 (default on OS version 5 and above), 1.16.0 , 1.15.0 , 1.14.0 , 1.13.0 , 1.12.1 , 1.11.1 , 1.10.1 , 1.9.1 , 1.8.0 , 1.7.2 , 1.7.1 , 1.6.5 (default on OS version 4.4)
    iOS: 1.19.1 , 1.18.0 , 1.17.0 (default on iOS 13 and 14), 1.16.0 , 1.15.0 , 1.14.0 (default on iOS 12), 1.13.0 , 1.12.1 , 1.11.1 , 1.10.1 , 1.9.1 , 1.8.0 , 1.7.2 , 1.7.1 , 1.7.0 (default on iOS 10 and 11), 1.6.5
    os

    OS you want to test.

    ios, android
    os_version

    Use this capability to specify the OS version of the device.

    Samsung Galaxy S20: "10.0"
    Samsung Galaxy S20 Plus: "10.0"
    Samsung Galaxy S20 Ultra: "10.0"
    Samsung Galaxy Note 20 Ultra: "10.0"
    Samsung Galaxy Note 20: "10.0"
    Samsung Galaxy A51: "10.0"
    Samsung Galaxy A11: "10.0"
    Samsung Galaxy S9 Plus: "9.0"
    Samsung Galaxy S8 Plus: "9.0"
    Samsung Galaxy S10e: "9.0"
    Samsung Galaxy S10 Plus: "9.0"
    Samsung Galaxy S10: "9.0"
    Samsung Galaxy Note 10 Plus: "9.0"
    Samsung Galaxy Note 10: "9.0"
    Samsung Galaxy A10: "9.0"
    Samsung Galaxy Note 9: "8.1"
    Samsung Galaxy J7 Prime: "8.1"
    Samsung Galaxy S9 Plus: "8.0"
    Samsung Galaxy S9: "8.0"
    Samsung Galaxy Note 8: "7.1"
    Samsung Galaxy A8: "7.1"
    Samsung Galaxy S8 Plus: "7.0"
    Samsung Galaxy S8: "7.0"
    Samsung Galaxy S7: "6.0"
    Samsung Galaxy S6: "5.0"
    Samsung Galaxy S5: "4.4"
    Samsung Galaxy Note 4: "4.4"
    Google Pixel 5: "11.0"
    Google Pixel 4: "11.0"
    Google Pixel 4 XL: "10.0"
    Google Pixel 4: "10.0"
    Google Pixel 3: "10.0"
    Google Pixel 3a XL: "9.0"
    Google Pixel 3a: "9.0"
    Google Pixel 3 XL: "9.0"
    Google Pixel 3: "9.0"
    Google Pixel 2: "9.0"
    Google Pixel 2: "8.0"
    Google Pixel: "8.0"
    Google Pixel: "7.1"
    Google Nexus 6: "6.0"
    Google Nexus 6: "5.0"
    Google Nexus 5: "4.4"
    OnePlus 8: "10.0"
    OnePlus 7T: "10.0"
    OnePlus 7: "9.0"
    OnePlus 6T: "9.0"
    Xiaomi Redmi Note 8: "9.0"
    Xiaomi Redmi Note 7: "9.0"
    Motorola Moto G7 Play: "9.0"
    Motorola Moto X 2nd Gen: "6.0"
    Vivo Y50: "10.0"
    Samsung Galaxy Tab S7: "10.0"
    Samsung Galaxy Tab S6: "9.0"
    Samsung Galaxy Tab S5e: "9.0"
    Samsung Galaxy Tab S4: "8.1"
    Samsung Galaxy Tab S3: "7.0"
    Samsung Galaxy Tab 4: "4.4"
    iPhone XS: "14"
    iPhone 12 Pro Max: "14"
    iPhone 12 Mini: "14"
    iPhone 12: "14"
    iPhone 11 Pro Max: "14"
    iPhone 11: "14"
    iPhone XS: "13"
    iPhone 11 Pro Max: "13"
    iPhone 11 Pro: "13"
    iPhone 11: "13"
    iPhone XS: "12"
    iPhone XS Max: "12"
    iPhone XR: "12"
    iPhone X: "11"
    iPhone 8: "13"
    iPhone 8: "12"
    iPhone 8: "11"
    iPhone 8 Plus: "12"
    iPhone 8 Plus: "11"
    iPhone 7: "12"
    iPhone 7: "10"
    iPhone 7 Plus: "10"
    iPhone 6S: "12"
    iPhone 6S: "11"
    iPhone 6S Plus: "11"
    iPhone 6: "11"
    iPhone SE 2020: "13"
    iPhone SE: "11"
    iPad Air 4: "14"
    iPad Pro 12.9 2020: "14"
    iPad Pro 12.9 2020: "13"
    iPad 8th: "14"
    iPad Pro 12.9 2018: "13"
    iPad Pro 11 2020: "13"
    iPad Mini 2019: "13"
    iPad Air 2019: "13"
    iPad 7th: "13"
    iPad Pro 12.9 2018: "12"
    iPad Pro 11 2018: "12"
    iPad Mini 2019: "12"
    iPad Air 2019: "12"
    iPad Pro 9.7 2016: "11"
    iPad Pro 12.9 2017: "11"
    iPad Mini 4: "11"
    iPad 6th: "11"
    iPad 5th: "11"
    deviceOrientation

    Set the screen orientation of mobile device.

    portrait, landscape
    Default: portrait
    language

    Required if you want to set the language of the app under test.
    Note: This capability will only affect the application under test and not the device.

    fr
    locale

    Required if you want to set locale for iOS and Android.

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

    We have following overriding rules specific to App testing:

    • all the emulator specific capabilities will not work, as your tests will always run against real devices
    • Appium's fullreset capability will not work as we always uninstall the app and clean up the device at the end of each session
    • Appium's platformVersion capability will be ignored
    • The value ANY if given to any parameter is same as the parameter preference not specified.
    Products
    • Live
    • Automate
    • Percy New!
    • App Live
    • App Automate
    • Screenshots
    • Responsive
    • Enterprise
    • SpeedLab New!
    Platform
    • Browsers & Devices
    • Data Centers
    • Mobile Features
    • Security
    Resources
    • Test on Right Devices
    • Support
    • Status
    • Release Notes
    • Case Studies
    • Blog
    • Events
    Company
    • About Us
    • Customers
    • Careers We're hiring!
    • Open Source
    • Partners
    • Press
    • Contact
    Social
    Browserstack logo
    Do more with BrowserStack
    • Test In IE
    • Mobile Emulators
    • Test on iPhone
    • Test on iPad
    • Test on Galaxy
    • Android Testing
    • iOS Testing
    • Guide
    • Cross Browser Testing
    • Emulators & Simulators
    • Selenium
    • Cypress
    • Android Emulators
    • Responsive Design
    • Visual Testing

    © 2011-2021 BrowserStack - The Most Reliable Mobile App & Cross Browser Testing Company

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

    We use cookies to enhance user experience, analyze site usage, and assist in our marketing efforts. By continuing to browse or closing this banner, you acknowledge that you have read and agree to our Cookie Policy, Privacy Policy and Terms of Service.

    Got it