Merran documentation API & integrations
Sign in
const url = 'http://localhost:3000/api/auth/sign-in/username';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"username":"sam","password":"correct horse battery staple","rememberMe":true}'};
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/username \ --header 'Content-Type: application/json' \ --data '{ "username": "sam", "password": "correct horse battery staple", "rememberMe": true }'With a username and password. Sets the session cookie that signed-in requests send. Scripts and tools like Home Assistant use an API key instead. Answers in Better Auth’s error shape.
Request Bodyrequired
Section titled “Request Bodyrequired”object
The username of the user
The password of the user
Remember the user session
URL to redirect to after sign in (also used as the redirect target for email verification when required)
Example
{ "username": "sam", "password": "correct horse battery staple", "rememberMe": true}Responses
Section titled “Responses”Success
object
Whether the client should follow the Location header. True when callbackURL was provided.
Session token for the authenticated session
The callbackURL echoed back so the client can redirect.
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"}Unprocessable Entity. Validation error
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.