Syllable V1 API

The V1 API from Syllable — 4 operation(s) for v1.

OpenAPI Specification

syllable-v1-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SyllableSDK V1 API
  description: "\n# Syllable Platform SDK\n\nSyllable SDK gives you the power of awesome AI agentry. \U0001F680\n\n## Overview\n\nThe Syllable SDK provides a comprehensive set of tools and APIs to integrate powerful AI\ncapabilities into your communication applications. Whether you're building phone agents, chatbots,\nvirtual assistants, or any other AI-driven solutions, Syllable SDK has got you covered.\n\n## Features\n\n- **Agent Configuration**: Create and manage agents that can interact with users across various \nchannels.\n- **Channel Management**: Configure channels like SMS, web chat, and more to connect agents with \nusers.\n- **Custom Messages**: Set up custom messages that agents can deliver as greetings or responses.\n- **Conversations**: Track and manage conversations between users and agents, including session \nmanagement.\n- **Tools and Workflows**: Leverage tools and workflows to enhance agent capabilities, such as data \nprocessing and API calls.\n- **Data Sources**: Integrate data sources to provide agents with additional context and \ninformation.\n- **Insights and Analytics**: Analyze conversations and sessions to gain insights into user \ninteractions.\n- **Permissions and Security**: Manage permissions to control access to various features and \nfunctionalities.\n- **Language Support**: Define language groups to enable multilingual support for agents.\n- **Outbound Campaigns**: Create and manage outbound communication campaigns to reach users \neffectively.\n- **Session Labels**: Label sessions with evaluations of quality and descriptions of issues \nencountered.\n- **Incident Management**: Track and manage incidents related to agent interactions.\n"
  version: 0.0.3
servers:
- url: https://api.syllable.cloud
  description: API server
tags:
- name: V1
paths:
  /api/v1/users/:
    get:
      tags:
      - V1
      summary: List Users
      description: List the existing users.
      operationId: users_list
      security:
      - APIKeyHeader: []
      parameters:
      - name: page
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          description: The page number from which to start (0-based)
          examples:
          - 0
          default: 0
          title: Page
        description: The page number from which to start (0-based)
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: The maximum number of items to return
          examples:
          - 25
          default: 25
          title: Limit
        description: The maximum number of items to return
      - name: search_fields
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/UserProperties'
          description: String names of fields to search. Correspond by index to search field values
          examples:
          - name
          default: []
          title: Search Fields
        description: String names of fields to search. Correspond by index to search field values
      - name: search_field_values
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Values of fields to search. Correspond by index to search fields. Unless field name contains "list", an individual search field value cannot be a list
          examples:
          - Some Object Name
          default: []
          title: Search Field Values
        description: Values of fields to search. Correspond by index to search fields. Unless field name contains "list", an individual search field value cannot be a list
      - name: order_by
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/UserProperties'
          - type: 'null'
          description: The field whose value should be used to order the results
          examples:
          - name
          title: Order By
        description: The field whose value should be used to order the results
      - name: order_by_direction
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/OrderByDirection'
          - type: 'null'
          description: The direction in which to order the results
          title: Order By Direction
        description: The direction in which to order the results
      - name: fields
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/UserProperties'
          - type: 'null'
          description: The fields to include in the response
          default: []
          title: Fields
        description: The fields to include in the response
      - name: start_datetime
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The start datetime for filtering results
          examples:
          - '2023-01-01T00:00:00Z'
          title: Start Datetime
        description: The start datetime for filtering results
      - name: end_datetime
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The end datetime for filtering results
          examples:
          - '2024-01-01T00:00:00Z'
          title: End Datetime
        description: The end datetime for filtering results
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListResponse_UserResponse_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK, models\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.users.list(page=0, limit=25, search_fields=[\n        models.UserProperties.ROLE_ID,\n    ], search_field_values=[\n        \"Some Object Name\",\n    ], start_datetime=\"2023-01-01T00:00:00Z\", end_datetime=\"2024-01-01T00:00:00Z\")\n\n    # Handle response\n    print(res)"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK, models\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.v1.list(page=0, limit=25, search_fields=[\n        models.UserProperties.ROLE_ID,\n    ], search_field_values=[\n        \"Some Object Name\",\n    ], start_datetime=\"2023-01-01T00:00:00Z\", end_datetime=\"2024-01-01T00:00:00Z\")\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.users.list({\n    page: 0,\n    searchFields: [\n      \"activity_status\",\n    ],\n    searchFieldValues: [\n      \"Some Object Name\",\n    ],\n    startDatetime: \"2023-01-01T00:00:00Z\",\n    endDatetime: \"2024-01-01T00:00:00Z\",\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.v1.list({\n    page: 0,\n    searchFields: [\n      \"activity_status\",\n    ],\n    searchFieldValues: [\n      \"Some Object Name\",\n    ],\n    startDatetime: \"2023-01-01T00:00:00Z\",\n    endDatetime: \"2024-01-01T00:00:00Z\",\n  });\n\n  console.log(result);\n}\n\nrun();"
    post:
      tags:
      - V1
      summary: Create User
      description: Create a new user.
      operationId: users_create
      security:
      - APIKeyHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserCreateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK, models\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.users.create(request={\n        \"email\": \"user@syllable.ai\",\n        \"first_name\": \"Jane\",\n        \"last_name\": \"Smith\",\n        \"role_id\": 1,\n        \"login_type\": models.LoginType.USERNAME_AND_PASSWORD,\n    })\n\n    # Handle response\n    print(res)"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK, models\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.v1.create(request={\n        \"email\": \"user@syllable.ai\",\n        \"first_name\": \"Jane\",\n        \"last_name\": \"Smith\",\n        \"role_id\": 1,\n        \"login_type\": models.LoginType.USERNAME_AND_PASSWORD,\n    })\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.users.create({\n    email: \"user@syllable.ai\",\n    firstName: \"Jane\",\n    lastName: \"Smith\",\n    roleId: 1,\n    loginType: \"username_and_password\",\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.v1.create({\n    email: \"user@syllable.ai\",\n    firstName: \"Jane\",\n    lastName: \"Smith\",\n    roleId: 1,\n    loginType: \"username_and_password\",\n  });\n\n  console.log(result);\n}\n\nrun();"
    put:
      tags:
      - V1
      summary: Update User
      description: Update an existing user.
      operationId: users_update
      security:
      - APIKeyHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserUpdateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.users.update(request={\n        \"email\": \"user@syllable.ai\",\n        \"first_name\": \"Jane\",\n        \"last_name\": \"Smith\",\n        \"role_id\": 1,\n        \"last_updated_comments\": \"Updated to change which role was assigned\",\n    })\n\n    # Handle response\n    print(res)"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.v1.update(request={\n        \"email\": \"user@syllable.ai\",\n        \"first_name\": \"Jane\",\n        \"last_name\": \"Smith\",\n        \"role_id\": 1,\n        \"last_updated_comments\": \"Updated to change which role was assigned\",\n    })\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.users.update({\n    email: \"user@syllable.ai\",\n    firstName: \"Jane\",\n    lastName: \"Smith\",\n    roleId: 1,\n    lastUpdatedComments: \"Updated to change which role was assigned\",\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.v1.update({\n    email: \"user@syllable.ai\",\n    firstName: \"Jane\",\n    lastName: \"Smith\",\n    roleId: 1,\n    lastUpdatedComments: \"Updated to change which role was assigned\",\n  });\n\n  console.log(result);\n}\n\nrun();"
    delete:
      tags:
      - V1
      summary: Delete User
      description: Delete a user.
      operationId: users_delete
      security:
      - APIKeyHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserDeleteRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.users.delete(request={\n        \"email\": \"user@syllable.ai\",\n        \"reason\": \"User left the organization\",\n    })\n\n    # Handle response\n    print(res)"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.v1.delete(request={\n        \"email\": \"user@syllable.ai\",\n        \"reason\": \"User left the organization\",\n    })\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.users.delete({\n    email: \"user@syllable.ai\",\n    reason: \"User left the organization\",\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.v1.delete({\n    email: \"user@syllable.ai\",\n    reason: \"User left the organization\",\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/users/{user_email}:
    get:
      tags:
      - V1
      summary: Get User
      description: Fetch a given user.
      operationId: users_get_by_email
      security:
      - APIKeyHeader: []
      parameters:
      - name: user_email
        in: path
        required: true
        schema:
          type: string
          title: User Email
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.users.users_get_by_email(user_email=\"<value>\")\n\n    # Handle response\n    print(res)"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.v1.users_get_by_email(user_email=\"<value>\")\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.users.usersGetByEmail({\n    userEmail: \"<value>\",\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.v1.usersGetByEmail({\n    userEmail: \"<value>\",\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/users/{user_email}/send_email:
    post:
      tags:
      - V1
      summary: Send User Email
      description: Send a welcome email to a user.
      operationId: users_send_email
      security:
      - APIKeyHeader: []
      parameters:
      - name: user_email
        in: path
        required: true
        schema:
          type: string
          title: User Email
      - name: skip_auth
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: Skip Auth
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.users.users_send_email(user_email=\"<value>\", skip_auth=False)\n\n    # Handle response\n    print(res)"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.v1.users_send_email(user_email=\"<value>\", skip_auth=False)\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.users.usersSendEmail({\n    userEmail: \"<value>\",\n  });\n\n  console.log(result);\n}\n\nrun();"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.v1.usersSendEmail({\n    userEmail: \"<value>\",\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/users/delete_account:
    delete:
      tags:
      - V1
      summary: Request Removal Of This Account
      description: 'Request removal of the account of the user calling this endpoint. Intended for removing trial

        accounts.'
      operationId: users_delete_account
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - APIKeyHeader: []
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.users.users_delete_account()\n\n    # Handle response\n    print(res)"
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.v1.users_delete_account()\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.users.usersDeleteAccount();\n\n  console.log(result);\n}\n\nrun();"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.v1.usersDeleteAccount();\n\n  console.log(result);\n}\n\nrun();"
components:
  schemas:
    UserProperties:
      type: string
      enum:
      - email
      - first_name
      - last_name
      - role_id
      - role_name
      - email_first_name_last_name
      - activity_status
      - last_updated
      title: UserProperties
      description: Names of user fields supported for filtering/sorting on list endpoint.
    ListResponse_UserResponse_:
      properties:
        items:
          items:
            $ref: '#/components/schemas/UserResponse'
          type: array
          title: Items
          description: List of items returned from the query
          examples: []
        page:
          type: integer
          title: Page
          description: The page number of the results (0-based)
          examples:
          - 0
        page_size:
          type: integer
          title: Page Size
          description: The number of items returned per page
          examples:
          - 25
        total_pages:
          anyOf:
          - type: integer
          - type: 'null'
          title: Total Pages
          description: The total number of pages of results given the indicated page size
          examples:
          - 4
        total_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Total Count
          description: The total number of items returned from the query
          examples:
          - 100
      type: object
      required:
      - items
      - page
      - page_size
      title: ListResponse[UserResponse]
    UserResponse:
      properties:
        email:
          type: string
          title: Email
          description: Email address of the user
          examples:
          - user@syllable.ai
        first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: First Name
          description: First name of the user
          examples:
          - Jane
        last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Name
          description: Last name of the user
          examples:
          - Smith
        role_id:
          type: integer
          title: Role Id
          description: ID of the role assigned to the user
          examples:
          - 1
        utm:
          anyOf:
          - $ref: '#/components/schemas/DaoUtm'
          - type: 'null'
          description: Optional UTM campaign attribution to record in user_metadata.
        last_updated_comments:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Updated Comments
          description: Comments for the most recent edit to the user.
          examples:
          - Updated to change which role was assigned
        id:
          type: integer
          title: Id
          description: Internal ID of the user
          examples:
          - 1
        role_name:
          type: string
          title: Role Name
          description: Name of the role assigned to the user
          examples:
          - Admin
        email_sent:
          type: boolean
          title: Email Sent
          description: Whether the welcome email has been sent to the user
          examples:
          - true
        activity_status:
          $ref: '#/components/schemas/UserActivityStatus'
          description: The activity status of the user
          examples:
          - invited
        last_updated:
          type: string
          format: date-time
          title: Last Updated
          description: The timestamp of the most recent update to the user
        last_updated_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Updated By
          description: The email address of the user who last updated the user
          examples:
          - admin@email.com
        last_session_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Session At
          description: The timestamp of the user's last session
          examples:
          - '2025-01-01T12:00:00Z'
      type: object
      required:
      - email
      - role_id
      - id
      - role_name
      - email_sent
      - activity_status
      - last_updated
      title: UserResponse
      description: Information about a user.
    OrderByDirection:
      type: string
      enum:
      - asc
      - desc
      title: OrderByDirection
      description: The direction in which to order list results, either ascending or descending.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    DaoUtm:
      properties:
        utm_source:
          anyOf:
          - type: string
            maxLength: 256
          - type: 'null'
          title: Utm Source
        utm_medium:
          anyOf:
          - type: string
            maxLength: 256
          - type: 'null'
          title: Utm Medium
        utm_campaign:
          anyOf:
          - type: string
            maxLength: 256
          - type: 'null'
          title: Utm Campaign
        utm_term:
          anyOf:
          - type: string
            maxLength: 256
          - type: 'null'
          title: Utm Term
        utm_content:
          anyOf:
          - type: string
            maxLength: 256
          - type: 'null'
          title: Utm Content
      type: object
      title: DaoUtm
    UserDeleteRequest:
      properties:
        email:
          type: string
          title: Email
          description: The email address of the user to delete
          examples:
          - user@syllable.ai
        reason:
          type: string
          title: Reason
          description: The reason for deleting the user
          examples:
          - User left the organization
      type: object
      required:
      - email
      - reason
      title: UserDeleteRequest
      description: Request model to delete a user.
    LoginType:
      type: string
      enum:
      - google
      - username_and_password
      title: LoginType
      description: The type of login to use for the user.
    UserCreateRequest:
      properties:
        email:
          type: string
          title: Email
          description: Email address of the user
          examples:
          - user@syllable.ai
        first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: First Name
          description: First name of the user
          examples:
          - Jane
        last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Name
          description: Last name of the user
          examples:
          - Smith
        role_id:
          type: integer
          title: Role Id
          description: ID of the role assigned to the user
          examples:
          - 1
        utm:
          anyOf:
          - $ref: '#/components/schemas/DaoUtm'
          - type: 'null'
          description: Optional UTM campaign attribution to record in user_metadata.
        login_type:
          anyOf:
          - $ref: '#/components/schemas/LoginType'
          - type: 'null'
          description: The type of login to use for the user. If not provided, defaults to google for @gmail.com email addresses, and username and password otherwise.
          examples:
          - username_and_password
        skip_auth:
          type: boolean
          title: Skip Auth
          description: Whether to skip authentication for the user.
          default: false
      type: object
      required:
      - email
      - role_id
      title: UserCreateRequest
      description: Request model to create a user.
    UserUpdateRequest:
      properties:
        email:
          type: string
          title: Email
          description: Email address of the user
          examples:
          - user@syllable.ai
        first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: First Name
          description: First name of the user
          examples:
          - Jane
        last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Name
          description: Last name of the user
          examples:
          - Smith
        role_id:
          type: integer
          title: Role Id
          description: ID of the role assigned to the user
          examples:
          - 1
        utm:
          anyOf:
          - $ref: '#/components/schemas/DaoUtm'
          - type: 'null'
          description: Optional UTM campaign attribution to record in user_metadata.
        last_updated_comments:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Updated Comments
          description: Comments for the most recent edit to the user.
          examples:
          - Updated to change which role was assigned
      type: object
      required:
      - email
      - role_id
      title: UserUpdateRequest
      description: Request model to update an existing user.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    UserActivityStatus:
      type: string
      enum:
      - not_invited
      - invited
      - active
      title: UserActi

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/syllable/refs/heads/main/openapi/syllable-v1-api-openapi.yml