### GET /v1/builds Source: https://testingbot.com/support/api/index Retrieves all builds associated with your account. A build is a collection of tests. ```APIDOC ## Retrieve All Builds ### Description Retrieves all builds for your account. A build is a group of tests. ### Method GET ### Endpoint `/v1/builds` ### Parameters #### Query Parameters - **offset** (int) - Optional - paginate tests starting from this number (default 0). - **count** (int) - Optional - number of tests to fetch (default 10, max 500). ### Request Example ```bash curl "https://api.testingbot.com/v1/builds?offset=0&count=10" \ -u key:secret ``` ### Response #### Success Response (200) - **data** (array) - An array of build objects. - **id** (integer) - The unique identifier of the build. - **build_identifier** (string) - A name or identifier for the build. - **created_at** (string) - The timestamp when the build was created. - **updated_at** (string) - The timestamp when the build was last updated. - **meta** (object) - Metadata about the pagination. - **offset** (integer) - The current offset. - **count** (integer) - The number of items per page. - **total** (integer) - The total number of builds available. #### Response Example ```json { "data":[ { "id" : 4331, "build_identifier" : "first-build", "created_at" : "2016-08-01T11:09:02.000Z", "updated_at" : "2016-08-01T11:09:02.000Z" } ], "meta":{ "offset" : 0, "count" : 10, "total" : 3 } } ``` ``` -------------------------------- ### Get Codeless Suite Details Source: https://testingbot.com/support/api/index Retrieves detailed information about a specific Codeless Suite. ```APIDOC ## Get Codeless Suite Details ### Description Get information about a specific Codeless Suite. ### Method GET ### Endpoint `/v1/labsuites/:suiteId` ### Path Parameters - **suiteId** (int) - Required - unique Id for this suite ### Request Example ```bash curl "https://api.testingbot.com/v1/labsuites/:suiteId" \ -u key:secret ``` ### Response #### Success Response (200) - **enabled** (boolean) - Indicates if the suite is enabled. - **alerts** (array) - List of alert configurations. - **name** (string) - The name of the suite. - **created_at** (string) - Timestamp of suite creation. - **updated_at** (string) - Timestamp of last update. - **last_run** (string) - Timestamp of the last run. - **cron** (string|null) - Cron schedule for the suite. - **test_count** (int) - Number of tests associated with the suite. #### Response Example ```json { "enabled": true, "alerts": [ { "type": "API", "value": "https:\/\/mysite.com\/callback\/", "level": "IMMEDIATELY" } ], "name": "Example", "created_at": "2017-03-07T19:11:41.000Z", "updated_at": "2017-03-09T12:17:22.000Z", "last_run": "2017-03-09T12:17:22.000Z", "cron": null, "test_count": 5 } ``` ``` -------------------------------- ### Get TestingBot Tunnels List using multiple languages Source: https://testingbot.com/support/api/index Retrieves a list of active TestingBot Tunnels for your account. Examples are provided for Ruby, Java, PHP, Python, and Node.js, demonstrating how to instantiate the API client and call the get_tunnels or getTunnels method. ```ruby require 'testingbot' api = TestingBot::Api.new(key, secret) api.get_tunnels ``` ```java TestingbotREST restApi = new TestingbotREST(key, secret); ArrayList tunnels = restApi.getTunnels(); ``` ```php $api = new TestingBot\TestingBotAPI($key, $secret); $api->getTunnels(); ``` ```python import testingbotclient tb = testingbotclient.TestingBotClient(key, secret) tb.tunnel.get_tunnels() ``` ```javascript const TestingBot = require('testingbot-api'); const api = new TestingBot({ api_key: "your-tb-key", api_secret: "your-tb-secret" }); const tunnels = await api.getTunnelList(); ``` -------------------------------- ### GET /v1/team-management Source: https://testingbot.com/support/api/index Fetches information about the current team, including concurrency limits and current usage for VM and physical device testing. ```APIDOC ## Get Team Info ### Description If you are part of a team, you can fetch information regarding the team with this API call. The response will include the maximum allowed concurrency for both VM based testing and physical mobile device testing. Next to that, the response will include the current usage of the entire team, for both VM based testing and physical mobile device testing. ### Method GET ### Endpoint /v1/team-management ### Parameters None ### Request Example ```bash curl "https://api.testingbot.com/v1/team-management" \ -u key:secret ``` ```javascript const TestingBot = require('testingbot-api'); const api = new TestingBot({ api_key: "your-tb-key", api_secret: "your-tb-secret" }); const teamInfo = await api.getTeam(); ``` ### Response #### Success Response (200) - **concurrency** (object) - An object containing allowed and current concurrency details. - **allowed** (object) - **vms** (integer) - Maximum allowed VM concurrency. - **physical** (integer) - Maximum allowed physical device concurrency. - **current** (object) - **vms** (integer) - Current VM usage. - **physical** (integer) - Current physical device usage. #### Response Example ```json { "concurrency":{ "allowed":{ "vms": 10, "physical": 2 }, "current":{ "vms": 4, "physical": 1 } } } ``` ``` -------------------------------- ### Take Screenshots using Node.js Source: https://testingbot.com/support/api/index This example demonstrates how to take screenshots using the testingbot-api Node.js library. It involves initializing the API client with your credentials and then calling the takeScreenshot method with the target URL, browser configurations, and desired resolution. The function returns a promise that resolves with the screenshot job details. ```javascript const TestingBot = require('testingbot-api'); const api = new TestingBot({ api_key: "your-tb-key", api_secret: "your-tb-secret" }); const screenshots = await api.takeScreenshot( 'https://example.com', [{ browserName: 'chrome', version: 'latest', os: 'WIN11' }], '1920x1080' ); ``` -------------------------------- ### GET /v1/storage/ Source: https://testingbot.com/support/api/index Retrieves a list of all files previously uploaded to TestingBot Storage. ```APIDOC ## GET /v1/storage/ ### Description Retrieves a list of all files that you or your team members have previously uploaded to TestingBot Storage. The response includes a `url` parameter which is a signed URL valid for up to 4 hours. ### Method GET ### Endpoint `https://api.testingbot.com/v1/storage/` ### Parameters #### Query Parameters - **offset** (integer) - Optional - The number of files to skip before starting to collect the result. Defaults to 0. - **count** (integer) - Optional - The maximum number of files to return. Defaults to 30. ### Request Example ```bash $ curl "https://api.testingbot.com/v1/storage/" ``` ### Response #### Success Response (200) - **app_url** (string) - The app_url of the file. - **url** (string) - A signed URL to access the file (valid for 4 hours). - **id** (integer) - The unique identifier for the file. - **type** (string) - The type of the file (e.g., "ANDROID"). - **filename** (string) - The original filename. - **version** (string) - The version of the application. - **min_device_version** (string) - The minimum device version required. - **thumb** (string) - A URL to a thumbnail image of the file. - **created_at** (string) - The timestamp when the file was created. #### Response Example ```json [ { "app_url":"tb://....", "url":".....", "id":44, "type":"ANDROID", "filename":"sample.apk", "version":"1.0.1", "min_device_version": "23", "thumb":"https://...image.png", "created_at":"2019-01-08T13:42:42.000Z" } ] ``` ``` -------------------------------- ### GET /v1/screenshots Source: https://testingbot.com/support/api/index Retrieves a list of previous screenshot jobs. Supports pagination with offset and count parameters. ```APIDOC ## GET /v1/screenshots ### Description Retrieves a list of previous screenshot jobs. ### Method GET ### Endpoint /v1/screenshots ### Query Parameters - **offset** (int) - Optional - paginate screenshot jobs starting from this number (default 0) - **count** (int) - Optional - number of screenshot jobs to fetch (default 10, max 500) ### Response #### Success Response (200) - **data** (array) - An array of screenshot job objects. - **id** (int) - The ID of the screenshot job. - **url** (string) - The URL for which the screenshot was taken. - **resolution** (string) - The resolution of the screenshot. - **meta** (object) - Metadata for pagination. - **offset** (int) - The current offset. - **count** (int) - The number of items returned. - **total** (int) - The total number of available items. ### Response Example ```json { "data" : [ { "id":3454, "url":"https://google.com", "resolution":"1280x1024" }, { "id":3452, "url":"https://testingbot.com", "resolution":"1280x1024" }, { "id":3451, "url":"https://yahoo.com", "resolution":"1280x1024" } ], "meta":{ "offset" : 0, "count" : 3, "total" : 3 } } ``` ``` -------------------------------- ### Get Browsers for a Codeless Test Suite with TestingBot API Source: https://testingbot.com/support/api/index Retrieves the list of browsers on which a specific codeless test suite will execute. Requires the suite ID and authentication credentials. ```bash $ curl "https://api.testingbot.com/v1/lab/:suiteId/browsers" \ -u key:secret ``` -------------------------------- ### GET /v1/lab Source: https://testingbot.com/support/api/index Retrieves a list of all Codeless Automation tests configured in your account. Supports pagination. ```APIDOC ## GET /v1/lab ### Description Retrieves a list of all your Codeless Automation tests. ### Method GET ### Endpoint /v1/lab ### Query Parameters - **offset** (int) - Optional - paginate tests starting from this number (default 0) - **count** (int) - Optional - number of tests to fetch (default 10, max 500) ### Response #### Success Response (200) - **data** (array) - An array of codeless test objects. - **id** (int) - The unique identifier for the codeless test. - **enabled** (boolean) - Whether the test is enabled. - **alerts** (array) - List of alerts associated with the test. - **url** (string) - The URL the test is configured for. - **name** (string) - The name of the codeless test. - **created_at** (string) - Timestamp of creation. - **updated_at** (string) - Timestamp of last update. - **last_run** (string) - Timestamp of the last execution. - **browsers** (array) - List of browsers the test is configured to run on. - **name** (string) - Browser name. - **version** (int) - Browser version. - **os** (string) - Operating system. - **meta** (object) - Metadata for pagination. - **offset** (int) - The current offset. - **count** (int) - The number of items returned. - **total** (int) - The total number of available items. ### Response Example ```json { "data":[ { "id":215, "enabled":false, "alerts":[], "url":"https://testingbot.com/", "name":"testingbot", "created_at":"2012-03-12T20:03:45Z", "updated_at":"2012-03-13T20:26:43Z", "last_run":"2012-03-13T06:50:48Z", "browsers":[ {"name":"firefox","version":10,"os":"LINUX"} ] }], "meta": { "offset":2, "count":3, "total":25 } } ``` ``` -------------------------------- ### GET /v1/devices/available Source: https://testingbot.com/support/api/index Retrieves a list of all available real mobile devices, including public and private devices associated with your subscription. ```APIDOC ## Retrieve all Available Devices ### Description Fetches all available Real Mobile devices. The response includes all public devices, and private devices associated to your subscription. ### Method GET ### Endpoint /v1/devices/available ### Parameters #### Query Parameters - **offset** (number) - Optional - The number of devices to skip before starting to collect the result set. - **count** (number) - Optional - The numbers of devices to return. ### Request Example ``` { "example": "" } ``` ### Response #### Success Response (200) - **id** (number) - The unique identifier of the device. - **available** (boolean) - Indicates if the device is currently available. - **model_number** (string) - The model number of the device. - **resolution** (string) - The screen resolution of the device. - **width** (integer) - The screen width in pixels. - **height** (integer) - The screen height in pixels. - **cpu** (string) - The CPU information of the device. - **name** (string) - The name of the device. - **platform_name** (string) - The operating system platform (e.g., 'Android', 'iOS'). - **version** (string) - The operating system version. - **multiple_browsers** (array) - A list of browsers available on the device, each with 'id', 'name', and 'version'. #### Response Example ```json [ { "id":1, "available":true, "model_number":"SM-G950U1", "resolution":"1080x2220", "width":1080, "height":2220, "cpu":"Octa-core (4x2.3 GHz Mongoose M2 & 4x1.7 GHz Cortex-A53)", "name":"Galaxy S8", "platform_name":"Android", "version":"9.0", "multiple_browsers":[ { "id":1727, "name":"chrome", "version":"103.0.5060.129" }, { "id":2133, "name":"firefox", "version":"98.2" }, { "id":2953, "name":"samsung", "version":"13.2.1.70" }, { "id":2954, "name":"opera", "version":"67.1" } ] } ] ``` ``` -------------------------------- ### Get Tests for a Codeless Suite Source: https://testingbot.com/support/api/index Retrieves all tests within a specified codeless suite. Supports pagination. ```APIDOC ## GET /v1/labsuites/:suiteId/tests ### Description Retrieves all tests in a given codeless suite. ### Method GET ### Endpoint `/v1/labsuites/:suiteId/tests` ### Parameters #### Path Parameters - **suiteId** (int) - Required - Unique ID for the suite. #### Query Parameters - **offset** (int) - Optional - Defaults to 0. Paginate tests starting from this number. - **count** (int) - Optional - Defaults to 10, max 500. Number of tests to fetch. ### Response #### Success Response (200) - **data** (array) - Array of test objects. - **id** (int) - The test ID. - **enabled** (boolean) - Whether the test is enabled. - **alerts** (array) - List of alerts associated with the test. - **url** (string) - The URL the test is configured for. - **name** (string) - The name of the test. - **created_at** (string) - Timestamp of test creation. - **updated_at** (string) - Timestamp of last test update. - **last_run** (string) - Timestamp of the last test run. - **cron** (string|null) - Cron expression for scheduled runs, if applicable. - **browsers** (array) - List of browsers the test is configured for. - **name** (string) - Browser name. - **version** (string) - Browser version. - **os** (string) - Operating system. - **meta** (object) - Metadata about the response. - **offset** (int) - The offset used for pagination. - **count** (int) - The number of tests returned. - **total** (int) - The total number of tests available. ### Request Example ```bash curl "https://api.testingbot.com/v1/labsuites/:suiteId/tests" -u key:secret ``` ### Response Example ```json { "data": [ { "id": 18666, "enabled": true, "alerts": [], "url": "https:\/\/mysite.com\/", "name": "MyTest", "created_at": "2017-03-09T12:14:48.000Z", "updated_at": "2017-03-09T12:19:30.000Z", "last_run": "2017-03-09T12:19:30.000Z", "cron": null, "browsers": [ { "name": "firefox", "version": "41", "os": "VISTA" } ] } ], "meta": { "offset": 0, "count": 1, "total": 1 } } ``` ``` -------------------------------- ### Get Codeless Suite Details with cURL Source: https://testingbot.com/support/api/index Fetches detailed information about a specific Codeless Suite using its unique ID. Requires authentication with API keys. ```shell $ curl "https://api.testingbot.com/v1/labsuites/:suiteId" \ -u key:secret ``` -------------------------------- ### Get Browsers for Codeless Suite Source: https://testingbot.com/support/api/index Retrieves the list of browsers a specific Codeless Suite is configured to run on. ```APIDOC ## Get Browsers for Codeless Suite ### Description Retrieve what browsers this Codeless Suite will run on. ### Method GET ### Endpoint `/v1/labsuites/:suiteId/browsers` ### Path Parameters - **suiteId** (int) - Required - unique Id for this suite ### Request Example ```bash curl "https://api.testingbot.com/v1/labsuites/:suiteId/browsers" \ -u key:secret ``` ### Response #### Success Response (200) - Returns an array of browser objects, each containing: - **name** (string) - The name of the browser. - **version** (string) - The version of the browser. - **os** (string) - The operating system. #### Response Example ```json [{"name":"firefox","version":"41","os":"VISTA"}] ``` ``` -------------------------------- ### Get Tests for a Build using Testingbot API Source: https://testingbot.com/support/api/index Retrieves all tests associated with a specific build. Requires build ID and API credentials. Returns a list of test objects. ```bash $ curl "https://api.testingbot.com/v1/builds/:buildId" \ -u key:secret ``` ```ruby require 'testingbot' api = TestingBot::Api.new(key, secret) api.get_build(build_identifier) ``` ```java TestingbotREST restApi = new TestingbotREST(key, secret); TestingbotTestBuildCollection tests = restApi.getTestsForBuild(String buildId); ``` ```php $api = new TestingBot\TestingBotAPI($key, $secret); $api->getBuild($buildId); ``` ```python import testingbotclient tb = testingbotclient.TestingBotClient(key, secret) tb.build.get_tests_for_build(buildId) ``` ```javascript const TestingBot = require('testingbot-api'); const api = new TestingBot({ api_key: "your-tb-key", api_secret: "your-tb-secret" }); const tests = await api.getTestsForBuild(buildId); ``` -------------------------------- ### GET /v1/devices Source: https://testingbot.com/support/api/index Fetches all available Real Mobile devices, including those currently in use. The response encompasses both public devices and private devices linked to your subscription. ```APIDOC ## GET /v1/devices ### Description Will fetch all Real Mobile devices, including devices currently in use. The response will include all public devices, and private devices associated to your subscription (if any). ### Method GET ### Endpoint `/v1/devices` ### Parameters None ### Request Example ```bash curl -u key:secret "https://api.testingbot.com/v1/devices" ``` ### Response #### Success Response (200) - **devices** (array) - An array of device objects. - **id** (integer) - The unique identifier for the device. - **available** (boolean) - Indicates if the device is currently available. - **model_number** (string) - The model number of the device. - **resolution** (string) - The screen resolution of the device. - **width** (integer) - The width of the device screen in pixels. - **height** (integer) - The height of the device screen in pixels. - **cpu** (string) - The CPU information of the device. - **name** (string) - The name of the device. - **platform_name** (string) - The name of the platform (e.g., Android, iOS). - **version** (string) - The version of the operating system. - **multiple_browsers** (array) - An array of browsers available on the device. - **id** (integer) - The browser ID. - **name** (string) - The browser name. - **version** (string) - The browser version. #### Response Example ```json [ { "id": 1, "available": true, "model_number": "SM-G950U1", "resolution": "1080x2220", "width": 1080, "height": 2220, "cpu": "Octa-core (4x2.3 GHz Mongoose M2 & 4x1.7 GHz Cortex-A53)", "name": "Galaxy S8", "platform_name": "Android", "version": "9.0", "multiple_browsers": [ { "id": 1727, "name": "chrome", "version": "103.0.5060.129" }, { "id": 2133, "name": "firefox", "version": "98.2" }, { "id": 2953, "name": "samsung", "version": "13.2.1.70" }, { "id": 2954, "name": "opera", "version": "67.1" } ] }, { "id": 5, "available": false, "model_number": "MRY42B/A", "resolution": "828x1792", "width": 828, "height": 1792, "cpu": "ARM - Single-core - 2390Mhz", "name": "iPhone XR", "version": "16.3", "platform_name": "iOS" } ] ``` ``` -------------------------------- ### Get Browsers for Test API Source: https://testingbot.com/support/api/index Retrieve a list of browsers that a specific Codeless Test is configured to run on. ```APIDOC ## Get Browsers for Test ### Description Retrieve what browsers this Codeless Test will run on. ### Method GET ### Endpoint `/v1/lab/:suiteId/browsers` ### Parameters #### Path Parameters - **suiteId** (int) - Required - The unique ID of the suite (test) to get browser information for. ### Request Example ```bash curl "https://api.testingbot.com/v1/lab/:suiteId/browsers" \ -u key:secret ``` ### Response #### Success Response (200) - **Response Body** (array of objects) - A list of browsers the test will run on. - **name** (string) - The name of the browser (e.g., "firefox"). - **version** (string) - The version of the browser (e.g., "41"). - **os** (string) - The operating system the browser runs on (e.g., "VISTA"). #### Response Example ```json [ { "name": "firefox", "version": "41", "os": "VISTA" } ] ``` ``` -------------------------------- ### Get Screenshot List using curl Source: https://testingbot.com/support/api/index Retrieves a list of previous screenshot jobs using a curl command. Requires API key and secret for authentication. ```bash $ curl "https://api.testingbot.com/v1/screenshots" -u key:secret ``` -------------------------------- ### Get Browsers for Codeless Suite with cURL Source: https://testingbot.com/support/api/index Retrieves the list of browsers configured to run for a specific Codeless Suite, identified by its suite ID. Requires authentication with API keys. ```shell $ curl "https://api.testingbot.com/v1/labsuites/:suiteId/browsers" \ -u key:secret ``` -------------------------------- ### Generate Authentication Hash for Sharing Test Result (Node.js) Source: https://testingbot.com/support/api/index Demonstrates how to generate an authentication hash for sharing test results using the 'testingbot-api' Node.js package. It requires API key and secret for instantiation and provides a method to get the hash. ```javascript const TestingBot = require('testingbot-api'); const key = "your-tb-key"; const secret = "your-tb-secret"; const identifier = "YOUR_SESSION_ID_OR_IDENTIFIER"; const api = new TestingBot({ api_key: key, api_secret: secret }); const hash = api.getAuthenticationHashForSharing(identifier); console.log(`https://testingbot.com/tests/${identifier}?auth=${hash}`); ``` -------------------------------- ### Get User Info with TestingBot API Source: https://testingbot.com/support/api/index Fetches the user's account information. Authentication is required using API key and secret via HTTP Basic Auth. The response is a JSON object containing user details. ```curl $ curl "https://api.testingbot.com/v1/user" \ -u key:secret ``` ```ruby require 'testingbot' api = TestingBot::Api.new(key, secret) api.get_user_info ``` ```java TestingbotREST restApi = new TestingbotREST(key, secret); TestingbotUser user = restApi.getUserInfo(); ``` ```php $api = new TestingBot\TestingBotAPI($key, $secret); $api->getUserInfo(); ``` ```python import testingbotclient tb = testingbotclient.TestingBotClient(key, secret) tb.user.get_user_information() ``` ```javascript const TestingBot = require('testingbot-api'); const api = new TestingBot({ api_key: "your-tb-key", api_secret: "your-tb-secret" }); const userInfo = await api.getUserInfo(); ``` -------------------------------- ### Create Codeless Test Source: https://testingbot.com/support/api/index Creates a new Codeless Test. This can be done via cURL by providing test details such as name and cron schedule, or programmatically using the TestingBot Node.js library. The Node.js example demonstrates setting various test configurations like URL, AI prompt, and scheduling. ```shell $ curl -X POST "https://api.testingbot.com/v1/lab" \ -u key:secret -d "test[name]=test" -d "test[cron]=31 * * * *" ``` ```javascript const TestingBot = require('testingbot-api'); const api = new TestingBot({ api_key: "your-tb-key", api_secret: "your-tb-secret" }); const testData = { name: 'My Codeless Test', // Required: Test name url: 'https://example.com', // Required: URL to test ai_prompt: 'Test the login flow', // AI test agent prompt cron: '0 0 * * *', // Optional: Cron schedule screenshot: true, // Optional: Take screenshots video: false, // Optional: Record video idletimeout: 60, // Optional: Idle timeout in seconds screenresolution: '1920x1080', // Optional: Screen resolution }; const result = await api.createCodelessTest(testData); ``` -------------------------------- ### Create Codeless Suite with cURL Source: https://testingbot.com/support/api/index Creates a new Codeless test suite with specified name and optional configurations like cron schedule, screenshots, video recording, idle timeout, and screen resolution. Requires API keys for authentication. ```shell $ curl -X POST "https://api.testingbot.com/v1/labsuites" \ -u key:secret -d "suite[name]=test" -d "suite[cron]=31 * * * *" ``` -------------------------------- ### Create a Codeless Suite Source: https://testingbot.com/support/api/index Creates a new Codeless test suite within the TestingBot platform. ```APIDOC ## Create a Codeless Suite ### Description Create a Codeless test suite. ### Method POST ### Endpoint `/v1/labsuites` ### Request Body - **suite[name]** (string) - Required - name of the suite. - **suite[cron]** (string) - Optional - cron format, when to run the suite. - **suite[screenshot]** (boolean) - Optional - take screenshots for every step. - **suite[video]** (boolean) - Optional - record video of this test. - **suite[idletimeout]** (int) - Optional - how long before we consider a test to be idle. - **suite[screenresolution]** (string) - Optional - screenresolution of the OS. ### Request Example ```bash curl -X POST "https://api.testingbot.com/v1/labsuites" \ -u key:secret -d "suite[name]=test" -d "suite[cron]=31 * * * *" ``` ### Response #### Success Response (200) - **success** (boolean) - Indicates if the suite creation was successful. - **suite_id** (int) - The ID of the newly created suite. #### Response Example ```json [{"success":true, "suite_id": 59391}] ``` ``` -------------------------------- ### GET /v1/team-management/users Source: https://testingbot.com/support/api/index Retrieves a list of all users associated with your team. ```APIDOC ## Get users in your team ### Description Retrieve all users that are part of your team. ### Method GET ### Endpoint /v1/team-management/users ### Parameters None ### Request Example ```bash curl "https://api.testingbot.com/v1/team-management/users" \ -u key:secret ``` ```javascript const TestingBot = require('testingbot-api'); const api = new TestingBot({ api_key: "your-tb-key", api_secret: "your-tb-secret" }); const users = await api.getUsersInTeam(); ``` ### Response #### Success Response (200) - **data** (array) - An array of user objects. - **id** (integer) - Unique identifier for the user. - **first_name** (string) - The first name of the user. - **last_name** (string) - The last name of the user. - **seconds** (integer) - Total seconds used by the user. - **last_login** (string) - Timestamp of the last login. - **plan** (string) - The subscription plan of the user. - **max_concurrent** (integer) - Maximum concurrent VM sessions allowed. - **max_concurrent_mobile** (integer) - Maximum concurrent physical mobile device sessions allowed. - **company** (string) - Company name. - **street** (string) - Street address. - **city** (string) - City. - **country** (string) - Country. - **vat** (any) - VAT information (can be null). - **read_only** (boolean) - Indicates if the user is read-only. - **roles** (array) - List of roles assigned to the user (e.g., ADMIN, USER). - **current_vm_concurrency** (integer) - Current VM concurrency usage. - **current_physical_concurrency** (integer) - Current physical device concurrency usage. - **meta** (object) - Metadata about the pagination. - **offset** (integer) - The starting offset for the current page. - **count** (integer) - The number of users on the current page. - **total** (integer) - The total number of users available. #### Response Example ```json { "data":[ { "id":337, "first_name":"test", "last_name":"user", "seconds":12000, "last_login":"2021-05-12T19:37:35.000Z", "plan":"Free Trial", "max_concurrent":2, "max_concurrent_mobile":2, "company":"", "street":"", "city":"", "country":"", "vat":null, "read_only":false, "roles":[], "current_vm_concurrency":0, "current_physical_concurrency":0 } ], "meta":{ "offset":0, "count":1, "total":1 } } ``` The `roles` field indicates if you have one of the roles in the team: * ADMIN * USER ``` -------------------------------- ### GET /v1/tunnel/list Source: https://testingbot.com/support/api/index Lists all currently active TestingBot Tunnels for your account. ```APIDOC ## GET /v1/tunnel/list ### Description Lists all currently active TestingBot Tunnels for your account. You can have up to 3 simultaneous tunnels running with your account. ### Method GET ### Endpoint /v1/tunnel/list ### Response #### Success Response (200) - **(array)** - An array of tunnel objects. - **ip** (string) - The public IP address of the tunnel. - **private_ip** (string) - The private IP address of the tunnel. - **state** (string) - The current state of the tunnel (e.g., "READY"). - **id** (int) - The unique identifier for the tunnel. - **requested_at** (string) - The timestamp when the tunnel was requested. ### Response Example ```json [ { "ip":"xx", "private_ip":"xx", "state":"READY", "id":1, "requested_at":"2013-04-23 01:34:23" } ] ``` ``` -------------------------------- ### List Codeless Test Steps via TestingBot API Source: https://testingbot.com/support/api/index Retrieves all steps associated with a specific codeless test. Supports pagination with optional offset and count parameters. Authentication is required. ```bash $ curl -u key:secret "https://api.testingbot.com/v1/lab/215/steps" ``` -------------------------------- ### Configure Codeless Test Alerts via TestingBot API Source: https://testingbot.com/support/api/index Enables setting up alerts for codeless tests, which can be delivered via email, API, or SMS. Supports immediate or daily notifications and requires authentication. ```bash $ curl "https://api.testingbot.com/v1/lab/215/alert" \ -X POST (or PUT for update) \ -d "kind=EMAIL" \ -d "level=IMMEDIATELY" \ -d "content=my@email.com" \ -u key:secret ``` -------------------------------- ### GET /v1/storage/:app_url Source: https://testingbot.com/support/api/index Retrieves metadata for a previously uploaded file from TestingBot Storage. ```APIDOC ## GET /v1/storage/:app_url ### Description Retrieves various metadata associated with a file previously uploaded to TestingBot Storage. The `app_url` obtained from the original file upload is required. ### Method GET ### Endpoint `https://api.testingbot.com/v1/storage/:app_url` ### Parameters #### Path Parameters - **app_url** (string) - Required - The `app_url` of the file to retrieve data for. ### Request Example ```bash $ curl "https://api.testingbot.com/v1/storage/:app_url" \ -u key:secret ``` ### Response #### Success Response (200) - **app_url** (string) - The app_url of the file. - **url** (string) - A URL to access the file. - **id** (integer) - The unique identifier for the file. - **type** (string) - The type of the file (e.g., "ANDROID"). - **filename** (string) - The original filename. - **version** (string) - The version of the application. - **min_device_version** (string) - The minimum device version required. - **thumb** (string) - A URL to a thumbnail image of the file. - **created_at** (string) - The timestamp when the file was created. #### Response Example ```json { "app_url":"tb://0ec522702cd81ec1374e9b3c", "url":"http://...", "id":261, "type":"ANDROID", "filename":"sample.apk", "version":"1.0.1", "min_device_version": "12.0", "thumb":"https://...image.png", "created_at":"2019-03-08T08:58:32.000Z" } ``` ``` -------------------------------- ### Retrieve Builds using TestingBot API Source: https://testingbot.com/support/api/index Fetches a list of all builds associated with your TestingBot account. Builds are collections of tests. Supports pagination with offset and count parameters. The response includes build data and metadata. ```bash $ curl "https://api.testingbot.com/v1/builds?offset=0&count=10" \ -u key:secret ``` ```ruby require 'testingbot' api = TestingBot::Api.new(key, secret) api.get_builds(0, 10) ``` ```java TestingbotREST restApi = new TestingbotREST(key, secret); TestingbotBuildCollection builds = restApi.getBuilds(int offset, int count); ``` ```php $api = new TestingBot\TestingBotAPI($key, $secret); $api->getBuilds(0, 10); ``` ```python import testingbotclient tb = testingbotclient.TestingBotClient(key, secret) tb.build.get_builds(offset=0, limit=10) ``` ```javascript const TestingBot = require('testingbot-api'); const api = new TestingBot({ api_key: "your-tb-key", api_secret: "your-tb-secret" }); const builds = await api.getBuilds(offset, limit); ``` -------------------------------- ### Set Up Codeless Test Reports with TestingBot API Source: https://testingbot.com/support/api/index Allows configuration of daily reports for codeless tests, specifying an email address for delivery and a cron schedule for generation. Authentication is required. ```bash $ curl "https://api.testingbot.com/v1/lab/215/report" \ -X POST (or PUT for update) \ -d "email=my@email.com" \ -d "cron=*/5 * * * *" \ -u key:secret ``` -------------------------------- ### GET /v1/screenshots/:id Source: https://testingbot.com/support/api/index Retrieves the progress and results of a screenshot request using its ID. ```APIDOC ## GET /v1/screenshots/:id ### Description Specify the ID of a "Take Screenshots" call to query the progress of the screenshots. ### Method GET ### Endpoint https://api.testingbot.com/v1/screenshots/:id ### Parameters #### Path Parameters - **id** (int) - Required - The ID of the screenshot group. #### Query Parameters None #### Request Body None ### Request Example ```bash curl "https://api.testingbot.com/v1/screenshots/12345" -u key:secret ``` ### Response #### Success Response (200) - **state** (string) - The current state for the screenshot job (e.g., "done", "processing", "error", "stopped"). - **screenshots** (array) - A list of individual screenshot results. - **image_url** (string) - Location of the actual screenshot (PNG format). - **thumb_url** (string) - Location of the 100x100 thumbnail of the screenshot. - **state** (string) - The state of the individual screenshot (e.g., "done", "processing", "error", "stopped"). - **id** (string) - A unique identifier for this screenshot. - **created_at** (string) - Timestamp when the screenshot was created. - **os** (string) - The operating system used. - **browser_name** (string) - The name of the browser used. - **browser_version** (string) - The version of the browser used. - **browser_id** (int) - The internal browser ID. - **device_name** (string) - The device name (if applicable). - **platform_name** (string) - The platform name (if applicable). #### Response Example ```json { "state": "done", "screenshots": [ { "image_url": "https://....", "thumb_url": "https://....", "state": "done", "id": "9c7deea4-6f23-4041-842b-39cccee447fa", "created_at": "2017-10-13T14:47:44.000Z", "os": "SEQUOIA", "browser_name": "googlechrome", "browser_version": "138", "browser_id": 1146, "device_name": null, "platform_name": "" } ] } ``` ``` -------------------------------- ### GET /v1/configuration/ip-ranges Source: https://testingbot.com/support/api/index Retrieves an up-to-date list of IP ranges used by TestingBot machines for whitelisting. ```APIDOC ## GET /v1/configuration/ip-ranges ### Description Fetches an up-to-date list of IP addresses used by TestingBot machines. This list can be used for whitelisting purposes in your network configurations. ### Method GET ### Endpoint `https://api.testingbot.com/v1/configuration/ip-ranges` ### Parameters None ### Request Example ```bash $ curl "https://api.testingbot.com/v1/configuration/ip-ranges" ``` ### Response #### Success Response (200) - Array of strings, where each string is an IP address. #### Response Example ```json [ "109.68.162.161", "109.68.162.165", "78.20.187.211", "162.55.135.22", "95.217.83.184", "95.216.39.110", "65.21.76.124", "95.216.229.109", "142.132.137.7" ] ``` ```