Software using Semantic Versioning MUST declare a public API. This API could be declared in the code itself or exist strictly in documentation. However it is done, it should be precise and comprehensive.
Why are we forced to declare a public API? Why can't I use it for my own website that has no API?
Perhaps I am wrong with the definition. For me it is a part of the site desigedn for other developers (i.e.:
api.example.com) that allow them to query my website and get the result into structured data (json, xml...).