# Jellything API Most endpoints require the `Accept` header to be present and set to `application/json`. Any endpoint returning JSON, will report errors with an object containing error string in the `error` key. Routes marked with `*` require authentification. The `jellyclient` crate already implements most API functionality. The `jellycommon` crate provides useful structs for deserializing data (also reexported in jellyclient). ```toml # Cargo.toml [depedencies] jellyclient = { git = "https://codeberg.org/metamuffin/jellything.git" } ``` ## GET `/api/version` Returns API version number. ## POST `/api/create_session` Request body contains JSON with keys `username`, `password` and `expire` (in seconds). The Response contains the session cookie as a string in JSON. ## GET* `/n/` Request a library node (either a directory or item). See [`common/src/api.rs`](./common/src/api.rs) ## GET* `/n//asset?` Where `role` is one of `backdrop` or `poster`. Returns assets for a node. ## GET* `/stream/?tracks=&webm=` Responds with the stream directly or a redirect to the actual source.