Sign Up
curl --request POST \
--url https://api.replyke.com/api/v6/:projectId/auth/sign-up \
--header 'Content-Type: application/json' \
--data '
{
"email": "<string>",
"password": "<string>",
"name": "<string>",
"username": "<string>",
"avatar": "<string>",
"bio": "<string>",
"location": {},
"birthdate": "<string>",
"metadata": {},
"secureMetadata": {}
}
'import requests
url = "https://api.replyke.com/api/v6/:projectId/auth/sign-up"
payload = {
"email": "<string>",
"password": "<string>",
"name": "<string>",
"username": "<string>",
"avatar": "<string>",
"bio": "<string>",
"location": {},
"birthdate": "<string>",
"metadata": {},
"secureMetadata": {}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
email: '<string>',
password: '<string>',
name: '<string>',
username: '<string>',
avatar: '<string>',
bio: '<string>',
location: {},
birthdate: '<string>',
metadata: {},
secureMetadata: {}
})
};
fetch('https://api.replyke.com/api/v6/:projectId/auth/sign-up', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.replyke.com/api/v6/:projectId/auth/sign-up",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => '<string>',
'password' => '<string>',
'name' => '<string>',
'username' => '<string>',
'avatar' => '<string>',
'bio' => '<string>',
'location' => [
],
'birthdate' => '<string>',
'metadata' => [
],
'secureMetadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.replyke.com/api/v6/:projectId/auth/sign-up"
payload := strings.NewReader("{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"name\": \"<string>\",\n \"username\": \"<string>\",\n \"avatar\": \"<string>\",\n \"bio\": \"<string>\",\n \"location\": {},\n \"birthdate\": \"<string>\",\n \"metadata\": {},\n \"secureMetadata\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.replyke.com/api/v6/:projectId/auth/sign-up")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"name\": \"<string>\",\n \"username\": \"<string>\",\n \"avatar\": \"<string>\",\n \"bio\": \"<string>\",\n \"location\": {},\n \"birthdate\": \"<string>\",\n \"metadata\": {},\n \"secureMetadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.replyke.com/api/v6/:projectId/auth/sign-up")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"name\": \"<string>\",\n \"username\": \"<string>\",\n \"avatar\": \"<string>\",\n \"bio\": \"<string>\",\n \"location\": {},\n \"birthdate\": \"<string>\",\n \"metadata\": {},\n \"secureMetadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"accessToken": "<string>",
"refreshToken": "<string>",
"user": {
"id": "<string>",
"email": "<string>",
"username": "<string>",
"name": "<string>",
"avatar": "<string>",
"bio": "<string>",
"location": {
"type": "<string>",
"coordinates": [
123
]
},
"birthdate": "<string>",
"metadata": {},
"suspensions": [
{}
],
"reputation": 123,
"createdAt": "<string>",
"updatedAt": "<string>"
}
}Auth Endpoints
Sign Up
Register a new user with credentials and optional profile data
POST
/
:projectId
/
auth
/
sign-up
Sign Up
curl --request POST \
--url https://api.replyke.com/api/v6/:projectId/auth/sign-up \
--header 'Content-Type: application/json' \
--data '
{
"email": "<string>",
"password": "<string>",
"name": "<string>",
"username": "<string>",
"avatar": "<string>",
"bio": "<string>",
"location": {},
"birthdate": "<string>",
"metadata": {},
"secureMetadata": {}
}
'import requests
url = "https://api.replyke.com/api/v6/:projectId/auth/sign-up"
payload = {
"email": "<string>",
"password": "<string>",
"name": "<string>",
"username": "<string>",
"avatar": "<string>",
"bio": "<string>",
"location": {},
"birthdate": "<string>",
"metadata": {},
"secureMetadata": {}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
email: '<string>',
password: '<string>',
name: '<string>',
username: '<string>',
avatar: '<string>',
bio: '<string>',
location: {},
birthdate: '<string>',
metadata: {},
secureMetadata: {}
})
};
fetch('https://api.replyke.com/api/v6/:projectId/auth/sign-up', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.replyke.com/api/v6/:projectId/auth/sign-up",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => '<string>',
'password' => '<string>',
'name' => '<string>',
'username' => '<string>',
'avatar' => '<string>',
'bio' => '<string>',
'location' => [
],
'birthdate' => '<string>',
'metadata' => [
],
'secureMetadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.replyke.com/api/v6/:projectId/auth/sign-up"
payload := strings.NewReader("{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"name\": \"<string>\",\n \"username\": \"<string>\",\n \"avatar\": \"<string>\",\n \"bio\": \"<string>\",\n \"location\": {},\n \"birthdate\": \"<string>\",\n \"metadata\": {},\n \"secureMetadata\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.replyke.com/api/v6/:projectId/auth/sign-up")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"name\": \"<string>\",\n \"username\": \"<string>\",\n \"avatar\": \"<string>\",\n \"bio\": \"<string>\",\n \"location\": {},\n \"birthdate\": \"<string>\",\n \"metadata\": {},\n \"secureMetadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.replyke.com/api/v6/:projectId/auth/sign-up")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"name\": \"<string>\",\n \"username\": \"<string>\",\n \"avatar\": \"<string>\",\n \"bio\": \"<string>\",\n \"location\": {},\n \"birthdate\": \"<string>\",\n \"metadata\": {},\n \"secureMetadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"accessToken": "<string>",
"refreshToken": "<string>",
"user": {
"id": "<string>",
"email": "<string>",
"username": "<string>",
"name": "<string>",
"avatar": "<string>",
"bio": "<string>",
"location": {
"type": "<string>",
"coordinates": [
123
]
},
"birthdate": "<string>",
"metadata": {},
"suspensions": [
{}
],
"reputation": 123,
"createdAt": "<string>",
"updatedAt": "<string>"
}
}Register a new user by providing required credentials and optional profile data. Returns access and refresh tokens along with user data.
Body Parameters
string
required
User’s email address
string
required
User’s password
string
Full name of the user
string
Unique username (will be automatically lowercased)
string
URL to the user’s avatar image
string
Short biography or description
object
Geolocation object with
longitude and latitude propertiesstring
User’s birthdate in ISO 8601 format
object
Custom public metadata that will be returned in API responses
object
Custom secure metadata (not returned to client, server-side only)
Response
boolean
Indicates whether the registration was successful
string
JWT access token for authenticating API requests
string
JWT refresh token for obtaining new access tokens
User Object
The newly created user object
Show properties
Show properties
string
Unique user identifier
string
User’s email address
string
User’s unique username
string
User’s full name
string
URL to user’s avatar image
string
User’s biography
string
User’s birthdate in ISO 8601 format
object
Custom public metadata
array
Array of active suspensions (empty for new users)
number
User’s reputation score (starts at 0)
string
Account creation timestamp
string
Last update timestamp
Error Responses
Missing Required Fields - 400 Bad Request
Missing Required Fields - 400 Bad Request
{
"error": "Missing required fields",
"code": "auth/missing-fields"
}
Server Error - 500 Internal Server Error
Server Error - 500 Internal Server Error
{
"error": "Internal server error",
"code": "auth/server-error",
"details": "<Error message>"
}
Notes
- Sets an HttpOnly cookie named
replyke-refresh-jwtwith the refresh token. - Access token is returned in the response body.
- Sensitive user data is excluded in the response.
- A webhook is called before user creation to allow project-specific validation.
⌘I

