Developers Tools

KOLOLA is designed to integrate with other systems, including CRIS systems, and uses a flexible linked-data model to enable this.

The KOLOLA Mission

KOLOLA’s mission is to provide a single place for all types of activity and outcome to be reported. We take the view that rich structured records should be created in KOLOLA first, and then moved (as appropriate) into other systems. Our very flexible framework system and user-friendly reporting process were designed with this model in mind.

Many use cases are best served by allowing users to drag-and-drop specific records from KOLOLA into other systems and web pages. We use this functionality ourselves, and also provide a full SDK to help you integrate the same functionality into your own web pages.

Our general purpose API and interchange API also allow records to be searched and filtered by automated processes. The documentation in the github repositories that we’ve linked to below show you how to query the respective APIs.

Finally, a word of caution: the wide variety of information that can be stored in KOLOLA can complicate integration with third-party systems, and requires careful consideration of how portfolios are configured. Our default research product uses a data schema that’s based on RCUK’s harmonised reporting framework, which is also used in ResearchFish; but if you’re integrating with CRIS systems, or using KOLOLA to capture information for use in staff development (or even expense claims!) then it’s worth taking the time to ensure that that data schemas you’re using are compatible. We can provide advice and guidance on data compatibility, and other integration issues, on request – please contact your account manager in the first instance.

Integration Options

General Purpose API (read-only)

The general purpose API provides read-only access to data stored in KOLOLA. To use this API you’ll need to generate an API key, and then make HTTP GET or POST requests to the API endpoint that’s listed in your eportfolio’s admin tools. We provide a JavaScript client that allows quick integration with web or Node.js applications; and which serves as a reference implementation. The client is open-source, and can be found at

Interchange API and SDK (read-only)

The interchange API provides a linked-data view of records held within KOLOLA. It’s designed to support manual export of records from KOLOLA into other systems such as CRIS systems, institutional repositories, and other web forms. The primary use case for this API is allowing KOLOLA users to drag and drop records from KOLOLA into other systems – we call this drag-and-drop model “curated interchange”.

We provide a software development kit (SDK) that aims to make integration with the Interchange API as simple as possible; and we offer several different levels of configurability (and complexity) to cater to different use cases.

Where it is not possible to directly modify a third-party system, we are able to provide integration using a web browser extension. The extension injects the necessary additions into specific websites (for instance a web-based CRIS system) so that KOLOLA activities can be dropped directly on to specific web forms either to pre-fill fields for manual verification and completion, or to perform a fully automated import of the dropped record.

You can find out more about the Interchange API and the associated SDK at

Record Ingestion (writeable)

Users can import activities into KOLOLA by dropping them in to the user interface from elsewhere. This is how we implement the ability to copy an activity from one KOLOLA eportfolio to another. Any system can prepare records for ingestion by making them available in a simple JSON format. Please contact us directly to discuss this option as we may need to create some security exceptions on your eportfolios.

Triage API (writeable) [EXPERIMENTAL]

Newer versions of KOLOLA include an experimental “Triage API” that allow partial activities and resources (for instance photos, contact details, or emails) to be pushed into a KOLOLA eportfolio. These resources are then available for users to attach to new or existing activities. The Triage API is designed to make ingestion of partial activity data easier, while also maintaining the high data quality that only human curation can provide. If you’re interested in using the Triage API, we’ll need to enable it on specific eportfolios, so please contact support; because this feature is still experimental, it might change or be withdrawn without notice.