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 grid

    Low Code Automation

    Automation without coding

    Accessibility Automation

    Automate WCAG testing

    Percy

    Visual testing & review

    Automate TurboScale

    Automation on your Cloud

    Management & Optimization

    Test Management

    Unify & track all test cases

    Test Reporting & Analytics

    Monitor & optimize all tests

    Explore BrowserStack for Enterprise | Bug Capture | Requestly | Private Devices

    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 for mobile apps

    Management & Optimization

    Test Management

    Unify & track all test cases

    Test Reporting & Analytics

    Monitor & optimize all tests

    Explore BrowserStack for Enterprise | Bug Capture | Requestly | Private Devices

    • Documentation
    • Support
    • Status
    • Release Notes
    • Open Source
    • Events
    • Meetups
    • Champions
  • AI Agents
  • Pricing
  • Sign in
  • Free Trial
  • Manual Testing
  • Live
    Manual cross-browser testing
  • Accessibility Testing
    Super app to find & report issues
  • Test Automation
  • Automate
    Browser automation grid
  • Percy
    Visual testing & review
  • Management & Optimization
  • Test Management
    Unify & track all test cases
  • Test Reporting & Analytics
    Monitor & optimize all tests
  • For Teams
  • Enterprise
  • Manual Testing
  • App Live
    Manual real device testing
  • App Accessibility Testing
    Test WCAG compliance
  • Test Automation
  • App Automate
    Real device automation cloud
  • App Percy
    Visual testing for mobile apps
  • Management & Optimization
  • Test Management
    Unify & track all test cases
  • Test Reporting & Analytics
    Monitor & optimize all tests
  • For Teams
  • Enterprise
  • Documentation
  • Support
  • Status
  • Release Notes
  • Open Source
  • Events
  • Champions
  • 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.

    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", "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"]
      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
      • Automate
      • Automate TurboScale
      • Percy
      • App Live
      • App Automate
      • App Percy
      • Test Management
      • Test Reporting & Analytics
      • Accessibility Testing
      • Accessibility Automation
      • App Accessibility Testing
      • Low Code Automation
      • Bug Capture
      • Requestly
      • Website Scanner
      • Testing Toolkit (Beta)

      WHY BROWSERSTACK

      • Customers
      • Case Studies
      • 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
      discord social link
      Contact Us

      We are available 24 / 7

      © 2025 BrowserStack. All rights reserved.

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