{"id":20932414,"url":"https://github.com/testingbot/testingbot-api","last_synced_at":"2025-05-13T20:30:35.808Z","repository":{"id":1766033,"uuid":"44385439","full_name":"testingbot/testingbot-api","owner":"testingbot","description":"NodeJS module to communicate with the TestingBot API","archived":false,"fork":false,"pushed_at":"2024-06-16T21:22:17.000Z","size":152,"stargazers_count":0,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-27T06:48:29.208Z","etag":null,"topics":["automated","selenium","testingbot","webdriver"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/testingbot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-10-16T13:00:46.000Z","updated_at":"2023-06-23T11:41:02.000Z","dependencies_parsed_at":"2024-03-14T14:45:54.456Z","dependency_job_id":"a6ff6858-7152-4e8d-bd4c-216465095c9f","html_url":"https://github.com/testingbot/testingbot-api","commit_stats":{"total_commits":40,"total_committers":3,"mean_commits":"13.333333333333334","dds":"0.44999999999999996","last_synced_commit":"7d8f5223c2183a22efa9d178ef524eea0911c4cd"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testingbot%2Ftestingbot-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testingbot%2Ftestingbot-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testingbot%2Ftestingbot-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testingbot%2Ftestingbot-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/testingbot","download_url":"https://codeload.github.com/testingbot/testingbot-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254020902,"owners_count":22000805,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automated","selenium","testingbot","webdriver"],"created_at":"2024-11-18T21:48:32.055Z","updated_at":"2025-05-13T20:30:35.451Z","avatar_url":"https://github.com/testingbot.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![npm version](https://img.shields.io/npm/v/testingbot-api.svg?style=flat-square)](https://www.npmjs.com/package/testingbot-api) \n[![npm downloads](https://img.shields.io/npm/dm/testingbot-api.svg?style=flat-square)](https://www.npmjs.com/package/testingbot-api)\n[![Tests](https://github.com/testingbot/testingbot-api/actions/workflows/test.yml/badge.svg)](https://github.com/testingbot/testingbot-api/actions/workflows/test.yml)\n\n# testingbot-api\n\nWrapper around the TestingBot REST API for [Node.js](https://nodejs.org/).\n\n## Install\n\n```shell\nnpm install testingbot-api\n```\n\n## Credentials\nYou can use environment variables `TESTINGBOT_KEY` and `TESTINGBOT_SECRET` to pass your TestingBot key and secret to the API client.\nThe key and secret can be obtained from [TestingBot](https://testingbot.com/members/user/edit)\n\n## Using the wrapper\n\n```javascript\nconst TestingBot = require('testingbot-api');\n\nconst tb = new TestingBot({\n  api_key: \"your-tb-key\",\n  api_secret: \"your-tb-secret\"\n});\n```\n\n### getBrowsers\nGets a list of browsers you can test on\n\n```javascript\napi.getBrowsers(function(error, browsers) {});\n```\n\n### getDevices\nGets a list of physical mobile devices you can test on\n\n```javascript\napi.getDevices(function(error, devices) {});\n```\n\n### getAvailableDevices\nGets a list of available physical mobile devices for your account\n\n```javascript\napi.getAvailableDevices(function(error, availableDevices) {});\n```\n\n### getDevice\nGets details for a specific physical device\n\n```javascript\napi.getDevice(deviceId, function(error, deviceDetails) {});\n```\n\n\n### getUserInfo\nGets your user information\n\n```javascript\napi.getUserInfo(function(error, userInfo) {});\n```\n\n### updateUserInfo\nUpdates your user information\n\n```javascript\napi.updateUserInfo(newUserdata, function(error, userInfo) {});\n```\n\n### getTests\nGets list of your latest tests\n\n```javascript\napi.getTests(function(error, tests) {}, offset, limit);\n```\n\n### getTestDetails\nGets details for a single test, pass the WebDriver's SessionID\n\n```javascript\napi.getTestDetails(sessionId, function(error, testDetails) {});\n```\n\n### updateTest\nUpdates a single test. For example, update the `passed` state of a test (whether it was successful or not).\n\n```javascript\nconst testData = { \"test[success]\" : \"1\", \"test[status_message]\" : \"test\" };\napi.updateTest(testData, sessionId, function(error, testDetails) {});\n```\n\n### deleteTest\nDeletes a single test, pass the WebDriver's SessionID\n\n```javascript\napi.deleteTest(sessionId, function(error, success) {});\n```\n\n### stopTest\nStops a single test, pass the WebDriver's SessionID\n\n```javascript\napi.stopTest(sessionId, function(error, success) {});\n```\n\n### getTunnelList\nGets list of active tunnels\n\n```javascript\napi.getTunnelList(function(error, tunnelList) {});\n```\n\n### deleteTunnel\nDeletes a single Tunnel\n\n```javascript\napi.deleteTunnel(tunnelId, function(error, success) {});\n```\n\n### getBuilds\nRetrieves the latest builds\n\n```javascript\napi.getBuilds(function(error, builds) {}, offset, limit);\n```\n\n### getTestsForBuild\nRetrieves the tests for a single build\n\n```javascript\napi.getTestsForBuild(buildId, function(error, tests) {});\n```\n\n### deleteBuild\nDeletes a single build\n\n```javascript\napi.deleteBuild(buildId, function(error, success) {});\n```\n\n### uploadFile\nUploads a local file to TestingBot Storage\n\n```javascript\napi.uploadFile(localFilePath, function(error, appUrl) {});\n```\n\n### uploadRemoteFile\nUploads a remote file to TestingBot Storage\n\n```javascript\napi.uploadFile(remoteFileUrl, function(error, appUrl) {});\n```\n\n### getStorageFile\nRetrieve data from a previously uploaded file\n\n```javascript\napi.getStorageFile(remoteFileUrl, function(error, fileDetails) {});\n```\n\n### getStorageFiles\nRetrieve list of previously uploaded files\n\n```javascript\napi.getStorageFiles(function(error, fileDetails) {}, offset, limit);\n```\n\n### deleteStorageFile\nDelete a previously uploaded file\n\n```javascript\napi.deleteStorageFile(appId, function(error, success) {});\n```\n\n### getAuthenticationHashForSharing\nCalculates the authentication hash for sharing, pass the WebDriver's SessionID.\nThis is used to [share a test's detail page on TestingBot](https://testingbot.com/support/other/sharing)\n\n```javascript\napi.getAuthenticationHashForSharing(sessionId);\n```\n\n### takeScreenshot\nTakes screenshots for the specific browsers\n\n```javascript\napi.takeScreenshot(function(error, screenshots) {}, url, browsers, waitTime, resolution, fullPage, callbackURL);\n```\n\n### retrieveScreenshots\nRetrieves screenshots for a specific `takeScreenshot` call\n\n```javascript\napi.retrieveScreenshots(screenshotId, function(error, screenshots) {});\n```\n\n### getScreenshotList\nRetrieves all screenshots previously generate with your account\n\n```javascript\napi.getScreenshotList(function(error, screenshots) {}, offset, limit);\n```\n\n### getTeam\nRetrieves team information\n\n```javascript\napi.getTeam(function(error, data) {});\n```\n\n### getUsersInTeam\nGet all users in your team\n\n```javascript\napi.getUsersInTeam(function(error, users) {});\n```\n\n### getUserFromTeam\nRetrieves information about a specific user in your team\n\n```javascript\napi.getUserFromTeam(userId, function(error, user) {});\n```\n\n### createUserInTeam\nAdd a user to your team. You need ADMIN rights for this.\n\n```javascript\napi.createUserInTeam(user, function(error, result) {});\n```\n\n### updateUserInTeam\nUpdate a user in your team. You need ADMIN rights for this.\n\n```javascript\napi.updateUserInTeam(userId, userData, function(error, result) {});\n```\n\n### resetCredentials\nResets credentials for a specific user in your team. You need ADMIN rights for this.\n\n```javascript\napi.resetCredentials(userId, function(error, result) {});\n```\n\n## Tests\n\n``npm test``\n\n## More documentation\n\nCheck out the [TestingBot REST API](https://testingbot.com/support/api) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftestingbot%2Ftestingbot-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftestingbot%2Ftestingbot-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftestingbot%2Ftestingbot-api/lists"}