Skip to main content
Members are contacts. They authenticate with the contact-auth API, not the platform auth API.

Register a new member

Registration is magic-link only — there is no password-at-signup. A registration request sends a magic link email with a verify-and-sign-in link. The response is always 202 Accepted regardless of whether the email already exists (enumeration-safe). Provide either team_id or slug — exactly one is required.
Request body attributes: Providing both slug and team_id, or neither, returns 422. Sending a password field returns 422. Password setup is done after sign-in via POST /api/v1/contact-auth/me/password. The response is always 202 Accepted with no body — even when the email is already registered or no hub with the given slug/team_id exists. Use a hub slug when you do not have the hub id yet.
If the hub has a custom frontend, include an allowlisted redirect_url. The hosted /m page consumes fragment-delivered magic links for the default flow. Custom frontends can call the consume endpoint directly:

Log in with password

Use the returned contact access token on member-facing routes.