Register
curl --request POST \
--url https://api.surefeedback.com/api/v1/auth/register \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"password": "<string>",
"invitation_token": "<string>",
"signup_source": "<string>"
}
'import requests
url = "https://api.surefeedback.com/api/v1/auth/register"
payload = {
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"password": "<string>",
"invitation_token": "<string>",
"signup_source": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
first_name: '<string>',
last_name: '<string>',
email: '<string>',
password: '<string>',
invitation_token: '<string>',
signup_source: '<string>'
})
};
fetch('https://api.surefeedback.com/api/v1/auth/register', 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.surefeedback.com/api/v1/auth/register",
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([
'first_name' => '<string>',
'last_name' => '<string>',
'email' => '<string>',
'password' => '<string>',
'invitation_token' => '<string>',
'signup_source' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.surefeedback.com/api/v1/auth/register"
payload := strings.NewReader("{\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"invitation_token\": \"<string>\",\n \"signup_source\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.surefeedback.com/api/v1/auth/register")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"invitation_token\": \"<string>\",\n \"signup_source\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.surefeedback.com/api/v1/auth/register")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"invitation_token\": \"<string>\",\n \"signup_source\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"user": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "[email protected]",
"first_name": "Jane",
"last_name": "Smith"
},
"organization": {
"id": "660e8400-e29b-41d4-a716-446655440001",
"name": "Jane's Organization"
}
}
}
{
"success": false,
"message": "Validation failed",
"errors": {
"email": ["The email has already been taken."]
}
}
Authentication
Register
Create a new user account.
POST
/
auth
/
register
Register
curl --request POST \
--url https://api.surefeedback.com/api/v1/auth/register \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"password": "<string>",
"invitation_token": "<string>",
"signup_source": "<string>"
}
'import requests
url = "https://api.surefeedback.com/api/v1/auth/register"
payload = {
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"password": "<string>",
"invitation_token": "<string>",
"signup_source": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
first_name: '<string>',
last_name: '<string>',
email: '<string>',
password: '<string>',
invitation_token: '<string>',
signup_source: '<string>'
})
};
fetch('https://api.surefeedback.com/api/v1/auth/register', 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.surefeedback.com/api/v1/auth/register",
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([
'first_name' => '<string>',
'last_name' => '<string>',
'email' => '<string>',
'password' => '<string>',
'invitation_token' => '<string>',
'signup_source' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.surefeedback.com/api/v1/auth/register"
payload := strings.NewReader("{\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"invitation_token\": \"<string>\",\n \"signup_source\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.surefeedback.com/api/v1/auth/register")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"invitation_token\": \"<string>\",\n \"signup_source\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.surefeedback.com/api/v1/auth/register")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"invitation_token\": \"<string>\",\n \"signup_source\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"user": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "[email protected]",
"first_name": "Jane",
"last_name": "Smith"
},
"organization": {
"id": "660e8400-e29b-41d4-a716-446655440001",
"name": "Jane's Organization"
}
}
}
{
"success": false,
"message": "Validation failed",
"errors": {
"email": ["The email has already been taken."]
}
}
Creates a new user account and returns a JWT token. An organization and default project are automatically created for the new user.
Request body
string
required
User’s first name. Max 100 characters.
string
User’s last name. Max 100 characters.
string
required
Valid email address. Max 255 characters.
string
required
Password. Minimum 8 characters.
string
Invitation token if registering via an invite link.
string
Source of the signup (e.g.,
widget, invitation). Max 100 characters.Response
boolean
true on success.object
{
"success": true,
"data": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"user": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "[email protected]",
"first_name": "Jane",
"last_name": "Smith"
},
"organization": {
"id": "660e8400-e29b-41d4-a716-446655440001",
"name": "Jane's Organization"
}
}
}
{
"success": false,
"message": "Validation failed",
"errors": {
"email": ["The email has already been taken."]
}
}
Was this page helpful?
⌘I