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

Request body

email
string
required
The user’s email address. Must be unique across all accounts.
name
string
required
The user’s display name.
password
string
required
The user’s password. Stored as a bcrypt hash.

Response

message
string
A human-readable confirmation message. Example: "Signup successful!"
code
number
HTTP status code. 201 on success.
data
object

Error responses

StatusError codeDescription
400INVALID_CREDENTIALSThe provided credentials are malformed or fail validation.
400INVALID_JSONThe request body is not valid JSON.
400MISSING_FIELDSOne or more required fields (email, name, password) are absent.
403USER_ALREADY_EXISTSAn account with the given email address already exists.
502DEPENDENCY_FAILUREA downstream dependency (DynamoDB or S3) returned an error.
500INTERNAL_SERVER_ERRORAn unexpected server-side error occurred.
Error responses follow this structure:
{
  "error": {
    "code": "USER_ALREADY_EXISTS",
    "message": "User with email 'user@example.com' already exists."
  }
}
curl --request POST \
  --url https://api.paypulse.io/v1/auth/signup \
  --header 'Content-Type: application/json' \
  --data '{
    "email": "jane@example.com",
    "name": "Jane Doe",
    "password": "s3cur3P@ssword!"
  }'
{
  "message": "Signup successful!",
  "code": 201,
  "data": {
    "username": "Jane Doe",
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "token_type": "Bearer"
  }
}