Create an organization
curl -X POST "https://api.summerbase.com/v1/organizations" \ -H "Authorization: Bearer sb_..." \ -H "Content-Type: application/json" \ -d '{ "accept_terms": true, "name": "Acme Analytics", "region_code": "us" }'const response = await fetch("https://api.summerbase.com/v1/organizations", { method: "POST", headers: { Authorization: "Bearer sb_...", "Content-Type": "application/json", }, body: JSON.stringify({ "accept_terms": true, "name": "Acme Analytics", "region_code": "us" }),})const data = await response.json()Create an organization. Whoever creates it is its owner, and it starts with one project carrying the organization’s name, so there is somewhere to work.
A slug is derived from the name unless you name one.
Its data is kept in region_code and is never moved.
Request Bodyrequired
Section titled “Request Bodyrequired”object
That the person creating the organization accepts the Terms of Service
and the Privacy Policy on its behalf. Anything but true is refused.
The company’s name, as it appears throughout Summerbase.
Where the organization’s data is kept: eu or us. The request is
refused if that region is not open to new organizations.
How the organization is addressed in a readable URL — the acme in
app.summerbase.com/organizations/acme, and in its projects’
app.summerbase.com/projects/production@acme. Lowercase letters, digits,
hyphens and underscores, and never shaped like an id.
Unique across every Summerbase organization, and derived from the name when you do not choose one. Changing it is allowed and breaks every address that used the old one.
Example
{ "accept_terms": true, "name": "Acme Analytics", "region_code": "us"}Response
Section titled “Response”Returns the organization object.
Example
{ "cell_code": "us1", "created_at": "2025-09-08T14:02:37Z", "id": "0198f1a2-6c3d-7e41-9a2b-5c8d1e4f7a90", "name": "Acme Analytics", "object": "organization", "slug": "acme-analytics"}