{"service":"bsslides-api","name":"BS Slides","description":"The BSafe Group presentation editor: decks, slides, themes, templates, sharing, discussion and version history","base_url":"https://slides-api.bsafegroup.be","client":"https://slides.bsafegroup.be","api":"/api","health":"/api/ready","endpoint_count":43,"endpoints":[{"group":"meta","method":"GET","path":"/","auth":"none","summary":"This document: what the service is and every route it serves"},{"group":"health","method":"GET","path":"/api/health","auth":"none","summary":"Whether the process is running, which is what a load balancer asks"},{"group":"health","method":"GET","path":"/api/ready","auth":"none","summary":"Whether the database answers too, which is what a deployment gate should ask"},{"group":"auth","method":"POST","path":"/api/auth/register","auth":"none","summary":"Create an account and sign in with it"},{"group":"auth","method":"POST","path":"/api/auth/login","auth":"none","summary":"Exchange an email and password for a token pair"},{"group":"auth","method":"POST","path":"/api/auth/refresh","auth":"none","summary":"Exchange a refresh token for a new pair; the old one stops working"},{"group":"auth","method":"POST","path":"/api/auth/logout","auth":"user","summary":"Revoke this session, on this device only"},{"group":"decks","method":"GET","path":"/api/presentations","auth":"user","summary":"Decks the caller can open, filtered by scope, search, owner and sort"},{"group":"decks","method":"POST","path":"/api/presentations","auth":"user","summary":"A new deck, blank or from a template"},{"group":"decks","method":"PATCH","path":"/api/presentations/:id","auth":"user","summary":"Rename a deck, star it, or move it to and from the trash"},{"group":"decks","method":"POST","path":"/api/presentations/:id/duplicate","auth":"user","summary":"Copy a deck, its slides and its theme"},{"group":"decks","method":"DELETE","path":"/api/presentations/:id","auth":"user","summary":"Delete a deck for good; the owner only, and only from the trash"},{"group":"decks","method":"POST","path":"/api/presentations/:id/opened","auth":"user","summary":"Record that the caller opened this deck, so the library can sort by what the caller opened last"},{"group":"decks","method":"GET","path":"/api/presentations/:id","auth":"user","summary":"One deck in full: slides, elements, theme, collaborators, discussion and history"},{"group":"decks","method":"PUT","path":"/api/presentations/:id/content","auth":"user","summary":"Replace the slides and theme; needs edit access, and validates every element"},{"group":"decks","method":"GET","path":"/api/presentations/:id/snapshot-age","auth":"user","summary":"Seconds since the last automatic version, so the editor knows whether another is due"},{"group":"catalogue","method":"GET","path":"/api/catalogue","auth":"user","summary":"Themes, fonts, size menus, the vocabularies the editor draws menus from, and every limit this API enforces on a deck"},{"group":"catalogue","method":"GET","path":"/api/templates","auth":"user","summary":"The template gallery, each with its cover slide"},{"group":"account","method":"GET","path":"/api/me","auth":"user","summary":"The signed-in account"},{"group":"account","method":"PATCH","path":"/api/me","auth":"user","summary":"Change the name, job title, company or reading language"},{"group":"account","method":"PUT","path":"/api/me/password","auth":"user","summary":"Change the password, which revokes every other session"},{"group":"account","method":"GET","path":"/api/me/settings","auth":"user","summary":"Editor preferences, which follow the account rather than the browser"},{"group":"account","method":"PUT","path":"/api/me/settings","auth":"user","summary":"Store editor preferences"},{"group":"account","method":"GET","path":"/api/users","auth":"user","summary":"Search colleagues by name or email, for the sharing dialog"},{"group":"comments","method":"GET","path":"/api/presentations/:id/comments","auth":"user","summary":"Every discussion thread on a deck"},{"group":"comments","method":"POST","path":"/api/presentations/:id/comments","auth":"user","summary":"Start a thread on a slide or an element"},{"group":"comments","method":"POST","path":"/api/presentations/:id/comments/:tid/replies","auth":"user","summary":"Add a reply to a thread"},{"group":"comments","method":"PATCH","path":"/api/presentations/:id/comments/:tid","auth":"user","summary":"Mark a thread resolved, or reopen it"},{"group":"comments","method":"DELETE","path":"/api/presentations/:id/comments/:tid","auth":"user","summary":"Delete a thread and its replies"},{"group":"versions","method":"GET","path":"/api/presentations/:id/versions","auth":"user","summary":"The history, each entry with its cover slide and slide count"},{"group":"versions","method":"POST","path":"/api/presentations/:id/versions","auth":"user","summary":"Snapshot the deck as it stands, named or automatic"},{"group":"versions","method":"GET","path":"/api/presentations/:id/versions/:vid","auth":"user","summary":"One snapshot in full, for looking at before restoring it"},{"group":"versions","method":"POST","path":"/api/presentations/:id/versions/:vid/restore","auth":"user","summary":"Put a version back, snapshotting what it replaces first"},{"group":"versions","method":"PATCH","path":"/api/presentations/:id/versions/:vid","auth":"user","summary":"Name a version, or clear the name"},{"group":"versions","method":"DELETE","path":"/api/presentations/:id/versions/:vid","auth":"user","summary":"Remove a version from the history"},{"group":"sharing","method":"GET","path":"/api/presentations/:id/collaborators","auth":"user","summary":"Who a deck is shared with, and as what"},{"group":"sharing","method":"POST","path":"/api/presentations/:id/collaborators","auth":"user","summary":"Share a deck with a colleague as viewer, commenter, editor or owner"},{"group":"sharing","method":"PATCH","path":"/api/presentations/:id/collaborators/:uid","auth":"user","summary":"Change what somebody may do with a deck"},{"group":"sharing","method":"DELETE","path":"/api/presentations/:id/collaborators/:uid","auth":"user","summary":"Stop sharing a deck with somebody; the last owner cannot be removed"},{"group":"sharing","method":"GET","path":"/api/presentations/:id/share","auth":"user","summary":"Whether this deck has a public link, and what it is; the owner only"},{"group":"sharing","method":"POST","path":"/api/presentations/:id/share","auth":"user","summary":"Publish the deck at a link anybody can open, or rotate the link it has"},{"group":"sharing","method":"DELETE","path":"/api/presentations/:id/share","auth":"user","summary":"Revoke the public link, which stops every copy of it at once"},{"group":"public","method":"GET","path":"/api/public/presentations/:token","auth":"none","summary":"A published deck, as it stands, for anybody holding its link"}]}