> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ai-cmo.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a workspace



## OpenAPI

````yaml /openapi.json post /api/v1/workspaces
openapi: 3.0.3
info:
  title: ai-cmo.dev Services API
  version: 1.0.0
servers: []
security: []
tags:
  - name: Meta
    description: Health and the generated API description.
  - name: Auth
    description: Signup, login, sessions and email verification.
  - name: Device authorization
    description: Browser-approved API key provisioning for agents and the MCP server.
  - name: Setup tokens
    description: Single-use tokens that bootstrap a connector or agent.
  - name: MCP
    description: The canonical MCP install prompt.
  - name: Workspaces
    description: Workspace creation, settings, profile and competitors.
  - name: API keys
    description: 'Key lifecycle: create, deliver, acknowledge, rotate, revoke.'
  - name: Connections
    description: Connector status, tests, configuration and credentials.
  - name: Runs
    description: Measurement runs and their jobs.
  - name: Research
    description: The five-stage research pipeline.
  - name: Prompts
    description: The measurement prompt set.
  - name: Recommendations
    description: Recommendation board and guarded lifecycle transitions.
  - name: Reports
    description: Stable report identities and the report catalog.
  - name: Scores & metrics
    description: GEO score, scoreboard, metrics, timeseries and SEO.
  - name: Credits & billing
    description: Micro-USD credits, top-ups and Stripe checkout.
  - name: Team
    description: Members, roles and invitations.
  - name: Chat
    description: The workspace assistant (SSE) and its threads.
  - name: Webhooks
    description: Inbound webhooks.
paths:
  /api/v1/workspaces:
    post:
      tags:
        - Workspaces
      summary: Create a workspace
      operationId: createWorkspaceService
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspaceCreate'
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceCreated'
      security:
        - cookieAuth: []
components:
  schemas:
    WorkspaceCreate:
      type: object
      properties:
        brand:
          type: string
          pattern: ^[a-z0-9-]{2,20}$
        displayName:
          type: string
          minLength: 2
          maxLength: 60
        domains:
          type: array
          items:
            type: string
            pattern: ^([a-z0-9]([a-z0-9-]*[a-z0-9])?\.)+[a-z]{2,}$
          minItems: 1
          maxItems: 8
        languages:
          type: array
          items:
            type: string
            enum:
              - en
              - es
              - ca
              - fr
          minItems: 1
        regions:
          type: array
          items:
            type: string
            pattern: ^[a-z-]{2,20}$
          maxItems: 8
        competitors:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                minLength: 2
                maxLength: 60
              domains:
                type: array
                items: b58925ef-62c7-4299-9735-ea10a268f163
                minItems: 1
                maxItems: 5
              aliases:
                type: array
                items:
                  type: string
                  minLength: 1
                  maxLength: 60
                minItems: 1
                maxItems: 8
              ambiguous:
                type: boolean
            required:
              - name
              - domains
              - aliases
              - ambiguous
            additionalProperties: false
          minItems: 2
          maxItems: 12
        gscProperty:
          type: string
          pattern: ^sc-domain:([a-z0-9-]+\.)+[a-z]{2,}$
        ga4Property:
          type: string
          pattern: ^\d{6,12}$
        activeSetSize:
          type: integer
          minimum: 20
          maximum: 300
        complianceProfile:
          type: string
          enum:
            - none
            - eu_medical
        quotas:
          type: object
          properties:
            discovery:
              type: number
              minimum: 0
              maximum: 1
            problem_solution: c7e3fa7e-065c-4cd7-a4e0-8e608d1c89c4
            use_case: aa4be2da-7b75-49f8-b3d1-bacc7f397b30
            comparison: 6d273ca4-e122-4d3f-851f-97854dc9d0d3
            expert: f027cef3-bab6-4a0c-b8f9-4c485baed934
            brand_research: fd534ae3-4a93-45ea-a78d-959da0f1c16e
          required:
            - discovery
            - problem_solution
            - use_case
            - comparison
            - expert
            - brand_research
          additionalProperties: false
      required:
        - brand
        - displayName
        - domains
        - languages
        - regions
        - competitors
        - gscProperty
        - ga4Property
        - activeSetSize
        - complianceProfile
        - quotas
      additionalProperties: false
    WorkspaceCreated:
      type: object
      properties:
        slug:
          type: string
        emailProvisioning:
          type: object
          properties:
            workspace:
              type: string
            status:
              type: string
              enum:
                - provisioned
                - unconfigured
                - failed
                - username_conflict
            email:
              type: string
              format: email
              nullable: true
            inboxId:
              type: string
              nullable: true
            attempts:
              type: integer
              minimum: 0
            message:
              type: string
          required:
            - workspace
            - status
            - email
            - inboxId
            - attempts
            - message
          additionalProperties: false
      required:
        - slug
        - emailProvisioning
      additionalProperties: false
  securitySchemes:
    cookieAuth:
      type: apiKey
      in: cookie
      name: geo.session
      description: Signed HttpOnly browser session cookie

````