The Smos server API is currently undocumented, but it is defined using the very readable Haskell's Servant Type-Level Web DSL.
You can read it in the Smos repository at
smos-api/src/Smos/API.hs and call it via the
smos-client client library.
The Smos server API offers the
When implementing a client, it should first call the
/api-version and check that the major version component of the response matches the major version component of the version the client was written against.
Otherwise the client will run into compatibility issues.
When using the
smos-client Haskell client library, you can use the
clientWithVersionCheck to have this taken care of automatically.