curl --request POST \
--url https://openapi.enginy.ai/v1/organization/clients \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"companyWebsite": "<string>",
"companyLinkedinUrl": "<string>",
"initialMonthlyCredits": 500000000,
"initialIdentities": 5000
}
'import requests
url = "https://openapi.enginy.ai/v1/organization/clients"
payload = {
"name": "<string>",
"companyWebsite": "<string>",
"companyLinkedinUrl": "<string>",
"initialMonthlyCredits": 500000000,
"initialIdentities": 5000
}
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({
name: '<string>',
companyWebsite: '<string>',
companyLinkedinUrl: '<string>',
initialMonthlyCredits: 500000000,
initialIdentities: 5000
})
};
fetch('https://openapi.enginy.ai/v1/organization/clients', 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://openapi.enginy.ai/v1/organization/clients",
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([
'name' => '<string>',
'companyWebsite' => '<string>',
'companyLinkedinUrl' => '<string>',
'initialMonthlyCredits' => 500000000,
'initialIdentities' => 5000
]),
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://openapi.enginy.ai/v1/organization/clients"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"companyWebsite\": \"<string>\",\n \"companyLinkedinUrl\": \"<string>\",\n \"initialMonthlyCredits\": 500000000,\n \"initialIdentities\": 5000\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://openapi.enginy.ai/v1/organization/clients")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"companyWebsite\": \"<string>\",\n \"companyLinkedinUrl\": \"<string>\",\n \"initialMonthlyCredits\": 500000000,\n \"initialIdentities\": 5000\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://openapi.enginy.ai/v1/organization/clients")
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 \"name\": \"<string>\",\n \"companyWebsite\": \"<string>\",\n \"companyLinkedinUrl\": \"<string>\",\n \"initialMonthlyCredits\": 500000000,\n \"initialIdentities\": 5000\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "<string>",
"data": {
"clientId": 123,
"name": "<string>"
}
}Create organization client
Create a new client workspace inside the organization, optionally with initial monthly credits and identity slots taken from the organization pools. The new workspace counts against the organization’s client quota, and the API key creator becomes its first admin. The new client is Sales-led billed on the organization deal. With companyWebsite the workspace logo is set from it. The AI playbook is not filled automatically; fill it with PUT /v1/ai-playbook using a key of the new workspace, or in the app. Requires the API key creator (or the connected MCP user) to be an ORGANIZATION_ADMIN of the organization the key’s workspace belongs to. For organizations (agencies, resellers, white-label partners, enterprises) and their client workspaces only. The organization role is checked first: a caller without one is refused with 403 (ORGANIZATION_READ_FORBIDDEN on reads, ORGANIZATION_ADMIN_FORBIDDEN on writes), and a caller with one whose workspace is not in a live organization gets 404 NOT_IN_ORGANIZATION.
Required scope:
WORKSPACE_WRITERate limit: 10 requests per minute
curl --request POST \
--url https://openapi.enginy.ai/v1/organization/clients \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"companyWebsite": "<string>",
"companyLinkedinUrl": "<string>",
"initialMonthlyCredits": 500000000,
"initialIdentities": 5000
}
'import requests
url = "https://openapi.enginy.ai/v1/organization/clients"
payload = {
"name": "<string>",
"companyWebsite": "<string>",
"companyLinkedinUrl": "<string>",
"initialMonthlyCredits": 500000000,
"initialIdentities": 5000
}
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({
name: '<string>',
companyWebsite: '<string>',
companyLinkedinUrl: '<string>',
initialMonthlyCredits: 500000000,
initialIdentities: 5000
})
};
fetch('https://openapi.enginy.ai/v1/organization/clients', 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://openapi.enginy.ai/v1/organization/clients",
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([
'name' => '<string>',
'companyWebsite' => '<string>',
'companyLinkedinUrl' => '<string>',
'initialMonthlyCredits' => 500000000,
'initialIdentities' => 5000
]),
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://openapi.enginy.ai/v1/organization/clients"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"companyWebsite\": \"<string>\",\n \"companyLinkedinUrl\": \"<string>\",\n \"initialMonthlyCredits\": 500000000,\n \"initialIdentities\": 5000\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://openapi.enginy.ai/v1/organization/clients")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"companyWebsite\": \"<string>\",\n \"companyLinkedinUrl\": \"<string>\",\n \"initialMonthlyCredits\": 500000000,\n \"initialIdentities\": 5000\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://openapi.enginy.ai/v1/organization/clients")
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 \"name\": \"<string>\",\n \"companyWebsite\": \"<string>\",\n \"companyLinkedinUrl\": \"<string>\",\n \"initialMonthlyCredits\": 500000000,\n \"initialIdentities\": 5000\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "<string>",
"data": {
"clientId": 123,
"name": "<string>"
}
}Authorizations
Body
The new client workspace name.
1 - 80The client's company website; sets the workspace logo.
255The client's LinkedIn company page.
255Monthly credits allocated from the organization pool.
0 <= x <= 1000000000Identity slots allocated from the organization pool.
0 <= x <= 10000