Merran documentation API & integrations
Sign in with an email address
const url = 'http://localhost:3000/api/auth/sign-in/email';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"email":"sam@example.com","password":"correct horse battery staple"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:3000/api/auth/sign-in/email \ --header 'Content-Type: application/json' \ --data '{ "email": "sam@example.com", "password": "correct horse battery staple" }'The same as signing in with a username, with the account’s email address instead.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Email of the user
Password of the user
Callback URL to use as a redirect for email verification
If this is false, the session will not be remembered. Default is true.
Example
{ "email": "sam@example.com", "password": "correct horse battery staple"}Responses
Section titled “Responses”Success - Returns either session details or redirect URL
Session response when idToken is provided
object
Session token
object
Example
{ "redirect": false, "token": "sample-session-token", "url": null, "user": { "id": "0199e8b0-5a10-7a01-8b00-000000000001", "name": "Sam Rivera", "email": "sam@example.com", "emailVerified": false, "image": null, "createdAt": "2026-10-01T17:30:00.000Z", "updatedAt": "2026-10-01T17:30:00.000Z", "username": "sam", "displayUsername": "sam", "role": "admin", "banned": false }}Bad Request. Usually due to missing parameters, or invalid parameters.
object
Example generated
{ "message": "example"}Unauthorized. Due to missing or invalid authentication.
object
Example generated
{ "message": "example"}Forbidden. You do not have permission to access this resource or to perform this action.
object
Example generated
{ "message": "example"}Not Found. The requested resource was not found.
object
Example generated
{ "message": "example"}Too Many Requests. You have exceeded the rate limit. Try again later.
object
Example generated
{ "message": "example"}Internal Server Error. This is a problem with the server that you cannot fix.
object
Example generated
{ "message": "example"}© 2026 Kyle Johnson. Documentation: CC BY 4.0. Merran: AGPL-3.0-or-later.