Ally Class Open API Developer Site
This is a developer support site for the Ally Open API, designed to help you easily add and run various real-time interactive activities, such as live quizzes and polls, within websites or HTML-based content.
By using this API, you are deemed to have agreed to the [Terms of Service]. For all inquiries, please contact our [Support Center].

Creating an Activity Data
This is an editor for creating Ally activities to be executed via the API. You can copy the edited result in JSON format or as a URL and run it accordingly.
In the [] field of the editor, you can add LaTeX expressions using the <latex></latex> tag, and apply underlining using the <u></u> tag.

Ally Builder

Edit Data
Copy

The activity types and examples for each type are as follows.


Adding an Activity
■ HTML and JavaScript–Based Implementation
The procedure for adding activity execution functionality to an HTML element by calling the JavaScript API is as follows.
(1) To add an Ally activity to your website, include the Ally API script in your HTML as shown below.
<script type="text/javascript" src="/share/api.js"></script> Copy
(2) For example, call the ally.run() API as shown below. The first argument is the edited Ally activity data, and the second argument is the target HTML tag in which the Ally activity will be executed.
<div onclick="ally.run(['ox','T','The squirrel had 23 acorns and gave 5 acorns each to four friends, leaving 2 acorns in the storage.',2,'◯','╳',1,2],this)">Run</div>
■ HTML <a> Tag–Based Implementation
By directly linking to the URL generated via the [] button, you can execute an Ally activity. You can add an activity using an <a> tag as shown below.
For example, add the <a> tag to your HTML as follows.
<a target="activity" href="https://allyclass.com/pan/1/?aid=029b77fb-2ab5-419c-93f2-74e5cfe7f805&ally=%5B%22ox%22%2C%22T%22%2C%22The%20squirrel%20had%2023%20acorns%20and%20gave%205%20acorns%20each%20to%20four%20friends%2C%20leaving%202%20acorns%20in%20the%20storage.%22%2C2%2C%22%E2%97%AF%22%2C%22%E2%95%B3%22%2C1%2C2%5D">Run Ally Activity</a>

Testing and Verification
■ Testing and Verification Procedure
Click the corresponding HTML tag and verify that the Ally Class Dashboard opens in a new browser window.
Access the activity via the QR code and complete a submission. Then verify that the result appears in the [Submissions] section of the Class Dashboard.
Close the Class Dashboard window and repeat step ①. Verify that the previous submission in [Submissions] is retained in the newly opened browser window.
■ Ally Class Error Messages
The following error messages may appear on the screen in Ally Class during activity execution.
This error is displayed when an image required to execute the activity cannot be loaded. This may be due to an incorrect image URL, temporary inability to access the image, or access being blocked by the image provider because of CORS-related issues.

Open API Specifications
The detailed specifications of the API used in the above documentation and example code are as follows.
ally.run(/*Array*/data, /*Tag*/tag, /*Object|undefined*/options)
Executes the Ally activity defined by 'data' and stores the execution context in 'tag'.
ParameterDescriptionRequired
dataAn array-type activity data edited in the [Ally Builder].Yes
tagThe HTML tag used to launch the activity. The Ally re-execution context is stored in this tag, so even if the opened Ally window is closed, passing the same tag again guarantees that the activity is re-executed with the previous submission results retained.Yes
options onResult
Call the API as follows to receive the execution result: {onResult:function({message:String}|undefined){...}}
If the callback argument is provided in the form {message:String}, it indicates that execution has failed due to a development error or related issue.
No
ally.ping(/*Function*/onResult, /*String|undefined*/keyEnterprise)
Checks the current availability status of the service. When the service is not available, this API can be used to proactively hide the execution button in the UI.
ParameterDescriptionRequired
onResultThe callback is invoked in the form function(/*Boolean*/bService){...}. If the callback argument is not true, it indicates that the service is unavailable.Yes

Open API
Ally ClassSupport CenterTerms of Service
© 2024 Bluega Inc. All rights reserved.
Ally Class Open API Terms of Use
These Terms of Use govern the conditions for using the Ally Class Open API (the "API") provided by Bluega Inc. (the "Company"), as well as the obligations of users and the limitations of the Company's liability.
Article 1 (Purpose and Definitions)
1.The API is provided for the purpose of enabling the execution of Ally Class activities or the display of content hubs within websites or HTML-based content.
2."User" means any individual, organization, or company that integrates or invokes the API to build or operate a service.
Article 2 (Conditions of Use)
1.The API is provided as a free service and may be used by anyone without prior authorization or payment.
2.Ally Class activities may be executed through API calls or URL-based access, and activities executed via the API or URL-based access are subject to the following free-use limitations:
Maximum number of classroom participants: up to 50
Maximum number of activities with saved results: up to 3
Use of Data URIs for images or other resources is not permitted
3.The API may be modified, suspended, or discontinued without prior notice due to changes in service structure, security enhancements, or internal policies.
4.By using the API, the User is deemed to have agreed to these Terms of Use.
Article 3 (Limitation of Liability)
1.The Company makes no warranties regarding the continuous availability, maintenance, operation, or technical support of the API.
2.The Company shall not be liable for any direct or indirect damages arising from the use of the API, including but not limited to data loss, user complaints, or loss of revenue.
3.The User bears sole responsibility for all outcomes resulting from the use of the API.
Article 4 (Restrictions and Prohibited Uses)
1.The User shall not use the API for the following purposes or in the following manners:
Illegal or fraudulent purposes
Executing content that infringes upon the rights of third parties, including copyrights or portrait rights
Excessive or abusive API calls that threaten service stability or cause undue system load
2.In the event of a violation of the above, the Company may block API access or take legal action.
Article 5 (Amendment of Terms)
1.These Terms may be amended without prior notice, and any changes will be announced through this website or by separate notice.
2.Amended Terms shall take effect immediately upon publication.
Article 6 (Governing Law and Jurisdiction)
1.These Terms shall be governed by and construed in accordance with the laws of the Republic of Korea.
2.Any disputes arising in connection with these Terms shall be subject to the exclusive jurisdiction of the Seoul Central District Court.
Addendum
These Terms were published on July 31, 2025, and shall take effect as of the same date.
Notes on URL-Based Execution
When executing Ally activities via a URL, there may be limitations on URL length depending on the execution stage and runtime environment. Therefore, this method should be used only when the Ally data can be kept sufficiently small.
Please be sure to review the following precautions:
■ Ally Service System
The Ally system supports URLs of up to approximately 8 kB (as of July 2025).
■ Web Browsers
Commercial web browsers are generally configured to support longer URLs than typical web servers; however, you should still verify that execution works correctly in your target browsers.
■ User Service Systems
Check the maximum URL length that can be displayed, stored, or shared by your service system or any related external systems.