Samuel,
We have not formally documented the C API yet, but if you want to get started I would look at the rcDataObj* set of client-side API calls. You can also look at the *Util functions in iRODS/lib/core/src/*.cpp which correspond to the icommands. lsUtil()
is in iRODS/lib/core/src/lsUtil.cpp and is called by ils to get the actual work done.
To begin with some simple test code you can start with calling rcDataObjCreate(), rcDataObjWrite() and rcDataObjClose().
I can send you some example code offline if you like.
thanks,