Users
Register
POST /userCreates a new account. A confirmation email is sent after registration. No auth required.
Rate Limit: 5 requests per minute.
Request Body:
{
"username": "optischa",
"email": "optischa@example.com",
"password": "MyPassword1!"
}| Field | Type | Rules |
|---|---|---|
username | string | Required |
email | string | Valid email address |
password | string | Min. 8 chars, 1 uppercase, 1 number, 1 special character |
Example:
curl -X POST https://api.radioreg.net/user \
-H "Content-Type: application/json" \
-d '{
"username": "optischa",
"email": "optischa@example.com",
"password": "MyPassword1!"
}'Response (201):
{
"message": "User created, please active user"
}Activate Account
POST /user/activate/:tokenActivates an account using the token from the confirmation email. No auth required.
Parameters:
| Name | Type | Description |
|---|---|---|
token | string | Activation token from the email |
Example:
curl -X POST https://api.radioreg.net/user/activate/abc123...Response (200):
{
"message": "User activated"
}Login
POST /user/loginLogs in a user and returns a JWT. No auth required.
Rate Limit: 10 requests per minute.
Request Body:
{
"email": "optischa@example.com",
"password": "MyPassword1!",
"thirtyDaysLogin": false
}| Field | Type | Required | Description |
|---|---|---|---|
email | string | yes | Email address |
password | string | yes | Password |
thirtyDaysLogin | boolean | no | Token valid for 30 days (default: 24h) |
Example:
curl -X POST https://api.radioreg.net/user/login \
-H "Content-Type: application/json" \
-d '{
"email": "optischa@example.com",
"password": "MyPassword1!",
"thirtyDaysLogin": false
}'Response (200):
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}Use the access_token as a Bearer token for all protected endpoints.
Request Password Reset
POST /user/requestPasswordChangeSends a password reset email. No auth required.
Rate Limit: 5 requests per minute.
Request Body:
{
"email": "optischa@example.com"
}Example:
curl -X POST https://api.radioreg.net/user/requestPasswordChange \
-H "Content-Type: application/json" \
-d '{"email": "optischa@example.com"}'Response (200):
{
"message": "forgetPassword.sendRequest"
}The API responds with
200even if the email address does not exist — to prevent enumeration.
Reset Password
PUT /user/resetPassword/:tokenResets the password using the token from the reset email. No auth required.
Parameters:
| Name | Type | Description |
|---|---|---|
token | string | Reset token from the email |
Request Body:
{
"password": "NewPassword1!"
}Example:
curl -X PUT https://api.radioreg.net/user/resetPassword/abc123... \
-H "Content-Type: application/json" \
-d '{"password": "NewPassword1!"}'Response (201):
{
"message": "resetPassword.successful"
}