Browse the docs

API reference

Support

Bug reports sent from the app: anyone signed in may send one; reading and resolving them takes settings:manage, and every admin is notified of each.

Paths are relative to /api/v1 on your server.

GET/bug-reports#

List bug reports

Newest first; the open ones unless status says otherwise. openCount is how many are open whatever the list is.

Authorisation
Bearer token or API key · Session cookie
ParameterInTypeDescription
statusquery"open" | "resolved" | "all"
  • 200Success. application/json · object
  • 400VALIDATION_FAILED: the request did not match the schema; details.issues lists what. application/json · ErrorEnvelope
  • 401UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope
  • 403FORBIDDEN: the account lacks settings:manage, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope
POST/bug-reports#

Report a bug

Anyone signed in. The client fills in where it happened (page), its own version and the browser; the server adds its version. Ten an hour per account (429 past that). Every admin gets a bug.reported notification.

Authorisation
Bearer token or API key · Session cookie
Body
application/json · object
  • 201Success. application/json · BugReport
  • 400VALIDATION_FAILED: the request did not match the schema; details.issues lists what. application/json · ErrorEnvelope
  • 401UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope
  • 403FORBIDDEN: the account lacks library:view, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope
PATCH/bug-reports/{id}#

Resolve or reopen a bug report

Authorisation
Bearer token or API key · Session cookie
Body
application/json · object
ParameterInTypeDescription
id requiredpathstring (uuid)
  • 200Success. application/json · BugReport
  • 400VALIDATION_FAILED: the request did not match the schema; details.issues lists what. application/json · ErrorEnvelope
  • 401UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope
  • 403FORBIDDEN: the account lacks settings:manage, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope
  • 404NOT_FOUND: no such thing, or not one the caller may see. application/json · ErrorEnvelope
DELETE/bug-reports/{id}#

Delete a bug report

Authorisation
Bearer token or API key · Session cookie
ParameterInTypeDescription
id requiredpathstring (uuid)
  • 204Done; no body.
  • 401UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope
  • 403FORBIDDEN: the account lacks settings:manage, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope
  • 404NOT_FOUND: no such thing, or not one the caller may see. application/json · ErrorEnvelope
POST/bug-reports/{id}/attachments#

Attach a file or screenshot to a bug report

The body is the file (25 MB at most); name and type say what it is called and is. Only the account that sent the report, within an hour of sending it, and five files to a report.

Authorisation
Bearer token or API key · Session cookie
Body
application/octet-stream ·
ParameterInTypeDescription
id requiredpathstring (uuid)
name requiredquerystring
typequerystring
  • 201Success. application/json · object
  • 400VALIDATION_FAILED: the request did not match the schema; details.issues lists what. application/json · ErrorEnvelope
  • 401UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope
  • 403FORBIDDEN: the account lacks library:view, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope
  • 404NOT_FOUND: no such thing, or not one the caller may see. NOT_FOUND: no report of the caller’s has that id application/json · ErrorEnvelope
  • 409CONFLICT: the report was sent over an hour ago, or has five files already application/json · ErrorEnvelope
  • 413PAYLOAD_TOO_LARGE: the file is over 25 MB application/json · ErrorEnvelope
GET/bug-reports/{id}/attachments/{attachmentId}#

A bug report’s file

A PNG, JPEG, WebP or GIF picture is sent to be shown; any other file only to be downloaded (application/octet-stream, Content-Disposition: attachment), and nothing in either ever runs (a sandboxing Content-Security-Policy, nosniff).

Authorisation
Bearer token or API key · Session cookie
ParameterInTypeDescription
id requiredpathstring (uuid)
attachmentId requiredpathstring (uuid)
  • 200Success. application/octet-stream ·
  • 401UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope
  • 403FORBIDDEN: the account lacks settings:manage, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope
  • 404NOT_FOUND: no such thing, or not one the caller may see. application/json · ErrorEnvelope