The GraphQL API is the primary mechanism used by the web app to communicate with the server. It is also available for use by third-party applications, however, it is prone to changing without notice. If you need a stable interface for development you should use the REST API.
We maintain a GraphQL Playground instance here (opens in a new tab). This is a great way to explore the API and test out queries and mutations.