In this issue we shall describe what parts of the Piwik platform are publicly available for other developers to use. The goal of this issue ideally is to create a guide or page (likely on developer.piwik.org) to document this knowledge.
We call these "Public APIs" but this term can be a bit confusing as it includes more than just APIs.
Everything below is considered a public API:
index.php, URL structure
?module=API&method=X.Y&format=..., method names and parameter names are part of the API.
piwik.php, parameter names are part of the API.
<a class='mention' href='https://github.com/api'>@api</a>in our sourcecode. (these docs are automatically generated on each commit.)
libs/PiwikTracker/PiwikTracker.php<- tracker API client directly used from this path (as we advise in our doc)
misc/log-analytics/import_logs.py<- Log Analytics script
/js/endpoint is sometimes used to serve the minified file ensuring caching of the file in browsers.
Some other parts are sometimes considered public APIs but it is not a hard rule:
CoreHome_*keys, are part of the API and should not change.
Deprecations and changes to any of these public APIs will be documented in the developer changelog #8127