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
User’s email address
User’s password
Full name of the user
Unique username (will be automatically lowercased)
URL to the user’s avatar image
Short biography or description
Geolocation object with
longitude and latitude propertiesUser’s birthdate in ISO 8601 format
Custom public metadata that will be returned in API responses
Custom secure metadata (not returned to client, server-side only)
Response
Indicates whether the registration was successful
JWT access token for authenticating API requests
JWT refresh token for obtaining new access tokens
The newly created user object
Show properties
Show properties
Unique user identifier
User’s email address
User’s unique username
User’s full name
URL to user’s avatar image
User’s biography
User’s birthdate in ISO 8601 format
Custom public metadata
Array of active suspensions (empty for new users)
User’s reputation score (starts at 0)
Account creation timestamp
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

