Expanding on my comment, in case you want to accept it.
I am a big fan of
- documenting the code
- creating man pages
So I am going to suggest you use some tool like doxygen or ROBODoc where you can write your API within the source code then automatically create a man-page.
I stress documenting the API within the code, as having to document it in another file/location never works out in practice. As people are lazy and won't be bothered (even if they do initially, over time laziness creeps in). If it is in the source right where the routines are, you'll have a greater chance that it's kept up to date.
Doxygen can create all different types of output. HTML is it's most supported and refined. The man-pages are ok, but brilliant (just be warned). So you should figure out how you are going to present the API to users.
Another thing that is relevant, doxygen has a \internal
keyword, to indicate that it is part of an internal use only, which is helpful if you do not want to expose everything in your library. Yet keeping one style/processing method to create all your documentation.