import { openAsBlob } from "node:fs";
import { SyllableSDK } from "syllable-sdk";
const syllableSDK = new SyllableSDK({
apiKeyHeader: process.env["SYLLABLESDK_API_KEY_HEADER"] ?? "",
});
async function run() {
const result = await syllableSDK.organizations.create({
logo: await openAsBlob("example.file"),
displayName: "My Great Org",
description: "An organization that does great things with agentic AI",
domains: "mygreatorg.com,mygreatorg.org",
samlProviderId: "saml.syllablesso",
});
console.log(result);
}
run();import os
from syllable_sdk import SyllableSDK
with SyllableSDK(
api_key_header=os.getenv("SYLLABLESDK_API_KEY_HEADER", ""),
) as ss_client:
res = ss_client.organizations.create(request={
"logo": {
"file_name": "example.file",
"content": open("example.file", "rb"),
},
"display_name": "My Great Org",
"description": "An organization that does great things with agentic AI",
"domains": "mygreatorg.com,mygreatorg.org",
"saml_provider_id": "saml.syllablesso",
})
# Handle response
print(res)curl --request POST \
--url https://api.syllable.cloud/api/v1/organizations/ \
--header 'Content-Type: multipart/form-data' \
--header 'Syllable-API-Key: <api-key>' \
--form logo='@example-file' \
--form 'display_name=<string>' \
--form 'description=An organization that does great things with agentic AI' \
--form 'domains=mygreatorg.com,mygreatorg.org' \
--form saml_provider_id=saml.syllablessoconst form = new FormData();
form.append('logo', '<string>');
form.append('display_name', '<string>');
form.append('description', 'An organization that does great things with agentic AI');
form.append('domains', 'mygreatorg.com,mygreatorg.org');
form.append('saml_provider_id', 'saml.syllablesso');
const options = {method: 'POST', headers: {'Syllable-API-Key': '<api-key>'}};
options.body = form;
fetch('https://api.syllable.cloud/api/v1/organizations/', 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.syllable.cloud/api/v1/organizations/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"display_name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nAn organization that does great things with agentic AI\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domains\"\r\n\r\nmygreatorg.com,mygreatorg.org\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"saml_provider_id\"\r\n\r\nsaml.syllablesso\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data; boundary=---011000010111000001101001",
"Syllable-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.syllable.cloud/api/v1/organizations/"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"display_name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nAn organization that does great things with agentic AI\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domains\"\r\n\r\nmygreatorg.com,mygreatorg.org\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"saml_provider_id\"\r\n\r\nsaml.syllablesso\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Syllable-API-Key", "<api-key>")
req.Header.Add("Content-Type", "multipart/form-data; boundary=---011000010111000001101001")
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.syllable.cloud/api/v1/organizations/")
.header("Syllable-API-Key", "<api-key>")
.header("Content-Type", "multipart/form-data; boundary=---011000010111000001101001")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"display_name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nAn organization that does great things with agentic AI\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domains\"\r\n\r\nmygreatorg.com,mygreatorg.org\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"saml_provider_id\"\r\n\r\nsaml.syllablesso\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.syllable.cloud/api/v1/organizations/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Syllable-API-Key"] = '<api-key>'
request["Content-Type"] = 'multipart/form-data; boundary=---011000010111000001101001'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"display_name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nAn organization that does great things with agentic AI\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domains\"\r\n\r\nmygreatorg.com,mygreatorg.org\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"saml_provider_id\"\r\n\r\nsaml.syllablesso\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"display_name": "<string>",
"id": 123,
"name": "<string>",
"last_updated": "2023-11-07T05:31:56Z",
"description": "An organization that does great things with agentic AI.",
"domains": "mygreatorg.com,myothergreatorg.org",
"saml_provider_id": "saml.syllablesso",
"last_updated_comments": "Updated to add an additional domain",
"slug": "my-great-org",
"last_updated_by": "<string>",
"logo_url": "https://image.png"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Create Organization
Create a new organization.
import { openAsBlob } from "node:fs";
import { SyllableSDK } from "syllable-sdk";
const syllableSDK = new SyllableSDK({
apiKeyHeader: process.env["SYLLABLESDK_API_KEY_HEADER"] ?? "",
});
async function run() {
const result = await syllableSDK.organizations.create({
logo: await openAsBlob("example.file"),
displayName: "My Great Org",
description: "An organization that does great things with agentic AI",
domains: "mygreatorg.com,mygreatorg.org",
samlProviderId: "saml.syllablesso",
});
console.log(result);
}
run();import os
from syllable_sdk import SyllableSDK
with SyllableSDK(
api_key_header=os.getenv("SYLLABLESDK_API_KEY_HEADER", ""),
) as ss_client:
res = ss_client.organizations.create(request={
"logo": {
"file_name": "example.file",
"content": open("example.file", "rb"),
},
"display_name": "My Great Org",
"description": "An organization that does great things with agentic AI",
"domains": "mygreatorg.com,mygreatorg.org",
"saml_provider_id": "saml.syllablesso",
})
# Handle response
print(res)curl --request POST \
--url https://api.syllable.cloud/api/v1/organizations/ \
--header 'Content-Type: multipart/form-data' \
--header 'Syllable-API-Key: <api-key>' \
--form logo='@example-file' \
--form 'display_name=<string>' \
--form 'description=An organization that does great things with agentic AI' \
--form 'domains=mygreatorg.com,mygreatorg.org' \
--form saml_provider_id=saml.syllablessoconst form = new FormData();
form.append('logo', '<string>');
form.append('display_name', '<string>');
form.append('description', 'An organization that does great things with agentic AI');
form.append('domains', 'mygreatorg.com,mygreatorg.org');
form.append('saml_provider_id', 'saml.syllablesso');
const options = {method: 'POST', headers: {'Syllable-API-Key': '<api-key>'}};
options.body = form;
fetch('https://api.syllable.cloud/api/v1/organizations/', 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.syllable.cloud/api/v1/organizations/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"display_name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nAn organization that does great things with agentic AI\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domains\"\r\n\r\nmygreatorg.com,mygreatorg.org\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"saml_provider_id\"\r\n\r\nsaml.syllablesso\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data; boundary=---011000010111000001101001",
"Syllable-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.syllable.cloud/api/v1/organizations/"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"display_name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nAn organization that does great things with agentic AI\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domains\"\r\n\r\nmygreatorg.com,mygreatorg.org\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"saml_provider_id\"\r\n\r\nsaml.syllablesso\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Syllable-API-Key", "<api-key>")
req.Header.Add("Content-Type", "multipart/form-data; boundary=---011000010111000001101001")
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.syllable.cloud/api/v1/organizations/")
.header("Syllable-API-Key", "<api-key>")
.header("Content-Type", "multipart/form-data; boundary=---011000010111000001101001")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"display_name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nAn organization that does great things with agentic AI\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domains\"\r\n\r\nmygreatorg.com,mygreatorg.org\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"saml_provider_id\"\r\n\r\nsaml.syllablesso\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.syllable.cloud/api/v1/organizations/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Syllable-API-Key"] = '<api-key>'
request["Content-Type"] = 'multipart/form-data; boundary=---011000010111000001101001'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"display_name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nAn organization that does great things with agentic AI\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domains\"\r\n\r\nmygreatorg.com,mygreatorg.org\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"saml_provider_id\"\r\n\r\nsaml.syllablesso\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"display_name": "<string>",
"id": 123,
"name": "<string>",
"last_updated": "2023-11-07T05:31:56Z",
"description": "An organization that does great things with agentic AI.",
"domains": "mygreatorg.com,myothergreatorg.org",
"saml_provider_id": "saml.syllablesso",
"last_updated_comments": "Updated to add an additional domain",
"slug": "my-great-org",
"last_updated_by": "<string>",
"logo_url": "https://image.png"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Body
The organization logo image file to upload. Must be a PNG file and 120x120 pixels.
The human-readable display name of the organization
"My Great Org"
Description of the organization
"An organization that does great things with agentic AI"
Comma-delimited list of domains that users at the organization may have in their email addresses
"mygreatorg.com,mygreatorg.org"
SAML provider ID for user authentication
"saml.syllablesso"
Response
Successful Response
The human-readable display name of the organization.
"My Great Org"
The internal ID of the organization.
1
Unique, non-human-readable hash for the organization
The timestamp of the most recent update to the organization
Description of the organization.
"An organization that does great things with agentic AI."
Comma-delimited list of domains that users at the organization may have in their email addresses.
"mygreatorg.com,myothergreatorg.org"
SAML provider ID for user authentication
"saml.syllablesso"
Comments for the most recent edit to the organization.
"Updated to add an additional domain"
The slug of the organization used for URLs in the Console UI. Null until slug backfill has been run.
"my-great-org"
The email of the user who most recently updated the organization
CDN URL. The org will always have a logo, but this value will be null on a response to an update where no logo was provided on the request
"https://image.png"

