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

# Create a user and account



## OpenAPI

````yaml /openapi/v3.yaml post /auth/sign-up
openapi: 3.1.0
info:
  title: Semicola Exchange API
  version: 3.0.0-preview
  description: >-
    Platform endpoints of Semicola: sign-in and accounts, members and keys,
    billing, notifications, the Semi assistant (chat stream, confirmations,
    conversations), the MCP App widget host and realtime feeds. Typed agent
    tools live on the MCP server at /mcp/v3.
servers:
  - url: https://api.semicola.com
security:
  - bearerAuth: []
  - sessionCookie: []
tags:
  - name: Auth
  - name: Accounts
  - name: Billing
  - name: Notifications
  - name: Assistant
  - name: Widget host
  - name: Realtime
  - name: Demo
paths:
  /auth/sign-up:
    post:
      tags:
        - Auth
      summary: Create a user and account
      operationId: postAuthSignUp
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  maxLength: 320
                  format: email
                  pattern: >-
                    ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                password:
                  type: string
                  minLength: 10
                  maxLength: 256
                firstName:
                  type: string
                  minLength: 1
                  maxLength: 100
                lastName:
                  type: string
                  minLength: 1
                  maxLength: 100
                locale:
                  default: en
                  type: string
                  enum:
                    - ar
                    - de
                    - en
                    - es
                    - fr
                    - hi
                    - it
                    - ko
                    - nl
                    - pl
                    - pt
                    - sv
                    - tr
                    - ja
                    - zh
                communicationOptIn:
                  default: false
                  type: boolean
                companyName:
                  type: string
                  minLength: 1
                  maxLength: 200
                accountType:
                  type: string
                  enum:
                    - BUYER
                    - SELLER
                    - PARTNER
                signupExperience:
                  type: string
                  enum:
                    - ADVERTISER
                    - ADVERTISER_PORTFOLIO
                    - MEDIA_COMPANY
                    - DEVELOPER
                psaAccepted:
                  type: boolean
                tosVersion:
                  type: string
                oauthToken:
                  type: string
                ssoToken:
                  type: string
                verifiedToken:
                  type: string
                acceptedInvitationIds:
                  default: []
                  type: array
                  items:
                    type: string
                signupCode:
                  type: string
                iuPlan:
                  type: string
                attribution:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    type: string
              required:
                - email
                - firstName
                - lastName
                - companyName
                - accountType
                - psaAccepted
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    anyOf:
                      - type: object
                        properties:
                          me:
                            anyOf:
                              - type: object
                                properties:
                                  user:
                                    type: object
                                    properties:
                                      id:
                                        type: integer
                                        exclusiveMinimum: 0
                                        maximum: 9007199254740991
                                      email:
                                        type: string
                                        format: email
                                        pattern: >-
                                          ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                                      firstName:
                                        type:
                                          - string
                                          - 'null'
                                      lastName:
                                        type:
                                          - string
                                          - 'null'
                                      isStaff:
                                        type: boolean
                                    required:
                                      - id
                                      - email
                                      - firstName
                                      - lastName
                                      - isStaff
                                    additionalProperties: false
                                  currentCustomerId:
                                    anyOf:
                                      - type: integer
                                        exclusiveMinimum: 0
                                        maximum: 9007199254740991
                                      - type: 'null'
                                  customers:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        id:
                                          type: integer
                                          exclusiveMinimum: 0
                                          maximum: 9007199254740991
                                        name:
                                          type: string
                                        company:
                                          type:
                                            - string
                                            - 'null'
                                        kind:
                                          type: string
                                          enum:
                                            - STANDALONE
                                            - PARENT
                                            - CHILD
                                        nodeKind:
                                          type: string
                                          enum:
                                            - ACCOUNT
                                            - CONTAINER
                                        accountType:
                                          anyOf:
                                            - type: string
                                              enum:
                                                - BUYER
                                                - SELLER
                                                - PARTNER
                                            - type: 'null'
                                        role:
                                          type: string
                                          enum:
                                            - SUPER_ADMIN
                                            - ADMIN
                                            - PREMIUM
                                            - BASIC
                                        membershipRole:
                                          type: string
                                          enum:
                                            - MEMBER
                                            - ADMIN
                                        parentId:
                                          anyOf:
                                            - type: integer
                                              exclusiveMinimum: 0
                                              maximum: 9007199254740991
                                            - type: 'null'
                                        buyerAccessPosture:
                                          anyOf:
                                            - type: string
                                              enum:
                                                - SANDBOX_ONLY
                                                - LIVE_ELIGIBLE
                                            - type: 'null'
                                      required:
                                        - id
                                        - name
                                        - company
                                        - kind
                                        - nodeKind
                                        - accountType
                                        - role
                                        - membershipRole
                                        - parentId
                                        - buyerAccessPosture
                                      additionalProperties: false
                                  featureFlags:
                                    type: object
                                    propertyNames:
                                      type: string
                                    additionalProperties:
                                      type: boolean
                                  authProvider:
                                    type: string
                                    enum:
                                      - local
                                      - workos
                                  emailVerified:
                                    type: boolean
                                  locale:
                                    type:
                                      - string
                                      - 'null'
                                  tos:
                                    type: object
                                    properties:
                                      showTosBox:
                                        type: boolean
                                      canAcceptTos:
                                        type: boolean
                                      latestTosVersion:
                                        type:
                                          - string
                                          - 'null'
                                      acceptedVersion:
                                        type:
                                          - string
                                          - 'null'
                                      tosUpdate:
                                        anyOf:
                                          - type: object
                                            properties:
                                              action:
                                                type: string
                                                enum:
                                                  - notice
                                                  - acceptance_due
                                                  - acceptance_required
                                              changeLevel:
                                                type: string
                                                enum:
                                                  - PATCH
                                                  - MINOR
                                                  - MAJOR
                                              version:
                                                type: string
                                              deadline:
                                                anyOf:
                                                  - type: string
                                                    format: date-time
                                                    pattern: >-
                                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                                  - type: 'null'
                                            required:
                                              - action
                                              - changeLevel
                                              - version
                                              - deadline
                                            additionalProperties: false
                                          - type: 'null'
                                    required:
                                      - showTosBox
                                      - canAcceptTos
                                      - latestTosVersion
                                      - acceptedVersion
                                      - tosUpdate
                                    additionalProperties: false
                                required:
                                  - user
                                  - currentCustomerId
                                  - customers
                                  - featureFlags
                                  - authProvider
                                additionalProperties: false
                              - type: 'null'
                          emailVerificationRequired:
                            type: boolean
                          nextPath:
                            type: string
                        required:
                          - me
                          - emailVerificationRequired
                          - nextPath
                        additionalProperties: false
                      - type: 'null'
                  error:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                          message:
                            type: string
                          field:
                            type: string
                          details: {}
                        required:
                          - code
                          - message
                        additionalProperties: false
                      - type: 'null'
                required:
                  - data
                  - error
                additionalProperties: false
        default:
          description: >-
            Error envelope `{data: null, error: {code, message, field?,
            details?}}`.
      security: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key or OAuth access token.
    sessionCookie:
      type: apiKey
      in: cookie
      name: sc_session

````