An application programming interface, computer program product implementing the application programming interface, and a system implementing the application programming interface, which provides an advanced interface including support for hierarchical and object-oriented programming languages and sophisticated programming language constructs, and does not need to be integrated using additional tools. The application programming interface for providing data mining functionality comprises a first layer providing an interface with an application program, and a second layer implementing data mining functionality, the second layer comprising a mining object repository maintaining data mining metadata, a plurality of mining project objects each mining project object containing data mining objects created and used by a user, a plurality of mining session objects, each mining session object containing data mining processing performed on behalf of a user, a plurality of data mining tables, each data mining table mapping a table or a view in a database, a plurality of data transformation objects, each data transformation object defining computations or manipulations to be performed on data in the database, a plurality of data mining models, each data mining model implementing conditions and decisions, and a plurality of data mining result objects, each data mining result object generated as a result of scoring or analyzing a data mining model or an input dataset.