Public API

Extbase and Fluid consist of quite a lot of PHP classes. Still the interaction with them is fairly simple (compared to the flexibility they offer) due to a clean separation of concerns.
It is not an easy task to keep Extbase/Fluid backwards compatible on one hand and "forward" compatible with FLOW3 on the other hand.
In order to be able to change the "inner workings" while keeping the public API stable, we decided to introduce the @api annotation.
If you interact with Extbase/Fluid classes & functions, make sure to keep an eye on this annotation.
If you call a function that is not annotated with the @api annotation, you risk, that your code breaks with an upgrade - even if the function was public!

A PHP_UML export of the current version is shipped with the extbase_doc extension that you can find at http://git.typo3.org/TYPO3v4/CoreProjects/MVC/doc_extbase.git
You can find the complete API of all released versions on http://api.typo3.org/
But to be sure, it's good practice to always check the actual code of the methods you're calling.