The Core API of Qi4j is relatively small, as we have tried hard to minimize the amount of details that client code is exposed to. The API is defined by annotations, composite interfaces, mixin types, mixin implementation (for convenience), concerns, sideffects and exceptions. This chapter will cover each of these to the greatest extent possible. For a complete list, refer to the javadoc documentation, that is tied into the actual codebase.