Skip to content

Log In

POST
/api/auth/login
curl --request POST \
--url https://example.com/api/auth/login \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "email": "hello@example.com", "password": "example" }'

Verifies an email/password pair and returns a signed JWT access token plus the user profile. The portal stores the token in an httpOnly cookie and forwards it on subsequent API calls as Authorization: Bearer <token>.

object
email
required
string format: email
>= 1 characters <= 256 characters
password
required
string
>= 1 characters <= 128 characters
Example generated
{
"email": "hello@example.com",
"password": "example"
}

Credentials accepted.

Media type application/json

Result of a successful login.

object
token
string
nullable
expiresAt
string format: date-time
user

The authenticated user attached to the current bearer token.

object
id
string format: uuid
merchantId
string format: uuid
email
string
nullable
fullName
string
nullable
role
string
Allowed values: Owner Admin Staff Viewer
Example
{
"user": {
"role": "Owner"
}
}

Email or password incorrect, or the account is inactive.

Media type application/json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
key
additional properties
Example generated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}