Skip to content
FreeTicketDocs
Esc
↑↓navigate↵open⌘Jpreview

Create your own workspace/tenant (self-serve)

Requires a valid API key — does NOT require an active workspace (X-Workspace-Id does not apply here: it is ignored if sent). The caller becomes ADMIN of the new workspace. If they already administer their own Organization (umbrella), another workspace is added there, subject to the plan quota (spark=1, star=3, icon=7); if they have no link at all, a new Organization is created on the free Spark plan. A user who is already a collaborator (staff) of someone else’s workspace gets 409 ALREADY_HAS_ACCESS: ask an administrator to add them, instead of creating a tenant that would override their current access.

POST/workspaces
Authorization
AuthorizationAPI key · headerrequired

API key prefixed with Bearer . Alternative: the x-api-key header with the raw key. Available scopes: read and write (see /.well-known/oauth-protected-resource).

or
x-api-keyAPI key · headerrequired

Raw API key (without Bearer ), alternative to Authorization.

Header parameters
X-Workspace-Idstring

Active workspace to operate on. Optional: when omitted, the default workspace of the user who owns the key is used (pickActiveOrg).

Request body
requiredapplication/json
namestringrequired
min length 2 · max length 80
slugstringrequired
min length 2 · max length 50 · matches ^[a-z0-9-]+$
Responses
201

OK

dataWorkspaceAccessrequired
Show properties
idstringrequired
namestringrequired
slugstringrequired
rolestringrequired

The user's effective role IN THIS workspace.

Allowed:SUPER_ADMINADMINSTAFFVIEWERMINCULTURA
sectionsstring[] | nullrequired

Enabled sections (slugs). null = unrestricted; [] = access expired or revoked.

Show properties
Any of:
string[]
Array of string
string
null
null
401

Missing or invalid credential.

errorobjectrequired
Show properties
codestringrequired
messagestringrequired
retryablebooleanrequired
detailsany
403

Insufficient role or resource not accessible.

errorobjectrequired
Show properties
codestringrequired
messagestringrequired
retryablebooleanrequired
detailsany
404

Resource does not exist or is out of scope.

errorobjectrequired
Show properties
codestringrequired
messagestringrequired
retryablebooleanrequired
detailsany
409

Conflict: the resource does not allow this operation in its current state.

errorobjectrequired
Show properties
codestringrequired
messagestringrequired
retryablebooleanrequired
detailsany
422

Operation error.

errorobjectrequired
Show properties
codestringrequired
messagestringrequired
retryablebooleanrequired
detailsany
Try it
Server
Authorization
Parameters
Bodyapplication/json
Request
curl -X POST 'https://admin.appfreeticket.com/api/v1/workspaces' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "string",
  "slug": "string"
}'
Response
{
  "data": {
    "id": "string",
    "name": "string",
    "slug": "string",
    "role": "SUPER_ADMIN",
    "sections": [
      "string"
    ]
  }
}