Email + password sign-up
const url = 'https://example.com/api/auth/signup';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"email":"hello@example.com","password":"example","name":"example","callback_origin":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/auth/signup \ --header 'Content-Type: application/json' \ --data '{ "email": "hello@example.com", "password": "example", "name": "example", "callback_origin": "example" }'Admin generateLink (signup) + Mailgun confirmation email. Validates browser Origin, rate-limits by IP.
Existing-email cases return the same opaque success as new signups.
Request Body required
Section titled “Request Body required ”object
Responses
Section titled “ Responses ”Signup initiated — check email to confirm
object
Invalid request
object
Human-readable error message
Stable machine-readable error code for client branching
First validation message per field path
object
Structured validation issues (Zod)
object
Seconds until rate limit resets (429 responses)
Forbidden
object
Human-readable error message
Stable machine-readable error code for client branching
First validation message per field path
object
Structured validation issues (Zod)
object
Seconds until rate limit resets (429 responses)
Rate limited
object
Human-readable error message
Stable machine-readable error code for client branching
First validation message per field path
object
Structured validation issues (Zod)
object
Seconds until rate limit resets (429 responses)
Seconds until the rate limit resets
Headers
Section titled “Headers ”Supabase or Mailgun failure