What's the difference between an API and a protocol? From my understanding, if a developer publishes an API or a protocol spec, I can use that to retrieve data from their server either way
API is documentation for MAPI.DLL in this case. It is useless under non-windows system and requires this DLL, which is, effectively, Outlook backed.
Network protocol between MAPI.DLL and Exchange server newer was published (but partially revers-engineered).
And I've participated in project which uses MAPI.DLL, it was buggy as hell, and we delayed product release for whole year (!), trying to workaround all bugs. It was complete disaster and failed product too late to market.
I would expect an API is a set of things one could call, and a protocol is the sequence of things that one must, should, or can do in order to be in compliance with what the other party in the protocol is expecting to happen
HTTP is a protocol because one cannot just socket.write whatever bytes they want and have any good outcome, whereas socket.write is an API that is available in a hypothetical library
Network protocol between MAPI.DLL and Exchange server newer was published (but partially revers-engineered).
And I've participated in project which uses MAPI.DLL, it was buggy as hell, and we delayed product release for whole year (!), trying to workaround all bugs. It was complete disaster and failed product too late to market.