Skip to main content
POST
/
v1
/
auth
/
login
curl --request POST \
  --url https://api.paypulse.io/v1/auth/login \
  --header 'Content-Type: application/json' \
  --data '{
    "email": "jane@example.com",
    "password": "s3cur3P@ssword!"
  }'
{
  "message": "Login successful!",
  "code": 200,
  "data": {
    "username": "Jane Doe",
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "token_type": "Bearer"
  }
}

Request body

email
string
required
The email address associated with the account.
password
string
required
The account password.

Response

message
string
A human-readable confirmation message. Example: "Login successful!"
code
number
HTTP status code. 200 on success.
data
object
Include the access_token in the Authorization header of all subsequent requests that require authentication: Authorization: Bearer <access_token>.

Error responses

StatusError codeDescription
400INVALID_JSONThe request body is not valid JSON.
400MISSING_FIELDSOne or more required fields (email, password) are absent.
401INVALID_CREDENTIALSThe password does not match the stored credential.
404USER_NOT_FOUNDNo account exists for the given email address.
500JWT_ERRORThe server failed to generate the JWT token.
500INTERNAL_SERVER_ERRORAn unexpected server-side error occurred.
Error responses follow this structure:
{
  "error": {
    "code": "INVALID_CREDENTIALS",
    "message": "Invalid Credentials"
  }
}
curl --request POST \
  --url https://api.paypulse.io/v1/auth/login \
  --header 'Content-Type: application/json' \
  --data '{
    "email": "jane@example.com",
    "password": "s3cur3P@ssword!"
  }'
{
  "message": "Login successful!",
  "code": 200,
  "data": {
    "username": "Jane Doe",
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "token_type": "Bearer"
  }
}