> For the complete documentation index, see [llms.txt](https://developers.newbluefx.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.newbluefx.com/captivate-api/javascript-api-reference.md).

# Controller API Reference

## Overview

The Controller API is the primary way of interacting with Captivate from a data controller. If you are building your own data controller, make sure you read the [Controller Setup Page](/captivate-api/captivate-controller-reference.md) to learn how to set up your input definition with an XML file and where to put your own HTML files and other assets.

JavaScript-based data controllers are usually hosted by an HTML file loaded into a browser (either Captivate’s built in browser, or a local browser on your computer or mobile device).

Your HTML file should provide some form of UI as well as the JavaScript code to make use of our exposed API.

If you want to access Captivate’s API from outside of the context of an HTML file in a browser, first, get familiar with how the Controller API works, and then head over to our [External API Reference.](/captivate-api/advanced-api-reference.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developers.newbluefx.com/captivate-api/javascript-api-reference.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
