Managing Closed Beta Testing with the Galaxy Store Developer API
before publishing an application, it is important to ensure that the application is stable, performs as expected, and delivers a high-quality user experience. a closed beta test gives you an effective way to validate your application with a selected group of testers before making it publicly available. galaxy store allows you to invite up to 50,000 registered samsung account holders to install and evaluate your application through a closed beta test before its official release. the galaxy store developer api allows you to automate tasks that you would otherwise perform manually in galaxy store seller portal. this article focuses on two closed beta test api endpoints: view closed beta test update closed beta test using these endpoints, you can: view the current closed beta test information add or remove beta testers configure the feedback channel for beta participants managing beta testers through the closed beta test api is especially useful when you work with a large group of testers or when your tester list requires frequent updates. instead of updating the information manually in seller portal, you can automate the process and integrate it into your existing development workflow. the following sections demonstrate how to use the galaxy store developer api with javascript (node.js) to manage a closed beta test efficiently. prerequisites before using the closed beta test api endpoints, make sure you meet the following prerequisites: a samsung account registered as a beta tester in seller portal a service account id, which you can obtain from seller portal > assistance > api service a valid access token. you can generate one by following the instructions in this blog node.js 18 or later installed on your pc a basic understanding of the galaxy store developer api authentication workflow after you meet these prerequisites, you can start using the closed beta test api endpoints. prepare the application for a closed beta test before you implement the view closed beta test and update closed beta test api endpoints, you must configure your application for the closed beta test in seller portal. if you have not yet configured your application, follow the steps below. step 1: create a new application in seller portal, navigate to add new app and create a new application. enter all required application information before proceeding. for detailed guidance, follow the application registration process. figure 1: creating a new application in seller portal step 2: upload your application binary open your application and go to the binary tab. select a signing key, and based on the key type, upload either an apk or aab file by clicking the add binary button. for more details, follow this guide. after completing these processes, click the save button. figure 2: uploading an application binary step 3: configure a closed beta test open your registered application and select add beta test. using the menu options provided, you can choose between two beta test types: closed beta test and open beta test. since this article focuses on closed beta testing, select closed beta test and then click the add button. this option restricts beta test access to samsung account users whom you register as beta testers. in contrast, the open beta test option allows any samsung account user to participate in the beta test. for more information about beta testing in the seller portal, refer to the seller portal beta testing documentation. figure 3: configuring a closed beta test after completing these steps, click the save button to save the application. figure 4: saving the application the application then moves to the beta registering status. once it reaches this status, you can use the view closed beta test and update closed beta test api endpoints described in the following sections. the seller portal ui reflects the application’s transition to the beta registering status. figure 5: application beta registration status implement the closed beta test api endpoints for easier understanding, the implementation of each api endpoint using javascript (node.js) is broken down into three simple parts: configuration of api credentials create the request parameters send the get or put request each part is explained in detail with complete code examples below. configuration of api credentials before calling any closed beta test api endpoints, configure the common authentication credentials and api endpoint used throughout the examples in this guide. replace the placeholder values with your own access token and service account id obtained from seller portal. const accesstoken = "<your-access-token>"; const service_account_id = "<your-service-account-id>"; const apiurl = "https://devapi.samsungapps.com/seller/v2/content/betatest"; implement the view closed beta test api use the view closed beta test api endpoint to retrieve the current configuration and detailed information related to the closed beta test of your application from seller portal. create the request parameters the following parameters help define the specific application from seller portal. among these parameters, contentid identifies the application, while appstatus specifies the application’s current status. the optional offset and limit parameters allow you to paginate the list of registered beta testers, which is useful when working with a large number of testers. the following table describes each request parameter: parameter required description contentid yes unique 12-digit application identifier appstatus yes application status (registration or sale) offset no starting index of beta testers (the default value is 0) limit no maximum testers returned (the maximum value is 1000) // query parameters const params = new urlsearchparams({ contentid: "content_id", offset: "0", limit: "1000", appstatus: "registration" }); fetch closed beta test information finally, to retrieve the closed beta test application information, send an http get request to the galaxy store server using apiurl and params. include the required authorization headers with your credentials. after the request is successfully authorized, the server returns the closed beta test application information. async function getbetatest() { try { const response = await fetch(`${apiurl}?${params}`, { method: "get", headers: { authorization: `bearer ${accesstoken}`, "service-account-id": service_account_id, "content-type": "application/json" } }); console.log("status code:", response.status); const text = await response.text(); try { console.log(json.stringify(json.parse(text), null, 4)); } catch { console.log(text); } } catch (error) { console.error(error.message); } } getbetatest(); successful api response once the get request has been processed successfully, the galaxy store server returns the closed beta test information in json format, as shown below. status code: 200 response json: { "resultcode": "0000", "resultmessage": "ok", "data": { "totalnumberofbetatesters": 2, "betatesters": [ "example@gmail.com", "test123@gmail.com" ], "feedbackchannel": "example@gmail.com", "betatestingurl": { "android": "http://apps.samsung.com/betastore/closeappdetail.as?appid=com.turbocycle.app&cid=000009068950" } } } the request returns the following information: totalnumberofbetatesters: total number of registered beta testers betatesters: list of samsung account ids currently participating feedbackchannel: indicates where testers can submit feedback betatestingurl: installation url for beta testers. you can use this url to download the application only when the application is in the beta deployed status. noteyou can only use this api endpoint when the application is in one of the following statuses: beta registering, ready for review (beta), ready for beta testing, pre-review rejected (beta), or beta updating. these statuses correspond to the registration value of appstatus. when the application status is beta deployed or beta suspended, appstatus is returned as sale. applications in other statuses do not return closed beta test information. implement the update closed beta test api the update closed beta test api allows you to manage your application’s closed beta test by updating the beta tester list and configuring the feedback channel. with a single put request, you can add new testers, remove existing testers, or update the feedback email address. this helps you keep your closed beta test organized and up-to-date throughout the testing process. noteyou can use this api endpoint only when the application is in an editable beta state. in seller portal, the application must be in the beta registering or beta updating status. after the application moves to another status, such as ready for beta testing or beta deployed, you can no longer update the closed beta test configuration using this api. create the request parameters the request parameters body contains the information required to update your closed beta test. in addition to the required contentid, you can include optional parameters to add or remove beta testers and update the feedback channel. the following table describes each request parameter: parameter required description contentid yes unique 12-digit application identifier betatesterstobeadded yes list of samsung account ids (typically email addresses) to add as beta testers. you can add up to 1,000 accounts in a single request. the total number of beta testers cannot exceed 50,000. betatesterstobedeleted no list of samsung account ids to remove from the beta tester list. up to 1,000 accounts can be removed in a single request. feedbackchannel no email address or url where beta testers can submit feedback during the testing period. noteif the same samsung account id is included in both betatesterstobeadded and betatesterstobedeleted, the deletion request takes precedence, and the account is removed from the beta tester list. // request parameters const contentid = "content_id"; const betatesterstobeadded = [ "example2@gmail.com", "test123@gmail.com" ]; const betatesterstobedeleted = [ "test321@gmail.com" ]; const feedbackchannel = "example2@gmail.com"; // request payload const payload = { contentid: contentid, betatesterstobeadded: betatesterstobeadded, betatesterstobedeleted: betatesterstobedeleted, feedbackchannel: feedbackchannel }; update closed beta test information send an http put request to the galaxy store server with the apiurl and payload. after successful authorization using headers that include your credentials, the put request updates the beta tester list by adding and removing samsung accounts and configures the feedback channel. async function updatebetatest() { try { const response = await fetch(apiurl, { method: "put", headers: { authorization: `bearer ${accesstoken}`, "service-account-id": service_account_id, "content-type": "application/json" }, body: json.stringify(payload) }); console.log("status code:", response.status); const text = await response.text(); try { console.log(json.stringify(json.parse(text), null, 4)); } catch { console.log(text); } } catch (error) { console.error(error.message); } } updatebetatest(); successful api response once the put request is processed successfully, the galaxy store server returns the updated closed beta test information in json format, as shown below. status code: 200 response json: { "resultcode": "0000", "resultmessage": "ok", "data": { "additionfailedtesters": [], "deletionfailedtesters": [] } noteif a samsung account id is not associated with a valid samsung account, it is returned in either additionfailedtesters or deletionfailedtesters, depending on the requested operation. api error response if an api request fails, the response includes an error code and message that describe the cause of the failure. for a complete list of possible error codes and their meanings, refer to the failure responses documentation. conclusion closed beta testing is an essential stage in delivering reliable, production-ready applications. the galaxy store developer api provides a simple and efficient way to manage beta programs without relying solely on the seller portal interface. using the view closed beta test and update closed beta test api endpoints, you can retrieve beta test information, manage beta testers, and update the feedback channel through simple api requests. integrating these apis into your development workflow helps automate repetitive tasks, simplifies beta test management, and makes the release process more efficient. you can explore the following resources for more information: ➔ register your application in seller portal: to register your application in the seller portal, follow the step-by-step instructions provided here. ➔ submit the application to galaxy store: to add an application to beta test mode, follow the detailed instructions provided here. if you are not integrating samsung in-app purchase, ignore the information related to iap such as the iap operation mode. ➔ application status parameters: refer to the following documentation to understand the supported operations for each application status in seller portal.