Firstly, this is not writeable, except by the system as the result of an activity happening.
So when you generate email through some "natural" means, and it stores an activity, the system writes to an object called Activity History. This object has absolutely no direct access.
So this query is illegal:
select Id from ActivityHistory
It returns the error:
entity type ActivityHistory does not support query
But, you can get query access to it as the child relationship of a primary object. For instance, I could do this query:
Select Name, (Select Subject,ActivityType from ActivityHistories) from Account
This you could do with standard SOAP API functionality.
Writing to it directly still remains impossible. Still, any call you do to the sendEmail functionality should be recorded in an object's Activity history, which is, for all intents and purposes "writing to it".