Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Für eine deutsche Beschreibung siehe unten.

Welcome to erminas SmartAPI, the free .NET RQL library for OpenText WSM Management Server (RedDot CMS)!

erminas SmartAPI is the extension of SmartEdit and SmartTree in regard of development. Where SmartEdit allows you to edit conveniently and SmartTree makes administration in your browser possible, SmartAPI creates a comfortable programming interface for the OpenText WSM Management Server.

The complete library is written in C# / .NET and can be used from within the CMS as plugin or from an external .NET (web) application. As .NET is being used there is no break in the technology you use and the application can be hosted directly in your Windows Server in the IIS. You do not need any other hardware or server installed.

The goal of SmartAPI is to provide a comfortable, fully object-oriented and well-tested library for all developers and users of OpenText WSM. There is no expensive in-house development necessary but you can choose a ready-to-use library that just works.

First steps

// RedDot Login with (user/password)
var authData = new PasswordAuthentication("user", "password");
var login = new ServerLogin {Address = new Uri("http://my-reddot-server/cms"), AuthData = authData};
// Session is the entry point to interact with the RedDot server.
// Creating the session object automatically creates a connection.
// Dispose() closes the connection in a a clean way (this is done
// automatically at the end of the using block).
using(var session = SessionBuilder.CreateOrReplaceOldestSession(login))
  // Select a project based on the name
  var project = session.ServerManager.Projects["MyProjekt"];
  // Find all pages based on the Content Class "MyContentClass"
  var pageSearch = project.CreatePageSearch();
  pageSearch.ContentClass = project.ContentClasses.GetByName("MyContentClass");
  var pages = pageSearch.Execute();
  // Attach suffix ".php" to all filenames of the pages found
  foreach(var curPage in pages )
    curPage.Filename = curPage.Filename + ".php";
    // Commit changes to the server

Mailing list

We are using Google Group "SmartAPI" for discussions, questions and announcements. You do not need a Google account to join this group but you can also use it via mail.

Messages to the group can be posted directly on the group’s page (with a Google account), or after subscription via mail you can send an email to:

API Documentation

You can find the API documentation at

More information

You can find more information at (Deutsch / English)








No packages published

Contributors 4