API Reference
Create Organisation
CreateOrganisation creates a new Organisation with the current user as the owner. A user can create as many Organisations as they like, but each has their own billing profile and must be on a paid plan to use certain features.
POST
/
organisations
Create Organisation
curl --request POST \
--url https://platform.versori.com/api/organisations/v1/organisations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"slug": "<string>",
"displayName": "<string>"
}
'import requests
url = "https://platform.versori.com/api/organisations/v1/organisations"
payload = {
"slug": "<string>",
"displayName": "<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({slug: '<string>', displayName: '<string>'})
};
fetch('https://platform.versori.com/api/organisations/v1/organisations', 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://platform.versori.com/api/organisations/v1/organisations",
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([
'slug' => '<string>',
'displayName' => '<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://platform.versori.com/api/organisations/v1/organisations"
payload := strings.NewReader("{\n \"slug\": \"<string>\",\n \"displayName\": \"<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://platform.versori.com/api/organisations/v1/organisations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"slug\": \"<string>\",\n \"displayName\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform.versori.com/api/organisations/v1/organisations")
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 \"slug\": \"<string>\",\n \"displayName\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"slug": "<string>",
"displayName": "<string>",
"owner": "<string>",
"billing": {
"platformId": "<string>",
"customerId": "<string>",
"billingEmail": "<string>",
"isSubscriptionActive": 123,
"billingPeriodStart": "2023-12-25",
"billingPeriodEnd": "2023-12-25",
"platformType": "<string>",
"subscriptionId": "<string>",
"recentSubscriptions": [
{
"id": "<string>",
"status": "active",
"rawData": "<unknown>"
}
],
"hasMoreSubscriptions": true,
"freeTrialEndDate": "2023-12-25",
"isBespoke": true,
"boardQuota": 123,
"hubBoardQuota": 123
},
"systemServiceAccountClientID": "<string>",
"plan": "<string>"
}{
"code": "<string>",
"message": "<string>",
"cause": "<string>"
}Authorizations
Body
application/json
Response
Created
SystemServiceAccountClientID is the client ID of the system service account for this Organisation. This is automatically created when the Organisation is created and is used by internal services which must authenticate on behalf of the Organisation. It cannot be deleted.
⌘I
Create Organisation
curl --request POST \
--url https://platform.versori.com/api/organisations/v1/organisations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"slug": "<string>",
"displayName": "<string>"
}
'import requests
url = "https://platform.versori.com/api/organisations/v1/organisations"
payload = {
"slug": "<string>",
"displayName": "<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({slug: '<string>', displayName: '<string>'})
};
fetch('https://platform.versori.com/api/organisations/v1/organisations', 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://platform.versori.com/api/organisations/v1/organisations",
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([
'slug' => '<string>',
'displayName' => '<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://platform.versori.com/api/organisations/v1/organisations"
payload := strings.NewReader("{\n \"slug\": \"<string>\",\n \"displayName\": \"<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://platform.versori.com/api/organisations/v1/organisations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"slug\": \"<string>\",\n \"displayName\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform.versori.com/api/organisations/v1/organisations")
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 \"slug\": \"<string>\",\n \"displayName\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"slug": "<string>",
"displayName": "<string>",
"owner": "<string>",
"billing": {
"platformId": "<string>",
"customerId": "<string>",
"billingEmail": "<string>",
"isSubscriptionActive": 123,
"billingPeriodStart": "2023-12-25",
"billingPeriodEnd": "2023-12-25",
"platformType": "<string>",
"subscriptionId": "<string>",
"recentSubscriptions": [
{
"id": "<string>",
"status": "active",
"rawData": "<unknown>"
}
],
"hasMoreSubscriptions": true,
"freeTrialEndDate": "2023-12-25",
"isBespoke": true,
"boardQuota": 123,
"hubBoardQuota": 123
},
"systemServiceAccountClientID": "<string>",
"plan": "<string>"
}{
"code": "<string>",
"message": "<string>",
"cause": "<string>"
}