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/v1on 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
nextCursorback ascursoruntil it isnull. - 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
- HTTP: Bearer Auth
- API Key: tokenQuery
Token issued by your server.
Security Scheme Type: | http |
|---|---|
HTTP Authorization Scheme: | bearer |
The same token as a query parameter. Only accepted by the stream and artwork endpoints.
Security Scheme Type: | apiKey |
|---|---|
Query parameter name: | token |
Contact Sonus on GitHub:
License Apache 2.0