{"service":"bsdocs-api", "name":"BS Docs", "description":"The BSafe Group document workspace: documents and folders, sharing and link access, comments and replies, version history, templates, notifications and accounts", "version":"1.0.0", "base_url":"https://docs-api.bsafegroup.be", "client":"https://docs.bsafegroup.be", "api":"/api", "health":"/api/health", "languages":[{"code":"en", "dir":"ltr", "intlTag":"en-GB"}, {"code":"ar", "dir":"rtl", "intlTag":"ar-u-nu-arab"}, {"code":"fa", "dir":"rtl", "intlTag":"fa-IR"}], "endpoint_count":54, "endpoints":[{"group":"meta", "method":"GET", "path":"/", "auth":"none", "summary":"This document: what the service is and every route it serves"}, {"group":"meta", "method":"GET", "path":"/api", "auth":"none", "summary":"The same document, under the API prefix"}, {"group":"meta", "method":"GET", "path":"/api/health", "auth":"none", "summary":"Whether the process is up and can reach the database at the schema it expects"}, {"group":"auth", "method":"POST", "path":"/api/auth/register", "auth":"none", "summary":"Create an account, seed its starter workspace and sign it in"}, {"group":"auth", "method":"POST", "path":"/api/auth/login", "auth":"none", "summary":"Exchange an email address and password for an access and refresh token"}, {"group":"auth", "method":"POST", "path":"/api/auth/refresh", "auth":"none", "summary":"Trade a refresh token for a new access token on the same session"}, {"group":"auth", "method":"POST", "path":"/api/auth/logout", "auth":"bearer", "summary":"End this session, so its tokens stop working on the next request"}, {"group":"auth", "method":"POST", "path":"/api/auth/password/forgot", "auth":"none", "summary":"Send a reset link, answering the same whether or not the address exists"}, {"group":"auth", "method":"POST", "path":"/api/auth/password/reset", "auth":"none", "summary":"Set a new password from a reset token and end every session"}, {"group":"account", "method":"GET", "path":"/api/me", "auth":"bearer", "summary":"The signed-in profile, its preferences and its storage use"}, {"group":"account", "method":"PATCH", "path":"/api/me", "auth":"bearer", "summary":"Change the name, address, job title, timezone or colour; absent fields keep their value"}, {"group":"account", "method":"DELETE", "path":"/api/me", "auth":"bearer", "summary":"Delete the account and everything it owns, after confirming the password"}, {"group":"account", "method":"POST", "path":"/api/me/password", "auth":"bearer", "summary":"Change the password; every other session ends and this one continues"}, {"group":"account", "method":"PUT", "path":"/api/me/locale", "auth":"bearer", "summary":"Save the reading language, so the next sign-in starts in it"}, {"group":"account", "method":"PUT", "path":"/api/me/notifications", "auth":"bearer", "summary":"Which events this account wants to be told about"}, {"group":"account", "method":"PUT", "path":"/api/me/two-factor", "auth":"bearer", "summary":"Turn the second factor on or off"}, {"group":"account", "method":"GET", "path":"/api/me/sessions", "auth":"bearer", "summary":"Every session on this account, with the current one marked"}, {"group":"account", "method":"DELETE", "path":"/api/me/sessions", "auth":"bearer", "summary":"Sign out everywhere except here"}, {"group":"account", "method":"POST", "path":"/api/me/workspace/reset", "auth":"bearer", "summary":"Empty the workspace and seed the starter set again"}, {"group":"documents", "method":"GET", "path":"/api/documents", "auth":"bearer", "summary":"List documents by scope, folder, owner and full text search, paged"}, {"group":"documents", "method":"POST", "path":"/api/documents", "auth":"bearer", "summary":"Create a document, optionally from a template, with its owner membership"}, {"group":"documents", "method":"GET", "path":"/api/documents/counts", "auth":"bearer", "summary":"How many documents each scope holds, for the sidebar"}, {"group":"documents", "method":"POST", "path":"/api/documents/trash/empty", "auth":"bearer", "summary":"Delete every trashed document permanently"}, {"group":"documents", "method":"GET", "path":"/api/documents/:id", "auth":"bearer, or none when link access is open", "summary":"One document with its content, page setup and the caller's resolved role"}, {"group":"documents", "method":"PATCH", "path":"/api/documents/:id", "auth":"bearer", "summary":"Change the title, content, labels, folder or page setup"}, {"group":"documents", "method":"DELETE", "path":"/api/documents/:id", "auth":"bearer", "summary":"Delete a document permanently, owner only"}, {"group":"documents", "method":"POST", "path":"/api/documents/:id/star", "auth":"bearer", "summary":"Star it, for this account alone"}, {"group":"documents", "method":"DELETE", "path":"/api/documents/:id/star", "auth":"bearer", "summary":"Remove the star"}, {"group":"documents", "method":"POST", "path":"/api/documents/:id/open", "auth":"bearer", "summary":"Record that this account opened it, which is what orders the recent list"}, {"group":"documents", "method":"POST", "path":"/api/documents/:id/duplicate", "auth":"bearer", "summary":"Copy it into a new document owned by the caller"}, {"group":"documents", "method":"POST", "path":"/api/documents/:id/trash", "auth":"bearer", "summary":"Move it to the bin, where it is kept for thirty days"}, {"group":"documents", "method":"POST", "path":"/api/documents/:id/restore", "auth":"bearer", "summary":"Take it back out of the bin"}, {"group":"collaboration", "method":"GET", "path":"/api/documents/:id/comments", "auth":"bearer", "summary":"The comment threads on a document, members only"}, {"group":"collaboration", "method":"POST", "path":"/api/documents/:id/comments", "auth":"bearer", "summary":"Start a thread, anchored to a span of the text"}, {"group":"collaboration", "method":"PATCH", "path":"/api/comments/:id", "auth":"bearer", "summary":"Resolve or reopen a thread"}, {"group":"collaboration", "method":"DELETE", "path":"/api/comments/:id", "auth":"bearer", "summary":"Delete a thread, as its author or the document's owner"}, {"group":"collaboration", "method":"POST", "path":"/api/comments/:id/replies", "auth":"bearer", "summary":"Reply in a thread"}, {"group":"collaboration", "method":"DELETE", "path":"/api/replies/:id", "auth":"bearer", "summary":"Delete a reply, as its author or the document's owner"}, {"group":"collaboration", "method":"GET", "path":"/api/documents/:id/revisions", "auth":"bearer", "summary":"The version history, members only"}, {"group":"collaboration", "method":"POST", "path":"/api/documents/:id/revisions/:revisionId/restore", "auth":"bearer", "summary":"Write an older version back as a new save, so the restore is itself undoable"}, {"group":"collaboration", "method":"PATCH", "path":"/api/revisions/:id", "auth":"bearer", "summary":"Name a version, which also stops it being pruned"}, {"group":"collaboration", "method":"GET", "path":"/api/documents/:id/collaborators", "auth":"bearer", "summary":"Who the document is shared with, members only"}, {"group":"collaboration", "method":"POST", "path":"/api/documents/:id/collaborators", "auth":"bearer", "summary":"Share it with somebody at a role, owner only"}, {"group":"collaboration", "method":"PATCH", "path":"/api/documents/:id/collaborators/:userId", "auth":"bearer", "summary":"Change what a collaborator may do, owner only"}, {"group":"collaboration", "method":"DELETE", "path":"/api/documents/:id/collaborators/:userId", "auth":"bearer", "summary":"Remove a collaborator, owner only"}, {"group":"collaboration", "method":"PUT", "path":"/api/documents/:id/link-access", "auth":"bearer", "summary":"Open or close the document to anyone holding the link, owner only"}, {"group":"workspace", "method":"GET", "path":"/api/folders", "auth":"bearer", "summary":"This account's folders with the count in each"}, {"group":"workspace", "method":"POST", "path":"/api/folders", "auth":"bearer", "summary":"Create a folder"}, {"group":"workspace", "method":"PATCH", "path":"/api/folders/:id", "auth":"bearer", "summary":"Rename a folder or change its colour"}, {"group":"workspace", "method":"DELETE", "path":"/api/folders/:id", "auth":"bearer", "summary":"Delete a folder; the documents in it move out rather than going with it"}, {"group":"workspace", "method":"GET", "path":"/api/templates", "auth":"none", "summary":"The template gallery, in the reading language"}, {"group":"workspace", "method":"GET", "path":"/api/users", "auth":"bearer", "summary":"People this account may share with, searched by name or address"}, {"group":"workspace", "method":"GET", "path":"/api/notifications", "auth":"bearer", "summary":"This account's notifications, newest first, with the unread count"}, {"group":"workspace", "method":"POST", "path":"/api/notifications/read", "auth":"bearer", "summary":"Mark some or all of them read, on the server rather than in one browser"}]}