Yes it is possible. I don't know if there is an API call you can make directly, but you can use the following stored procedures:
activeforums_Topics_Save <= this will give you a topic id to pass into the next one. There are a lot of parameteres you need to pass into this. I copied a new version of this that sets the topicid as an OUT param to make it easier to use with LINQ.
activeforums_Topics_SaveToForum <= this one places the topic into a specific forum, you need to pass the forumid, topicid
Here is a snippet of how I do it:
DateTime dtMin = new DateTime(1900, 1, 1); // cannot use a null date, use this value instead
int? topicid = null;
int forumid = 79;
var res = dc.nfx_activeforums_Topics_Save(0, ref topicid, 0, 0, false, false, "", -1, true, false, false, false,
dtMin, dtMin, subject, body, "", DateTime.Now, DateTime.Now, userid, userdisplayname, ipaddress, 0, 0, null,
"<topicdata><properties></properties></topicdata>");
if (topicid.HasValue)
{
dc.activeforums_Topics_SaveToForum(forumid, topicid, -1);
}