API v3 is live and in beta: expect possible malfunctions and breaking changes in the coming days. If you find a bug, please report it to your Sillage contact.

Create a client workspace

Create a workspace for one of your clients.

Creates a workspace for one of your clients. Every integration starts here: the partner_workspace_id you choose is your own ID for the client, and every other route names the client with it in its path. The owner you name gets admin access to the workspace in the Sillage app.

You can have only one live workspace per domain. To cover another team or product of the same client, create a persona in the existing workspace instead: each persona has its own lists, signal setups and leads.

There is no idempotency key. A retry with the same partner_workspace_id answers 409: read the workspace back with GET /v3/partner/workspaces/{partner_workspace_id}.

Route

POST/api/v3/partner/workspaces

Body parameters

ParameterTypeRequiredDefaultDescription
partner_workspace_idstringYesnoneYour own ID for the client, 1 to 255 characters. Must be unique among your workspaces, deleted ones included. Must not contain /, ?, # or spaces.
namestringYesnoneName of the workspace, 1 to 255 characters.
domainstringYesnoneThe main website of the client, as a hostname with no protocol or path, for example acme.com. Saved in lowercase. You can have only one live workspace per domain.
owner_emailstringYesnoneEmail of the person who gets admin access to the workspace in the Sillage app.

Example request

curl -X POST "https://api.getsillage.com/api/v3/partner/workspaces" \
  -H "Authorization: Bearer $SILLAGE_MASTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "partner_workspace_id": "crm-4821",
  "name": "Acme",
  "domain": "acme.com",
  "owner_email": "owner@acme.com"
}'

Success response

Status: 201 Created

{
  "data": {
    "partner_workspace_id": "crm-4821",
    "name": "Acme",
    "domain": "acme.com",
    "archived": false,
    "created_at": "2026-10-16T09:00:00.000Z"
  }
}

Response fields

FieldTypeDescription
data.partner_workspace_idstringYour own ID for the client.
data.namestringName of the workspace.
data.domainstring or nullCompany domain of the client, in lowercase. null on some older workspaces.
data.archivedbooleantrue when the client is paused.
data.created_atstringISO 8601 date and time the workspace was created.

The email in owner_email is not returned.

Errors

StatusMeaning
401The master key is missing or invalid.
409You already have a workspace with this partner_workspace_id (You already have a workspace with partner_workspace_id "crm-4821".), or you already have a live workspace on this domain (You already have a workspace for acme.com (crm-4821). Create a persona in it instead: each persona has its own lists, signal setups and leads.), or another create or restore is running for you at the same moment (A workspace is being created or restored for you right now. Retry in a moment.).
422The body is not valid (Invalid request body): a required field is missing or empty, partner_workspace_id contains /, ?, # or spaces (Must not contain "/", "?", "#" or spaces), domain (not a hostname with no protocol or path) or owner_email is not valid, or a field the route does not accept is sent (for example Unknown field: foo). errors names each field. A query parameter is refused too.
429Rate limit exceeded.
500An unexpected server error occurred.

Error responses use RFC 9457 problem documents with Content-Type: application/problem+json. type is always about:blank; code tells one problem from another, detail says what went wrong this time, and errors names the field at fault.

On this page