TENANTS
Tenants are a way to group calendars together. Each tenant can have many calendars.
This page specifies commands for working with tenants. Each section shows language-specific SDK calls first (Ruby, PHP, JavaScript, Elixir), followed by the raw REST request/response.
Conventions used below:
- All SDKs expose a
Tenantsnamespace/module/class.- Pagination uses
limitandoffset(defaults:limit=25,offset=0).- Timestamps are ISO 8601 (UTC).
LIST_TENANTS
Returns tenants ordered by name ascending.
Ruby
# Optional pagination
SD::Tenants.list(limit: 25, offset: 0)
# => [{ id: "00000000-0000-0000-0000-000000000000", name: "Hotel Royal" }]
PHP
<?php
$tenants = \SweetDate\Tenant::list(25, 0);
print_r($tenants);
// => [ ["id" => "00000000-0000-0000-0000-000000000000", "name" => "Hotel Royal"] ]
JavaScript
const tenants = await SD.Tenants.list({ limit: 25, offset: 0 });
console.log(tenants);
// => [{ id: "00000000-0000-0000-0000-000000000000", name: "Hotel Royal" }]
Elixir
{:ok, tenants} = SD.Tenants.list(limit: 25, offset: 0)
IO.inspect(tenants)
# => [%{id: "00000000-0000-0000-0000-000000000000", name: "Hotel Royal"}]
Request
GET /api/v1/tenants?limit=25&offset=0
Response
{
"status": "ok",
"tenants": [
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "Alpha",
"account_id": "acc-123",
"inserted_at": "2025-08-18T09:20:00Z",
"updated_at": "2025-08-19T10:15:00Z"
}
],
"limit": 25,
"offset": 0
}
Error
{ "status": "error", "message": "..." }
CREATE
Create a new tenant.
Ruby
SD::Tenants.create(name: "Building 4")
# => { id: "00000000-0000-0000-0000-000000000000", name: "Building 4" }
PHP
<?php
$tenant = \SweetDate\Tenants::create(["name" => "Building 4"]);
print_r($tenant);
JavaScript
const tenant = await SD.Tenants.create({ name: "Building 4" });
console.log(tenant);
Elixir
{:ok, tenant} = SD.Tenants.create(%{name: "Building 4"})
IO.inspect(tenant)
Request
POST /api/v1/tenants
{
"name": "Building 4"
}
Response
{
"status": "ok",
"tenant": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "Building 4",
"inserted_at": "2025-08-18T09:20:00Z",
"updated_at": "2025-08-19T10:15:00Z"
}
}
Error
{ "status": "error", "message": "..." }
GET
Get a single tenant by ID.
Ruby
SD::Tenants.get("00000000-0000-0000-0000-000000000000")
# => { id: "...", name: "Terminal 23" }
PHP
<?php
$tenant = \SweetDate\Tenant::get("00000000-0000-0000-0000-000000000000");
print_r($tenant);
JavaScript
const tenant = await SD.Tenants.get("00000000-0000-0000-0000-000000000000");
console.log(tenant);
Elixir
{:ok, tenant} = SD.Tenants.get("00000000-0000-0000-0000-000000000000")
IO.inspect(tenant)
Request
GET /api/v1/tenants/:id
Response
{
"status": "ok",
"tenant": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "Terminal 23",
"inserted_at": "2025-08-18T09:20:00Z",
"updated_at": "2025-08-19T10:15:00Z"
}
}
Error
{ "status": "error", "message": "..." }
UPDATE
Update an existing tenant.
Ruby
SD::Tenants.update("00000000-0000-0000-0000-000000000000", name: "Terminal 3 3/4")
# => { id: "...", name: "Terminal 3 3/4" }
PHP
<?php
$tenant = \SweetDate\Tenant::update("00000000-0000-0000-0000-000000000000", ["name" => "Terminal 3 3/4"]);
print_r($tenant);
JavaScript
const tenant = await SD.Tenants.update("00000000-0000-0000-0000-000000000000", {
name: "Terminal 3 3/4"
});
console.log(tenant);
Elixir
{:ok, tenant} =
SD.Tenants.update("00000000-0000-0000-0000-000000000000", %{name: "Terminal 3 3/4"})
IO.inspect(tenant)
Request
PUT /api/v1/tenants/:id
{
"name": "Terminal 3 3/4"
}
Response
{
"status": "ok",
"tenant": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "Terminal 3 3/4",
"inserted_at": "2025-08-18T09:20:00Z",
"updated_at": "2025-08-19T10:15:00Z"
}
}
Error
{ "status": "error", "message": "..." }
DELETE
Delete a tenant.
Ruby
SD::Tenants.delete("00000000-0000-0000-0000-000000000000")
# => { status: "ok" }
PHP
<?php
$resp = \SweetDate\Tenant::delete("00000000-0000-0000-0000-000000000000");
print_r($resp);
// => ["status" => "ok"]
JavaScript
const resp = await SD.Tenants.delete("00000000-0000-0000-0000-000000000000");
console.log(resp);
// => { status: "ok" }
Elixir
:ok = SD.Tenants.delete("00000000-0000-0000-0000-000000000000")
# => :ok
Request
DELETE /api/v1/tenants/:id
Response
{ "status": "ok" }
Error
{ "status": "error", "message": "..." }