Skip to main content
POST
/
api
/
signup
Sign Up
curl --request POST \
  --url https://api.example.com/api/signup \
  --header 'Content-Type: application/json' \
  --data '
{
  "username": "<string>",
  "password": "<string>",
  "email": "<string>",
  "name": "<string>"
}
'
{
  "message": "<string>",
  "user": {
    "id": 123,
    "username": "<string>",
    "email": "<string>",
    "name": "<string>",
    "created_at": "<string>",
    "updated_at": "<string>",
    "max_files": 123,
    "max_storage": 123
  }
}

Request Body

username
string
required
Unique username for the account. Must be unique across all users.
password
string
required
User password. Will be hashed using bcrypt before storage.
email
string
required
User’s email address.
name
string
required
User’s full name or display name.

Response

message
string
Success message indicating user was created.
user
object
The created user object.
id
integer
Auto-generated user ID.
username
string
The username provided during signup.
email
string
The email provided during signup.
name
string
The name provided during signup.
created_at
string
Timestamp when the user was created.
updated_at
string
Timestamp when the user was last updated.
max_files
integer
Maximum number of files allowed (default: 100).
max_storage
integer
Maximum storage in bytes (default: 1073741824 = 1GB).
The password field is never returned in the response for security reasons.

Error Responses

Returned when request validation fails or required fields are missing.
{
  "error": "Key: 'User.Username' Error:Field validation for 'Username' failed on the 'required' tag"
}
Returned when password hashing fails.
{
  "error": "Failed to hash password"
}
Returned when database user creation fails (e.g., duplicate username).
{
  "error": "Failed to create user: UNIQUE constraint failed: users.username"
}

Example Request

curl -X POST https://api.defdrive.com/api/signup \
  -H "Content-Type: application/json" \
  -d '{
    "username": "johndoe",
    "password": "securePassword123",
    "email": "[email protected]",
    "name": "John Doe"
  }'

Example Response

200 Success
{
  "message": "User created successfully",
  "user": {
    "id": 1,
    "created_at": "2024-03-15T10:30:00Z",
    "updated_at": "2024-03-15T10:30:00Z",
    "deleted_at": null,
    "name": "John Doe",
    "email": "[email protected]",
    "username": "johndoe",
    "password": "",
    "max_files": 100,
    "max_storage": 1073741824
  }
}

Build docs developers (and LLMs) love