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.
/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
/branding#Go back to Collectoh’s own mark
Removes every picture.
- Authorisation
- Bearer token or API key · Session cookie
- 200Success.
application/json·Branding - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackssettings:manage, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope
/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
| Parameter | In | Type | Description |
|---|---|---|---|
kind required | path | "logo" | "loading" | |
scheme required | path | "dark" | "light" | |
v | query | string |
- 200Success.
image/*· - 400
VALIDATION_FAILED: the request did not match the schema;details.issueslists what.application/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.application/json·ErrorEnvelope
/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/*·
| Parameter | In | Type | Description |
|---|---|---|---|
kind required | path | "logo" | "loading" | |
scheme required | path | "dark" | "light" |
- 200Success.
application/json·Branding - 400
VALIDATION_FAILED: the request did not match the schema;details.issueslists what.application/json·ErrorEnvelope - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackssettings:manage, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.application/json·ErrorEnvelope
/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
| Parameter | In | Type | Description |
|---|---|---|---|
kind required | path | "logo" | "loading" | |
scheme required | path | "dark" | "light" |
- 200Success.
application/json·Branding - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackssettings:manage, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.application/json·ErrorEnvelope
No endpoint here matches. Try another word, or look in another area.