Overview of the Kameleoon APIs
The Kameleoon platform provides several APIs that our customers can use for various purposes. For instance, the APIs allow to write front-end A/B experiments without any flickering, better integration within your digital ecosystem (pulling data from Kameleoon as well as sending data to Kameleoon), or to automate certain tasks. It's very important for us to provide your technical teams with advanced, fully documented APIs so that you can use the Kameleoon platform to its most complete extent. Customizing and tweaking our software is also totally possible thanks to those APIs.
The Activation API
This API serves several goals:
provide methods to implement front-end based A/B testing variations that won't result in any flickering effect. This is extremely important to use these methods in order to correctly operate the Kameleoon platform and leverage our Anti-Flickering technology, so any Front-End developer working with Kameleoon should be familiar with those.
provide a set of methods to manage the catalog of products on your website. For instance, it should be used to register a product view or purchase, add a product to the cart, obtain a set of automatic product recommendations, or obtain statistics about a given product (how many times it was bought or viewed in the last hour or day).
provide a fully accessible set of useful information gathered by Kameleoon. These data are updated in real-time. For instance, the number of page views for a visitor is obviously increased by one each time a new page is loaded. Note that our data layer is historized and is available for all the visits of this particular visitor. You can for example know how long a visitor stayed on your website during its first visit even if he's currently at his 5th visit.
provide entry points to override the standard behavior of our software. For instance, normally when a visitor is triggered into an A/B experiment for the first time, the association of this visitor to a variation is done randomly. With the API you can override this association and register the visitor into a given variation. This is notably used when implementing server-side testing via our SDKs, but with front-end reporting.
In short, refer to this API when you want to implement experiments or personalizations, track data using Kameleoon, retrieve Kameleoon-gathered data for your own use, interact with your product catalog, or customize / extend any aspect of Kameleoon performed on the front-end / browser.
The Automation API
The Automation API is a REST API that allows almost every action that is possible via our standard (web-based) user interfaces to be also triggered and performed programmatically. This means that you can write your own software / code interacting with our platform, harnessing all of its features and capabilities. As an example, some of our customers took advantage of this API to implement bridges between Kameleoon and their own Git repositories, so that Kameleoon variations code can be managed directly on their usual version control system. You could also design your own dashboard and fill it with experiment results directly obtained from Kameleoon. Building custom systems operating or interfacing with Kameleoon is easy thanks to this API.
This API is a REST compliant API, so you can call it with any REST capable framework in any language (Java, C#, NodeJS, Python, etc). We conform to REST conventions and any developer familiar with those should feel at ease here. However, this API is not intended to be used extensively. By this we mean it's intended to be called a dozen of times per minute and per customer / user account on our systems. It's not scalable to millions of calls per minute, so should not be called for every visitor on your website (if you need this, see the Data API instead for more information).
Note that authentication is currently performed via a basic API key / password association. We have plans to move to the OAuth standard in the future.
The Data API
The Data API is a REST API that allows to retrieve or write data stored on remote servers, not locally on the visitor's browser. So contrary to the Activation API where data is available directly and instantly on the browser side, this API is intended for communication with external data sources / remote servers / DMPs. It is however scalable to millions of calls per minute (unlike the Automation API), so calling this API for every visitor is perfectly possible.
For instance, this API is used for Cross-Device History Reconciliation, a powerful Kameleoon feature that allows the complete history of actions for a given Unique Visitor to be synchronized automatically accross all its devices. If one of your visitor goes twice to your website using his smartphone, then comes again later on his desktop computer, we'll correctly report this as his third visit in the Activation API data layer. Underneath, a call to our Data API was actually made to ensure the synchronization of data via our servers.
Another good example of usage would be to register "late transactions" which cannot be sent directly on the web-platform via the usual Activation API. If your business sells travel packages, and the final transaction / confirmation is not achieved on your website, but later in a physical place by a person, you can use this API to register those transactions, which would be impossible with a web / JS based API.
The Data API is a REST compliant API, so you can call it with any REST capable framework in any language (Java, C#, NodeJS, Python, etc). We conform to REST conventions and any developer familiar with those should feel at ease here.
The Data API is not yet documented. We expect the documentation to be ready for the end of 2019.