JavaScript API

The JavaScript API allows you to create an HTML/JavaScript application that has access to the native windowing environment, can communicate with other applications and has access to sandboxed system-level features.

The fin namespace

When running within the OpenFin Runtime your web applications have access to the fin namespace and all the modules within the API without the need to include additional source files. You can treat the fin namespace as you would the window, navigator or document objects.

API Methods

The full API Method Index can be found at the JavaScript API.

  • To find a specific method by name, open the link above and use the search feature.
  • To browse the API, click one of the classes or namespaces in the sidebar at left for detailed information.


New applications and windows are instantiated with the following options objects:

For a single-page reference to all application settings and configuration options, see also our Application Configuration page.


<!DOCTYPE html>
    <title>OpenFin Template</title>

    <h1>Hello, world!</h1>
    <p>This is a template for an OpenFin application.</p>
    <p>Current version: <span id="of-version"></span></p>
    <script type="text/javascript">
        if (typeof fin !== 'undefined') {
        } else {
            document.querySelector('#of-version').innerText =
                'The fin API is not available - you are not running in OpenFin.';

        //once the DOM has loaded and the OpenFin API is ready
        async function init() {
            //get a reference to the current Application & Window.
            const app = await fin.Application.getCurrent();
            const win = await fin.Window.getCurrent();

            const ofVersion = document.querySelector('#of-version');
            ofVersion.innerText = await fin.System.getVersion();

            //Only launch new windows from the main window.
            if ( === app.identity.uuid) {
                // Subscribing to the run-requested events will allow us to
                // react to secondary launches.  For this app we will launch a
                // child window when the user first clicks on the desktop icon.
                app.once('run-requested', async () => {
                    await fin.Window.create({
                        name: 'childWindow',
                        url: location.href,
                        autoShow: true

Did this page help you?