It's possible to trigger a publish channel manually. Here's a couple references. HOWEVER: I tried to set this up once and was unsuccessful, I did save the code with the comment "Doesn't work by the way, getting an out of bounds error on the line above"
from psdi.server import MXServer
from psdi.security import UserInfo
from psdi.util.logging import MXLogger
from psdi.util.logging import MXLoggerFactory
from psdi.mbo import MboConstants
server = MXServer.getMXServer()
userInfo = server.getUserInfo("MAXADMIN")
whereClause = "PMNUM = 'PM108688'"
server.lookup("MIC").exportData("<publish channel>", "<External System Name>", whereClause, userInfo, 1)
That said, there's few different references out there that suggests it works - the 2nd one below indicates in the comments that he got it working, just not for JSON output.
previous stackoverflow question
maxdeploy blog article