Developing TeamCity Plugins
TeamCity functionality can be significantly extended by a custom plugin. TeamCity plugins are written in Java (Kotlin, Groovy and JRuby can also be used), runs within the TeamCity application and has access to internal entities of the TeamCity server or agent.
Aside from this documentation, please refer to the following sources:
Open API Javadoc (ver. 8.1.x), Open API Javadoc (ver. 8.0.x)
bundled sample plugin
open-source plugins: bundled or third-party
If you cannot find enough information or have a question regarding API please do not hesitate to post your question into TeamCity Plugins forum. Please use search before posting to find out if alike question was already answered in the forums.
Please refer to corresponding section for further details.
Plugin Quick Start
For starting with a plugin using Maven please see Developing Plugins Using Maven.
There are also several approaches to create plugins provided by third parties or existing out of the main TeamCity development line:
template plugin 1, see also a blog post - Git, IDEA project
template plugin 2 - Subversion, IDEA project and Ant build, generates a plugin with custom name, see details in the readme.txt of the checkout
See also a post on the very initial steps for setting up plugin development environment.