KIM Application Programming Interface (API)


The Knowledgebase of Interatomic Models (KIM) Application Programming Interface (API) defines a standard (the Portable Model Interface (PMI)) for how molecular simulators interface with interatomic models (also called potentials or force-fields). This allows a single computer implementation of a Portable Model (PM) to be used (without modification) within multiple simulator codes. A PM can include code and parameters all in one. Or, a PM can include just parameters and use a separate Model Driver (MD) library containing the code. The KIM API also defines a standard (the Simulator Model Interface (SMI)) that allows for the creation and curation of Simulator Models (SMs), which are packages containing the metadata necessary to set up and run a model that is implemented as an integrated part of a simulation code (simulator). A KIM SM includes all of the necessary parameter files, simulator input commands, and metadata (supported species, units, etc.) needed to run the model in its native simulator.

The KIM API includes bindings for the most popular low-level languages:

  • C++, C, and Fortran.

See here for a list of simulation codes that support the KIM API.

For details on KIM API features and what is included with the kim-api package, see the documentation here.

KIM API Documentation for Developers

Documentation for the latest developent git branch is available here:

Documentation for the latest KIM API release (version 2.1.0) is available here:

KIM API Archive Downloads

The KIM API is under version control hosted at GitHub.

A detailed revision history is available here.

Older packaged versions of the KIM API source are available here

Getting Help

Support is always available by sending an email with a question and all relevant information to

The message will be posted to the openkim google group:

Members of the OpenKIM development team actively monitor this forum and will do their best to respond to questions in a timely fashion. This forum is also used to announce minor new releases and bug fixes.

It is highly recommended for users who plan to work with the KIM API to become members of the openkim group. (Just go to the above link and click on "Join this group" on the right of the screen.)