Skip to main content

Open a Live App Session from a Link

You can link straight to a live session on a real device with one of your uploaded apps installed. This is useful in CI: upload the build of a pull request, then post a link on the pull request so a reviewer can open the app on a device with one click.

https://testingbot.com/members/apps/start?app=tb://<appkey>&device=<id>

Parameters

Parameter Description
app The app_url returned when you upload an app (tb://<appkey>), or just the appkey. Must be an .apk or .ipa uploaded to the same TestingBot account.
device The id of a real device, as returned by GET /v1/devices.
deviceName Instead of device: the device name, for example Pixel 8. When several devices match, a free one is preferred, then the newest OS version.
platformVersion Optional, with deviceName. 14 matches 14 and 14.x.

Examples:

https://testingbot.com/members/apps/start?app=tb://35576f774feba47fa4e4b3b9&device=28
https://testingbot.com/members/apps/start?app=tb://35576f774feba47fa4e4b3b9&deviceName=Pixel%208&platformVersion=14

What happens on click

Opening the link never starts a session by itself. It shows a confirmation page with the app (name, version and bundle identifier) and the device, and whether that device is free. Click Start session to begin.

  • If you are not logged in, you are asked to log in first and then return to the confirmation page.
  • The session runs under the account of the person who clicks the link, so the app must belong to that account. Team members share the team's apps.
  • If the device is in use, the page offers to check again or to pick another device.
  • If the app cannot run on the device (an iOS app on an Android device, or a simulator .zip), the page says so.

Post a link on pull requests

Upload the build with the storage API, read app_url from the response and comment the link on the pull request. A GitHub Actions example:

- name: Upload build to TestingBot
  id: upload
  run: |
    APP_URL=$(curl -s -u "$TB_KEY:$TB_SECRET" \
      -F "file=@app/build/outputs/apk/debug/app-debug.apk" \
      https://api.testingbot.com/v1/storage | jq -r .app_url)
    echo "app_url=$APP_URL" >> "$GITHUB_OUTPUT"
  env:
    TB_KEY: ${{ secrets.TB_KEY }}
    TB_SECRET: ${{ secrets.TB_SECRET }}

- name: Comment live test link
  run: |
    gh pr comment ${{ github.event.pull_request.number }} --body \
      "Test this build on a real device: https://testingbot.com/members/apps/start?app=${{ steps.upload.outputs.app_url }}&deviceName=Pixel%208"
  env:
    GH_TOKEN: ${{ github.token }}

Notes

  • Upload each pull request's build as a new app, so each link keeps pointing at its own build. Replacing the binary under an existing appkey (POST /v1/storage/<appkey>) changes what older links open.
  • Prefer deviceName over device in shared links: a specific device may be in use, another unit of the same model often is not.
  • Your plan's limits apply as usual, for example the number of parallel live sessions.
Was this page helpful?
Last updated