Skip to content


Subversion checkout URL

You can clone with
Download ZIP
This is a basic API implementation giving access to Cross Domain Messaging, and interactive popups.
JavaScript C# Other
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


JsApiToolkit is project which seeks to provide a platform for building feature-rich JavaScript API's similar to e.g. Facebook Connect.

The base implementation provides Cross-Document Messaging, user interaction and basic authentication support, and is completely event driven using a pub/sub model.

You can easily configure the core library, set its export name, and provide custom modules so that it matches your need.

You can see a demo of the base API here.

How it works

JsApiToolkit provides both a server and a client component.
It is built around a generic model supporting the use of an appKey to identify the consumer, and it also supports the notion of end-user authentication, both as something happening prior to the API being activated, and as an action that can be triggered on demand.

Essential to the architecture of the API is the Cross Document Messaging link used to communicate between the two domains. This allows state-aware communication between the two separate documents (client <> server) instead of having to resort to JSONP (client > server > client).
JsApiToolkit is based on easyXDM and so do not need any additional files uploaded to the consumer in order to provide fast communication.


The server component is a HTML document, which is to be hosted on the domain from where you want to expose your services. You are free to decide how to connect this with your back-end as long as the document is not navigated.


The client is the main library that your users will include on their sites. This will in turn connect to the server in order to provider state-aware communication between the consuming document and your providing server. The client exposes the base functionality as well as any additional modules added.

How to get started

  • Modify main configuration in /src/client/core.js so that it reflects the desired name and location of the server components.
  • If necessary, modify the XDM api. The base implementation exposes a generic api method on the server, and a publish method on the client for event notifications.
  • Add your custom modules to /src/client/modules/ following the pattern used in the existing modules.
  • Build the client library using ant build.
  • Deploy! :)

Note that this is a work in progress.


This is provided under the MIT license


Øyvind Sean Kinsey -

Something went wrong with that request. Please try again.