LazyAuth.

LazyAuth API provides email and social login, PASETO token rotation, account verification, password recovery, and session controls with camelCase JSON responses.

Explore endpoints
$ curl -X POST "https://lazyauth.lazycatlabs.com/api/auth/general"
{
  "clientId": "base_auth_app",
  "clientSecret": "base_auth_secret_789"
}
200 OK
{
  "token": "lazycatlabs.<general-token>",
  "tokenType": "Bearer"
}
21 endpoints
3 auth levels
PASETO token format
camelCase JSON fields

Authentication flow

Start with a general token, then move to access-token calls.

01

Issue a general token

Create a short-lived general token with client credentials before health checks, email delivery, registration, login, refresh, and forgot-password OTP requests.

02

Create or authenticate a user

Register with email/password or login with email, Google, or Apple. Successful auth returns access and refresh tokens.

03

Call protected resources

Send the access token to user profile, session, logout, password, and account verification endpoints.

04

Refresh when needed

Use the refresh token plus device metadata to rotate the auth token pair without asking the user to login again.

POST

Create general token

None

Creates a general token from the configured client id and client secret.

/api/auth/general

cURL

curl -X POST "https://lazyauth.lazycatlabs.com/api/auth/general" \
  -H "Content-Type: application/json" \
  -d '{
  "clientId": "base_auth_app",
  "clientSecret": "base_auth_secret_789"
}'

Request body

{
  "clientId": "base_auth_app",
  "clientSecret": "base_auth_secret_789"
}

Response

{
  "diagnostic": {
    "status": "200 OK",
    "message": "Success"
  },
  "data": {
    "token": "lazycatlabs.<general-token>",
    "tokenType": "Bearer"
  }
}

Use these public live-test credentials first, then copy the returned token into every General token request.

Response envelope

Every payload is wrapped in diagnostic metadata.

Success

{
  "diagnostic": {
    "status": "200 OK",
    "message": "Success"
  },
  "data": {}
}

Error

{
  "diagnostic": {
    "status": "400 Bad Request",
    "message": "Validation error"
  }
}