Docs API reference Users API reference
Users Accounts, the permission matrix, devices and invites (user:manage).
Paths are relative to /api/v1 on your server.
List my devices Authorisation Bearer token or API key · Session cookie Parameter In Type Description userIdquery string (uuid)
200 Success. application/json · object 400 VALIDATION_FAILED: the request did not match the schema; details.issues lists what. application/json · ErrorEnvelope401 UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope403 FORBIDDEN: the account lacks library:view, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelopeSign a device out Authorisation Bearer token or API key · Session cookie Parameter In Type Description id required path string (uuid)
200 Success. application/json · object 401 UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope403 FORBIDDEN: the account lacks library:view, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope404 NOT_FOUND: no such thing, or not one the caller may see. application/json · ErrorEnvelopeList open invites Authorisation Bearer token or API key · Session cookie 200 Success. application/json · object 401 UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope403 FORBIDDEN: the account lacks user:manage, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelopeCreate an invite Authorisation Bearer token or API key · Session cookie Body application/json · object201 Success. application/json · Invite 400 VALIDATION_FAILED: the request did not match the schema; details.issues lists what. application/json · ErrorEnvelope401 UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope403 FORBIDDEN: the account lacks user:manage, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelopeRevoke an invite Only one nobody has accepted: an accepted invitation stays, as the record of who let whom in.
Authorisation Bearer token or API key · Session cookie Parameter In Type Description id required path string (uuid)
204 Done; no body. 401 UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope403 FORBIDDEN: the account lacks user:manage, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope404 NOT_FOUND: no such thing, or not one the caller may see.
NOT_FOUND: no such invitation application/json · ErrorEnvelope409 CONFLICT: it was accepted application/json · ErrorEnvelopeRead what an invite offers Authorisation None Parameter In Type Description token required path string
200 Success. application/json · object 404 NOT_FOUND: no such thing, or not one the caller may see. application/json · ErrorEnvelopeAccept an invite and create the account Authorisation None Body application/json · object201 Success. application/json · object 400 VALIDATION_FAILED: the request did not match the schema; details.issues lists what. application/json · ErrorEnvelopeList accounts Authorisation Bearer token or API key · Session cookie 200 Success. application/json · ManagedUser[] 401 UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope403 FORBIDDEN: the account lacks user:manage, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelopeCreate an account Authorisation Bearer token or API key · Session cookie Body application/json · object201 Success. application/json · ManagedUserDetail 400 VALIDATION_FAILED: the request did not match the schema; details.issues lists what. application/json · ErrorEnvelope401 UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope403 FORBIDDEN: the account lacks user:manage, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelopeRead an account Authorisation Bearer token or API key · Session cookie Parameter In Type Description id required path string (uuid)
200 Success. application/json · ManagedUserDetail 401 UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope403 FORBIDDEN: the account lacks user:manage, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope404 NOT_FOUND: no such thing, or not one the caller may see. application/json · ErrorEnvelopeUpdate an account Authorisation Bearer token or API key · Session cookie Body application/json · objectParameter In Type Description id required path string (uuid)
200 Success. application/json · ManagedUserDetail 400 VALIDATION_FAILED: the request did not match the schema; details.issues lists what. application/json · ErrorEnvelope401 UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope403 FORBIDDEN: the account lacks user:manage, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope404 NOT_FOUND: no such thing, or not one the caller may see. application/json · ErrorEnvelopeDelete an account Authorisation Bearer token or API key · Session cookie Parameter In Type Description id required path string (uuid)
204 Done; no body. 401 UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope403 FORBIDDEN: the account lacks user:manage, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope404 NOT_FOUND: no such thing, or not one the caller may see. application/json · ErrorEnvelopeSet library grants, restrictions and schedule Authorisation Bearer token or API key · Session cookie Body application/json · objectParameter In Type Description id required path string (uuid)
200 Success. application/json · ManagedUserDetail 400 VALIDATION_FAILED: the request did not match the schema; details.issues lists what. application/json · ErrorEnvelope401 UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope403 FORBIDDEN: the account lacks user:manage, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope404 NOT_FOUND: no such thing, or not one the caller may see. application/json · ErrorEnvelopeServe an account’s picture The server’s copy of the picture of the account’s Collectoh account, taken at its sign-in with Collectoh and refreshed daily (2026-10-12): a 256-pixel WebP, to anyone signed in here. An account’s avatarPath names it, with a v that changes with each new picture.
Authorisation Bearer token or API key · Session cookie Parameter In Type Description id required path string (uuid)vquery string
200 Success. image/webp · 400 VALIDATION_FAILED: the request did not match the schema; details.issues lists what. application/json · ErrorEnvelope401 UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope403 FORBIDDEN: the account may not do this. application/json · ErrorEnvelope404 NOT_FOUND: no such thing, or not one the caller may see. application/json · ErrorEnvelopeList an account’s devices Authorisation Bearer token or API key · Session cookie Parameter In Type Description id required path string (uuid)
200 Success. application/json · object 401 UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope403 FORBIDDEN: the account lacks user:manage, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope404 NOT_FOUND: no such thing, or not one the caller may see. application/json · ErrorEnvelopePOST /users/{id} /reset-link# Issue a password reset link Authorisation Bearer token or API key · Session cookie Parameter In Type Description id required path string (uuid)
201 Success. application/json · object 401 UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope403 FORBIDDEN: the account lacks user:manage, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope404 NOT_FOUND: no such thing, or not one the caller may see. application/json · ErrorEnvelopeList accounts to share with Names and avatars only, for the sharing pickers.
Authorisation Bearer token or API key · Session cookie 200 Success. application/json · object[] 401 UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope403 FORBIDDEN: the account lacks playlist:own, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelopeNo endpoint here matches. Try another word, or look in another area .