Organization login
Members can sign in on the organization URL, a verified custom domain, or bookmer.com. LoginSign social login (Google, Apple, GitHub, and the other methods enabled in Settings) is the same in every case. Their email must already be on Users.
Organization URL
Members open /org/:slug/login. Only the methods enabled in Settings are shown. After sign-in they land on the filtered collection at /org/:slug. An organization session is bound to that one member identity. There is no account switcher and no add-account. To use a different person, sign out and sign in again on the organization login page.
Windows / workplace login is optional and only available when On-premise is enabled and the admin turns on workplace login, then enables windows under Login methods. The identity comes from the reverse-proxy header (X-Remote-User, Remote-User, or X-Forwarded-User), not from the browser. If an authentication code is required, the login page shows a code field. Session length follows the On-premise workplace policy (4 hours, 8 hours, 24 hours, or until the window closes). Integration steps: Authentication codes.
POST /api/org/:slug/windows-login
Custom domain
After DNS verification, members open the hostname instead. The login page still only lists enabled methods. Branding (name and logo) comes from the public org payload.
bookmer.com
A sign-in on bookmer.com checks LoginSign memberships. One organization → that collection. Several organizations → /org/choose. No membership → the normal bookmer.com dashboard. Windows / workplace login is never offered here.
GET /api/org/memberships
This route accepts the LoginSign session cookie or a Bearer OAuth access token. It returnsid, name, slug, loginUrl, andcollectionUrl for each active membership.
Public branding
GET /api/org/:slug GET /api/org/resolve-host?host=login.example.com
These routes do not require a session. They return name, slug, logo, allowed login methods, and loginUrl. They also include billingRequired when the plan is expired or over seats.
Expired or over-quota plan
After a successful sign-in, GET /api/org/:slug/access returns 402 when the paid plan has ended or the organization has more people than the live seat limit. The first window is a blocking plan picker for the owner, or a locked message for everyone else. Nobody reaches the collection until the owner renews or upgrades. The same window appears in Console.