Consumer Signup
curl --request POST \
--url https://api.truthlocks.com/v1/consumer/signup \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"email": "jsmith@example.com",
"password": "<string>",
"name": "<string>",
"signup_type": "<string>",
"company_name": "<string>"
}
'import requests
url = "https://api.truthlocks.com/v1/consumer/signup"
payload = {
"email": "jsmith@example.com",
"password": "<string>",
"name": "<string>",
"signup_type": "<string>",
"company_name": "<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({
email: 'jsmith@example.com',
password: '<string>',
name: '<string>',
signup_type: '<string>',
company_name: '<string>'
})
};
fetch('https://api.truthlocks.com/v1/consumer/signup', 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.truthlocks.com/v1/consumer/signup",
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' => 'jsmith@example.com',
'password' => '<string>',
'name' => '<string>',
'signup_type' => '<string>',
'company_name' => '<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.truthlocks.com/v1/consumer/signup"
payload := strings.NewReader("{\n \"email\": \"jsmith@example.com\",\n \"password\": \"<string>\",\n \"name\": \"<string>\",\n \"signup_type\": \"<string>\",\n \"company_name\": \"<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.truthlocks.com/v1/consumer/signup")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"jsmith@example.com\",\n \"password\": \"<string>\",\n \"name\": \"<string>\",\n \"signup_type\": \"<string>\",\n \"company_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.truthlocks.com/v1/consumer/signup")
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 \"email\": \"jsmith@example.com\",\n \"password\": \"<string>\",\n \"name\": \"<string>\",\n \"signup_type\": \"<string>\",\n \"company_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tenant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"session_token": "<string>"
}Consumer (B2C)
Consumer Signup
Creates a new consumer account. No authentication required.
POST
/
v1
/
consumer
/
signup
Consumer Signup
curl --request POST \
--url https://api.truthlocks.com/v1/consumer/signup \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"email": "jsmith@example.com",
"password": "<string>",
"name": "<string>",
"signup_type": "<string>",
"company_name": "<string>"
}
'import requests
url = "https://api.truthlocks.com/v1/consumer/signup"
payload = {
"email": "jsmith@example.com",
"password": "<string>",
"name": "<string>",
"signup_type": "<string>",
"company_name": "<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({
email: 'jsmith@example.com',
password: '<string>',
name: '<string>',
signup_type: '<string>',
company_name: '<string>'
})
};
fetch('https://api.truthlocks.com/v1/consumer/signup', 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.truthlocks.com/v1/consumer/signup",
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' => 'jsmith@example.com',
'password' => '<string>',
'name' => '<string>',
'signup_type' => '<string>',
'company_name' => '<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.truthlocks.com/v1/consumer/signup"
payload := strings.NewReader("{\n \"email\": \"jsmith@example.com\",\n \"password\": \"<string>\",\n \"name\": \"<string>\",\n \"signup_type\": \"<string>\",\n \"company_name\": \"<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.truthlocks.com/v1/consumer/signup")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"jsmith@example.com\",\n \"password\": \"<string>\",\n \"name\": \"<string>\",\n \"signup_type\": \"<string>\",\n \"company_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.truthlocks.com/v1/consumer/signup")
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 \"email\": \"jsmith@example.com\",\n \"password\": \"<string>\",\n \"name\": \"<string>\",\n \"signup_type\": \"<string>\",\n \"company_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tenant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"session_token": "<string>"
}Register a new consumer (B2C) account. Creates a personal tenant, organization, and user. The company_name field is optional — if omitted, it defaults to the user’s name + ‘s Workspace’. After signup, an email verification link is sent. Pending inbox deliveries (credentials minted before signup) are automatically claimed.
Parameters
string
required
Consumer’s email address
string
required
Password (minimum 10 characters)
string
Full name. Defaults to email prefix if omitted.
string
Organization name. Defaults to ‘Name’s Workspace’ or ‘Personal’.
string
ISO 3166-1 alpha-2 country code for region assignment.
Responses
Authorizations
API key for machine-to-machine authentication
Body
application/json
⌘I

