Accept a tenant invitation
curl --request POST \
--url https://api.example.com/accept-invite \
--header 'Content-Type: application/json' \
--data '
{
"workspace": "<string>",
"token": "<string>",
"password": "<string>",
"full_name": "<string>"
}
'import requests
url = "https://api.example.com/accept-invite"
payload = {
"workspace": "<string>",
"token": "<string>",
"password": "<string>",
"full_name": "<string>"
}
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({
workspace: '<string>',
token: '<string>',
password: '<string>',
full_name: '<string>'
})
};
fetch('https://api.example.com/accept-invite', 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.example.com/accept-invite",
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([
'workspace' => '<string>',
'token' => '<string>',
'password' => '<string>',
'full_name' => '<string>'
]),
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.example.com/accept-invite"
payload := strings.NewReader("{\n \"workspace\": \"<string>\",\n \"token\": \"<string>\",\n \"password\": \"<string>\",\n \"full_name\": \"<string>\"\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.example.com/accept-invite")
.header("Content-Type", "application/json")
.body("{\n \"workspace\": \"<string>\",\n \"token\": \"<string>\",\n \"password\": \"<string>\",\n \"full_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/accept-invite")
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 \"workspace\": \"<string>\",\n \"token\": \"<string>\",\n \"password\": \"<string>\",\n \"full_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workspace": "<string>",
"email": "<string>",
"full_name": "<string>",
"permissions": [
"<string>"
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Auth
Accept a tenant invitation
No auth required to call. Consumes a pending, unexpired TenantInvitation token scoped to the given workspace; 400 if the token is invalid or expired. Upserts the invited email into users (tenant schema) (creating the account, or reactivating and resetting the password on an existing one), assigns the invitation’s role profile, and marks the invitation accepted. Immediately logs the new user in via the same session-minting path as POST /login, setting cl_tenant_session and a fresh cl_csrf cookie.
POST
/
accept-invite
Accept a tenant invitation
curl --request POST \
--url https://api.example.com/accept-invite \
--header 'Content-Type: application/json' \
--data '
{
"workspace": "<string>",
"token": "<string>",
"password": "<string>",
"full_name": "<string>"
}
'import requests
url = "https://api.example.com/accept-invite"
payload = {
"workspace": "<string>",
"token": "<string>",
"password": "<string>",
"full_name": "<string>"
}
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({
workspace: '<string>',
token: '<string>',
password: '<string>',
full_name: '<string>'
})
};
fetch('https://api.example.com/accept-invite', 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.example.com/accept-invite",
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([
'workspace' => '<string>',
'token' => '<string>',
'password' => '<string>',
'full_name' => '<string>'
]),
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.example.com/accept-invite"
payload := strings.NewReader("{\n \"workspace\": \"<string>\",\n \"token\": \"<string>\",\n \"password\": \"<string>\",\n \"full_name\": \"<string>\"\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.example.com/accept-invite")
.header("Content-Type", "application/json")
.body("{\n \"workspace\": \"<string>\",\n \"token\": \"<string>\",\n \"password\": \"<string>\",\n \"full_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/accept-invite")
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 \"workspace\": \"<string>\",\n \"token\": \"<string>\",\n \"password\": \"<string>\",\n \"full_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workspace": "<string>",
"email": "<string>",
"full_name": "<string>",
"permissions": [
"<string>"
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}⌘I