I don't know of an open source API in C, though many CVS interface programs just use the command line cvs as a backend.
There are some early implementations of LibCVS
, such as the Perl one.
The CVS client info
provides a description of the actual CVS protocol (copy also here