Add a user to a subaccount
curl --request POST \
--url https://api.assistable.ai/v3/subaccounts/{id}/users \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "[email protected]",
"password": "<string>",
"name": "<string>"
}
'import requests
url = "https://api.assistable.ai/v3/subaccounts/{id}/users"
payload = {
"email": "[email protected]",
"password": "<string>",
"name": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: '[email protected]', password: '<string>', name: '<string>'})
};
fetch('https://api.assistable.ai/v3/subaccounts/{id}/users', 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.assistable.ai/v3/subaccounts/{id}/users",
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' => '[email protected]',
'password' => '<string>',
'name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.assistable.ai/v3/subaccounts/{id}/users"
payload := strings.NewReader("{\n \"email\": \"[email protected]\",\n \"password\": \"<string>\",\n \"name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.assistable.ai/v3/subaccounts/{id}/users")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"[email protected]\",\n \"password\": \"<string>\",\n \"name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.assistable.ai/v3/subaccounts/{id}/users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"[email protected]\",\n \"password\": \"<string>\",\n \"name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"userId": "<string>",
"subAccountId": "<string>",
"email": "<string>",
"role": "<string>",
"created": true
},
"request_id": "<string>",
"error": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}Subaccounts
Add a user to a subaccount
Requires scope subaccounts:update.
POST
/
v3
/
subaccounts
/
{id}
/
users
Add a user to a subaccount
curl --request POST \
--url https://api.assistable.ai/v3/subaccounts/{id}/users \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "[email protected]",
"password": "<string>",
"name": "<string>"
}
'import requests
url = "https://api.assistable.ai/v3/subaccounts/{id}/users"
payload = {
"email": "[email protected]",
"password": "<string>",
"name": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: '[email protected]', password: '<string>', name: '<string>'})
};
fetch('https://api.assistable.ai/v3/subaccounts/{id}/users', 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.assistable.ai/v3/subaccounts/{id}/users",
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' => '[email protected]',
'password' => '<string>',
'name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.assistable.ai/v3/subaccounts/{id}/users"
payload := strings.NewReader("{\n \"email\": \"[email protected]\",\n \"password\": \"<string>\",\n \"name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.assistable.ai/v3/subaccounts/{id}/users")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"[email protected]\",\n \"password\": \"<string>\",\n \"name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.assistable.ai/v3/subaccounts/{id}/users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"[email protected]\",\n \"password\": \"<string>\",\n \"name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"userId": "<string>",
"subAccountId": "<string>",
"email": "<string>",
"role": "<string>",
"created": true
},
"request_id": "<string>",
"error": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}Authorizations
Your v3 API key, e.g. ask_live_…
Path Parameters
Minimum string length:
1Body
application/json
User email — the login identity.
Pattern:
^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$Plain password, stored as a bcrypt hash (cost 12) — never persisted in plain text. If the email already belongs to an existing user, that user is linked to the subaccount and this password is IGNORED (an existing password is never changed by this endpoint).
Minimum string length:
8Display name. Defaults to the email local-part.
Subaccount role. Defaults to MEMBER.
Available options:
OWNER, ADMIN, MEMBER, VIEWER ⌘I
