The classic tool for API doc is epydoc. It handles javadoc, docstrings, etc... But I find API docs tools to be quite poor. I much prefer tool which focus around the documentation itself, and enables to inject additional documentation extracted from the code. Sphinx is perfect for this job. It can generates html and pdf, you can include automatically extracted docstring from code, it does syntax highlighting, etc... A strong point of sphinx is that it is done by someone who knows something about web design, and does not look like a**. matplotlib website and doc is generated entirely from sphinx, with default values. It looks much nicer than anything you will get with epydoc/doxygen. And there is an integrated search engine in javascript