curl --request PATCH \
--url https://api.engagefabric.com/tenants/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Acme Corporation Inc.",
"metadata": {
"industry": "SaaS",
"companySize": "100-200"
},
"isAlphaLocked": true
}
'import requests
url = "https://api.engagefabric.com/tenants/{id}"
payload = {
"name": "Acme Corporation Inc.",
"metadata": {
"industry": "SaaS",
"companySize": "100-200"
},
"isAlphaLocked": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Acme Corporation Inc.',
metadata: {industry: 'SaaS', companySize: '100-200'},
isAlphaLocked: true
})
};
fetch('https://api.engagefabric.com/tenants/{id}', 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.engagefabric.com/tenants/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Acme Corporation Inc.',
'metadata' => [
'industry' => 'SaaS',
'companySize' => '100-200'
],
'isAlphaLocked' => true
]),
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.engagefabric.com/tenants/{id}"
payload := strings.NewReader("{\n \"name\": \"Acme Corporation Inc.\",\n \"metadata\": {\n \"industry\": \"SaaS\",\n \"companySize\": \"100-200\"\n },\n \"isAlphaLocked\": true\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.engagefabric.com/tenants/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Acme Corporation Inc.\",\n \"metadata\": {\n \"industry\": \"SaaS\",\n \"companySize\": \"100-200\"\n },\n \"isAlphaLocked\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.engagefabric.com/tenants/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Acme Corporation Inc.\",\n \"metadata\": {\n \"industry\": \"SaaS\",\n \"companySize\": \"100-200\"\n },\n \"isAlphaLocked\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Acme Corporation",
"slug": "acme-corp",
"plan": "FREE",
"status": "ACTIVE",
"isActive": true,
"isAlphaLocked": true,
"onboardingStatus": "PENDING",
"alphaApprovalStatus": "PENDING",
"createdAt": "2025-01-15T10:30:00Z",
"updatedAt": "2025-01-15T10:30:00Z",
"alphaApprovedAt": "2025-01-15T10:30:00Z",
"alphaApprovedBy": "admin@engagefabric.com",
"alphaRejectionReason": "Not a good fit for alpha program",
"alphaApplicationNote": "We are building a gamification platform",
"metadata": {
"industry": "SaaS"
},
"deletedAt": null,
"_count": {
"projects": 3,
"members": 5
}
}Update a tenant
curl --request PATCH \
--url https://api.engagefabric.com/tenants/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Acme Corporation Inc.",
"metadata": {
"industry": "SaaS",
"companySize": "100-200"
},
"isAlphaLocked": true
}
'import requests
url = "https://api.engagefabric.com/tenants/{id}"
payload = {
"name": "Acme Corporation Inc.",
"metadata": {
"industry": "SaaS",
"companySize": "100-200"
},
"isAlphaLocked": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Acme Corporation Inc.',
metadata: {industry: 'SaaS', companySize: '100-200'},
isAlphaLocked: true
})
};
fetch('https://api.engagefabric.com/tenants/{id}', 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.engagefabric.com/tenants/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Acme Corporation Inc.',
'metadata' => [
'industry' => 'SaaS',
'companySize' => '100-200'
],
'isAlphaLocked' => true
]),
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.engagefabric.com/tenants/{id}"
payload := strings.NewReader("{\n \"name\": \"Acme Corporation Inc.\",\n \"metadata\": {\n \"industry\": \"SaaS\",\n \"companySize\": \"100-200\"\n },\n \"isAlphaLocked\": true\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.engagefabric.com/tenants/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Acme Corporation Inc.\",\n \"metadata\": {\n \"industry\": \"SaaS\",\n \"companySize\": \"100-200\"\n },\n \"isAlphaLocked\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.engagefabric.com/tenants/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Acme Corporation Inc.\",\n \"metadata\": {\n \"industry\": \"SaaS\",\n \"companySize\": \"100-200\"\n },\n \"isAlphaLocked\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Acme Corporation",
"slug": "acme-corp",
"plan": "FREE",
"status": "ACTIVE",
"isActive": true,
"isAlphaLocked": true,
"onboardingStatus": "PENDING",
"alphaApprovalStatus": "PENDING",
"createdAt": "2025-01-15T10:30:00Z",
"updatedAt": "2025-01-15T10:30:00Z",
"alphaApprovedAt": "2025-01-15T10:30:00Z",
"alphaApprovedBy": "admin@engagefabric.com",
"alphaRejectionReason": "Not a good fit for alpha program",
"alphaApplicationNote": "We are building a gamification platform",
"metadata": {
"industry": "SaaS"
},
"deletedAt": null,
"_count": {
"projects": 3,
"members": 5
}
}Authorizations
JWT token for admin console authentication
Path Parameters
Tenant UUID
Body
Tenant name
2 - 255"Acme Corporation Inc."
Subscription plan
FREE, STARTER, PROFESSIONAL, ENTERPRISE Tenant status
ACTIVE, SUSPENDED, CANCELLED Additional metadata (JSON object)
{ "industry": "SaaS", "companySize": "100-200" }
Alpha lock status (cannot be changed via API - admin only)
true
Response
Tenant updated successfully
Unique tenant identifier
"123e4567-e89b-12d3-a456-426614174000"
Tenant name
"Acme Corporation"
URL-friendly slug
"acme-corp"
Subscription plan
FREE, STARTER, PROFESSIONAL, ENTERPRISE "FREE"
Tenant status
ACTIVE, SUSPENDED, CANCELLED "ACTIVE"
Whether the tenant is active (derived from status)
true
Whether tenant is locked to FREE tier during alpha
true
Onboarding progress status
PENDING, EMAIL_VERIFIED, PROJECT_CREATED, FIRST_EVENT_SENT, COMPLETED "PENDING"
Alpha approval status
PENDING, APPROVED, REJECTED "PENDING"
Creation timestamp
"2025-01-15T10:30:00Z"
Last update timestamp
"2025-01-15T10:30:00Z"
When the tenant was approved for alpha
"2025-01-15T10:30:00Z"
Email of super admin who approved
"admin@engagefabric.com"
Reason for rejection if rejected
"Not a good fit for alpha program"
Application note from user
"We are building a gamification platform"
Additional metadata
{ "industry": "SaaS" }
Soft deletion timestamp
null
Count of related entities
{ "projects": 3, "members": 5 }
