Guides · Guides
Invite users
How the first people get into an app, what a seat is, and the two gestures only a human makes.
The four steps#
- Set the app's URL. Invitation links are built from it — the sign-up page belongs to your app, not to Manybases. A human sets it in the project's Settings (a two-step confirmation, because changing it redirects every user), or the first site deployment fills it in.
- Put a publishable key in the front end. Every publishable key signs users up, whoever created it: your agent with
create_key, or you from the API keys screen or the Deploy → Third-party tab. (Until 2026-09-07 a key created by an agent was inert and could not; that rule is removed.) - People sign up on your app:
POST /v1/auth/signupwith{ email, password }and the publishable key. No invitation is needed — sign-up is open (below). Each sign-up takes a seat. - A signed-in person invites someone, from your app:
POST /v1/inviteswith the publishable key and their session returnshttps://<your app URL>/i/<token>, single-use, valid 7 days. Share it yourself — no e-mail is sent. The invited person signs up on your app's page for/i/<token>, which must pass the token along:POST /v1/auth/signupwith{ email, password, invite: "<token>" }. The API consumes the link at that moment; two people racing on the same link cannot both succeed.
Neither you nor your agent mints invitation links: the invite_user tool and its account-key route were removed on 2026-09-22, and the dashboard's Users screen stopped minting links on 2026-09-20. A link already issued stays valid until it expires.
The SDK's signup does not carry the invite field yet: for an invited sign-up, call the route directly with the three fields, then hand the returned session to the SDK with setSession.
Seats#
3 per app on Free, 1 000 on Builder and Studio. A seat is taken at sign-up: seats.used counts the people signed up to the app, and the response of a sign-up counts the person who just signed up. An invitation reserves no seat — inviting ten people on a three-seat app is allowed. At the cap, a sign-up answers 402 quota_exceeded and creates nothing; the invitation link it carried stays usable. Signing in is never refused by the cap. Deleting a user frees their seat. Anonymous visitors of a public table take no seat, and joining a space takes no extra one.
Sign-up stays open#
An invitation attributes and shares; it closes nothing. Anyone who holds the publishable key — public by design — can sign up without a link. If an app must be closed to strangers, keep its address to yourself and its tables on presets that show nothing to a newcomer (prive, espaces); the seat cap bounds the damage. A stranger's sign-ups do take seats: delete them from the Users screen to free them.
Resetting a password#
From the Users screen or the reset_password tool, a human obtains a single-use link valid one hour and hands it to the person. Nothing changes until it is used; using it signs the person out everywhere. See Users.
