Create a workspace
POST /api/workspaces
Creates a new workspace under a brand. The operating language must be one of the enabled languages and permitted by the brand. The full workspace record is returned.
Authorizations
Section titled “Authorizations ”Request Body
Section titled “Request Body ”object
The brand this workspace operates under. List brands with GET /api/brands, or create one with POST /api/brands.
Example
b1a2c3d4-5678-4abc-8ef0-1234567890abDisplay name of the workspace.
Example
SupportISO 3166-1 alpha-2 country code for the workspace’s primary operating region.
Example
DEThe primary language the assistant uses in this workspace. Must be one of the enabled languages and permitted by the brand.
Example
deISO 4217 currency code used for financial references in this workspace.
Example
EURThe registered legal name of the entity operating this workspace.
Example
Example CompanyLifecycle status of the workspace. Defaults to ‘active’ when omitted.
Example
activeWhether this workspace handles business-to-business, business-to-consumer, or mixed conversations. Defaults to ‘b2b’ when omitted.
Example
b2bCompany registration number.
Structured legal address of the operating entity. Rendered into the composed email company block.
object
Public support email address for this workspace.
Example
support@example.comPublic support phone number for this workspace.
The workspace’s public website. The onboarding read starts from this site.
Example
https://www.example.comThe spoken greeting per language, each confirmed in its own language. Each language appears at most once. A greeting without a valid confirmation is replaced at call time by the standard opening line in its language.
One language’s spoken greeting as a request writes it.
object
The language of the greeting: one of the brand’s supported languages, or the workspace’s operating language. Any other language is refused with 422 and code greeting_language_not_supported.
The greeting text. Send null or an empty text to clear the language’s greeting. Leave it out to confirm the stored text with attested.
EU AI Act Article 50 confirmation that the greeting tells callers they are speaking with an AI assistant. A new or changed greeting is refused with 422 and code greeting_attestation_required unless this is true, and refused with code greeting_must_mention_ai when the wording does not mention the assistant in this language. An unchanged greeting needs no flag. The server records who confirmed, when, and in which language.
Free-text instructions specific to this workspace, combined with brand instructions to guide the assistant.
Example
All prices must include VAT.The workspace opening hours. When any ranges are provided, a timezone is required.
object
IANA timezone identifier for the opening hours.
Example
UTCThe opening-hour ranges. Defaults to an empty list.
object
The days this range applies to.
Example
[ "mon", "tue", "wed", "thu", "fri"]Opening time in 24-hour HH:MM format.
Example
09:00Closing time in 24-hour HH:MM format.
Example
17:00Optional lines appended below the composed company block. Rendered as written.
Responses
Section titled “ Responses ”The workspace was created.
A workspace is an operational unit within a brand, typically representing a region, business unit, or product line. Conversations, knowledge base entries, policies, and channels are all scoped to a workspace.
object
Unique identifier for the workspace.
Example
w1a2b3c4-5678-9abc-def0-1234567890abThe tenant this workspace belongs to.
Example
a0b1c2d3-4567-89ab-cdef-0123456789abThe brand this workspace operates under. Determines tone, sender identity, and email templates.
Example
b1a2c3d4-5678-9abc-def0-1234567890abDisplay name of the workspace.
Example
SupportISO 3166-1 alpha-2 country code for this workspace’s primary operating region. Affects currency defaults and compliance.
Example
DEThe primary language the AI uses when communicating in this workspace. ISO 639-1 code.
Example
deWhen the operating language was last chosen, by a create or an update that carries operatingLanguage. Null when no choice is recorded.
Example
2026-01-20T10:00:00.000ZISO 4217 currency code used for financial references in this workspace.
Example
EURFree-text instructions specific to this workspace. These are combined with brand instructions to guide the AI. Use for workspace-specific rules like regional regulations or product-specific guidance.
Example
All prices must include VAT. Refer customers to the Returns policy.Timestamp when the workspace was created.
Example
2026-01-20T10:00:00.000ZTimestamp when the workspace was last updated.
Example
2026-03-01T16:45:00.000ZWhether this workspace handles business-to-business or business-to-consumer conversations. Affects contact resolution, account enrichment, and AI behavior.
Example
b2bThe workspace’s public website. The onboarding read starts from this site and derives the origin from it: lowercase host, path and query dropped, https first.
Example
https://www.example.comOptional lines appended below the company block composed from the workspace’s legal entity (social links, awards, disclaimers). Rendered as written.
The spoken greeting per language, one entry for each language that has a greeting. Each greeting carries its own EU AI Act Article 50 confirmation, checked in its language.
One language’s spoken greeting on a workspace, with the state of its EU AI Act Article 50 confirmation.
object
The language the greeting is spoken in.
Example
enThe greeting text.
Example
Thank you for calling Example Company. You are speaking with an AI assistant. How can I help?Whether the confirmation covers this exact text, in this language. A greeting is spoken only while this is true; otherwise callers hear the standard opening line in this language.
When the greeting was confirmed. Null while the confirmation does not cover the greeting.
The caller may not create workspaces here. People need the owner or admin role. An API key restricted to a workspace receives code: "key_lock".
Standard error response returned by all endpoints on failure.
object
A human-readable error message describing what went wrong.
Example
Conversation not foundA machine-readable reason on some refusals, for example ‘key_lock’ when an API key’s brand or workspace restriction does not cover the action.
Example
key_lockOn a 403 for an API key without a scope the endpoint requires: the scopes the key lacks.
Example
[ "mcp:write"]On a 409 with code duplicate_question or duplicate_rule_text: the knowledge base entry or policy that already holds the question or rule text.
Example
11223344-5566-4788-99aa-bbccddeeff00On a 422 about one MCP connection a request names, from an assignment or an agent create or update (a connection that does not exist, one listed twice, or one that does not declare a tool named): the connection, as the request named it.
On the same 422: the tool names the connection does not declare.
Example
[ "get_orders"]On the same 422: the tools the connection declares.
Example
[ "get_order", "search_orders"]No brand with this ID is within the caller’s reach.
Standard error response returned by all endpoints on failure.
object
A human-readable error message describing what went wrong.
Example
Conversation not foundA machine-readable reason on some refusals, for example ‘key_lock’ when an API key’s brand or workspace restriction does not cover the action.
Example
key_lockOn a 403 for an API key without a scope the endpoint requires: the scopes the key lacks.
Example
[ "mcp:write"]On a 409 with code duplicate_question or duplicate_rule_text: the knowledge base entry or policy that already holds the question or rule text.
Example
11223344-5566-4788-99aa-bbccddeeff00On a 422 about one MCP connection a request names, from an assignment or an agent create or update (a connection that does not exist, one listed twice, or one that does not declare a tool named): the connection, as the request named it.
On the same 422: the tool names the connection does not declare.
Example
[ "get_orders"]On the same 422: the tools the connection declares.
Example
[ "get_order", "search_orders"]Validation error. One or more required fields are missing or invalid. A greeting that cannot be saved answers with code and language: greeting_required (a confirmation with no greeting to confirm), greeting_attestation_required (a new or changed greeting without its confirmation), greeting_must_mention_ai (the wording does not mention the assistant in that language) or greeting_language_not_supported (a language that is neither one of the brand’s supported languages nor the operating language). Nothing was written.
object
A human-readable error message describing what went wrong.
Example
Conversation not foundA machine-readable reason on some refusals, for example ‘key_lock’ when an API key’s brand or workspace restriction does not cover the action.
Example
key_lockOn a 403 for an API key without a scope the endpoint requires: the scopes the key lacks.
Example
[ "mcp:write"]On a 409 with code duplicate_question or duplicate_rule_text: the knowledge base entry or policy that already holds the question or rule text.
Example
11223344-5566-4788-99aa-bbccddeeff00On a 422 about one MCP connection a request names, from an assignment or an agent create or update (a connection that does not exist, one listed twice, or one that does not declare a tool named): the connection, as the request named it.
On the same 422: the tool names the connection does not declare.
Example
[ "get_orders"]On the same 422: the tools the connection declares.
Example
[ "get_order", "search_orders"]With a greeting code: the language of the greeting that was refused.
Example
en