Browse the docs

API reference

Branding

Your logo (P6-17): the server’s own main logo, in place of Collectoh’s mark in the app and its tab, and its loading logo, each for dark themes and light. Reading them answers anyone, since the sign-in page and the loading screen show them; changing them takes settings:manage.

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

GET/branding#

Read the branding

Every picture there is, by kind (logo, loading) and scheme (dark, light), null where there is none. Which to show: the other scheme’s when a scheme has none, the main logo when there is no loading logo, and Collectoh’s own mark when there is nothing at all.

Authorisation
None
  • 200Success. application/json · Branding
DELETE/branding#

Go back to Collectoh’s own mark

Removes every picture.

Authorisation
Bearer token or API key · Session cookie
  • 200Success. application/json · Branding
  • 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
GET/branding/{kind}/{scheme}#

Serve a logo

Asked for with the v its URL carries, it is cached for good; without it, revalidated. An SVG is served under a sandboxing Content-Security-Policy.

Authorisation
None
ParameterInTypeDescription
kind requiredpath"logo" | "loading"
scheme requiredpath"dark" | "light"
vquerystring
  • 200Success. image/* ·
  • 400VALIDATION_FAILED: the request did not match the schema; details.issues lists what. application/json · ErrorEnvelope
  • 404NOT_FOUND: no such thing, or not one the caller may see. application/json · ErrorEnvelope
POST/branding/{kind}/{scheme}#

Upload a logo

The body is the file (1 MB at most): SVG, PNG or WebP, told apart by its bytes. An SVG is rebuilt from an allow-list — shapes, paint, the words of a wordmark and plain style rules — and refused whole if it carries a script, an event handler, HTML, a picture wrapped inside it, or anything that points or fetches outside it. A picture is re-encoded as a PNG of 1,024 pixels at most on its longer side. It replaces whatever was there.

Authorisation
Bearer token or API key · Session cookie
Body
image/* ·
ParameterInTypeDescription
kind requiredpath"logo" | "loading"
scheme requiredpath"dark" | "light"
  • 200Success. application/json · Branding
  • 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/branding/{kind}/{scheme}#

Remove a logo

The other scheme’s picture shows in its place, or the main logo, or Collectoh’s own mark.

Authorisation
Bearer token or API key · Session cookie
ParameterInTypeDescription
kind requiredpath"logo" | "loading"
scheme requiredpath"dark" | "light"
  • 200Success. application/json · Branding
  • 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