It is certainly possible the APIs are hidden for competitive advantage. However...<p>There are costs when making an API truly public! Extra work to document it completely. Extra testing, to cover more than just the cases you know you're dealing with internally. Revisiting the API every time something new comes along ("will this API be 64 bit capable?", etc.). And ultimately, cost from losing the freedom to significantly change anything, lest you break binary compatibility or create some other problem that multiplies across your customer base.