Skip to main content
POST
/
auth
/
signin
Sign in a user
curl --request POST \
  --url https://api.wacht.dev/auth/signin \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data strategy=email_otp \
  --data username=johndoe \
  --data email=john@example.com \
  --data 'phone=+1234567890' \
  --data 'phone_country_code=+1' \
  --data 'password=SecurePass123!' \
  --data 'token=<string>'
{
  "status": 200,
  "message": "",
  "data": {
    "id": "123456789012345678",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T10:30:00Z",
    "signin_attempts": [
      {
        "id": "<string>",
        "created_at": "2023-11-07T05:31:56Z",
        "updated_at": "2023-11-07T05:31:56Z"
      }
    ],
    "signins": [
      {
        "id": "<string>",
        "created_at": "2023-11-07T05:31:56Z",
        "updated_at": "2023-11-07T05:31:56Z"
      }
    ],
    "signup_attempts": [
      {
        "id": "<string>",
        "created_at": "2023-11-07T05:31:56Z",
        "updated_at": "2023-11-07T05:31:56Z"
      }
    ],
    "active_signin_id": "987654321098765432",
    "active_signin": {
      "id": "<string>",
      "created_at": "2023-11-07T05:31:56Z",
      "updated_at": "2023-11-07T05:31:56Z"
    }
  },
  "session": {
    "id": "123456789012345678",
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z"
  },
  "errors": [
    {
      "code": "INVALID_CREDENTIALS",
      "message": "Invalid credentials. Please try again."
    }
  ]
}

Body

application/x-www-form-urlencoded
strategy
enum<string>
required

Authentication strategy

Available options:
email_otp,
phone_otp,
magic_link,
plain_username,
plain_email
username
string

Username for username/password login

Example:

"johndoe"

email
string<email>

Email for email/password or email OTP login

Example:

"john@example.com"

phone
string

Phone number for phone OTP login

Example:

"+1234567890"

phone_country_code
string

Country code for phone number

Example:

"+1"

password
string<password>

Password for username/password or email/password login

Example:

"SecurePass123!"

token
string

Token for certain authentication methods

Response

Successful sign in

status
integer

HTTP status code

Example:

200

message
string

Response message (empty on success)

Example:

""

data
object
session
object

Minimal session info included in every response

errors
object[] | null

Error details (null on success)