Our Plugin Repository gives you the power to customize Understand in any way you can imagine. Write Custom Graphs, Reports, code checkers, and scripts for your team that harness the full power of Understand.

The Understand GUI is powerful and has a lot of different reporting options, but, at some point, you probably need to access information from your code in a different manner than anything we’ve thought of. For that reason Understand has several different APIs that let you write plugins that query the data Understand captures about your code. The API has several flavors: Perl, Python, C, and Java, with a customer-added .NET API as well. The APIs are read-only, they do not modify the Understand project. If you need to do that programmatically, take a look at und. While the APIs each target a different language, they all share a common way of accessing the data in Understand.

The API Tutorials are the best way to learn those concepts and are almost always the best place to start. After that, check out and contribute to our collection of plugins.

Here is a brief overview of each of our different APIs:

Full APIs

Python API

The Python 3 API is Understand’s most robust API because it is built into the GUI. Several of the graphs and reports in Understand are actually written with the API and you can write your own graph, CodeChecks, and report plugins for the GUI in addition to simply pulling information out of the Understand database with scripts. Learn more in the Plugin Repository

Perl API

The Perl API is also built into the Understand GUI so you can also write your own graph and report plugins

Partial APIs


The Understand C API will allow you to access the data that Understand captures from inside of your C programs. We don't usually add new features to the C API, but it still provides access to most of the Understand data. You can read more about it here.


One of our users, Chris Johnson, has developed a .NET sdk wrapper for the Understand API. The API is written in managed C++ (i.e. C++/CLI), and once compiled, can be accessed by any programming language that targets the .NET framework. More details at understandapi.codeplex.com Thanks, Chris!