In many cases it will make sense to fire events from API calls. However, not all APIs have access to complete information to fire the event (e.g. context).
The worst thing is to do extra db calls and kill performance (especially in big loops).
Tim outlined the issue in this thread:
Here is an example of an instance of trying to solve it in an 'ugly' way
I think we need a solution which doesn't involve a proliferation of extra parameters to apis (especially if there is potential for a mismatch between the parameters).