Skip to main content
Version: 1.0.0-draft

Sonus Server API

Most people don't need this API. A static Sonus Manifest is enough to put a library in a bucket, a GitHub repository or on a NAS web server.

Implement this API when your server is dynamic: the library is too big for one manifest file, you want server-side search, or you transcode on the fly.

Rules every implementation follows

  • All paths sit under /sonus/v1 on your server.
  • Use HTTPS. Plain HTTP is only accepted for hosts on the user's local network.
  • Errors use RFC 9457 problem details (application/problem+json).
  • Lists use cursor pagination. Pass nextCursor back as cursor until it is null.
  • Unknown fields must be ignored by clients, so servers can add fields in any 1.x release.
  • Track, album, artist and playlist objects use the same shapes as the Sonus Manifest.

Authentication Send Authorization: Bearer <token> on every request. The stream and artwork endpoints also accept ?token=<token>, because iOS media players can't always attach headers. Tokens are issued by your server however you like (an admin UI, a CLI, etc.). Sonus keeps them only in the iOS Keychain and never sends them anywhere except your server.

Authentication​

Token issued by your server.

Security Scheme Type:

http

HTTP Authorization Scheme:

bearer

Contact

Sonus on GitHub:

URL: https://github.com/Moantage/sonus

License

Apache 2.0