principal API reference