Syllable Organizations API

Operations related to organizations.

OpenAPI Specification

syllable-organizations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SyllableSDK Organizations 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: organizations
  description: Operations related to organizations.
paths:
  /api/v1/organizations/:
    get:
      tags:
      - organizations
      summary: Get Current Organization
      description: Fetch the current organization.
      operationId: organizations_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationResponse'
      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.organizations.organizations_get()\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.organizations.organizationsGet();\n\n  console.log(result);\n}\n\nrun();"
    put:
      tags:
      - organizations
      summary: Update Current Organization
      description: Update the current organization.
      operationId: organizations_update
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_organizations_update'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      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.organizations.update(request={\n        \"display_name\": \"My Great Org\",\n        \"description\": \"An organization that does great things with agentic AI\",\n        \"domains\": \"mygreatorg.com,mygreatorg.org\",\n        \"saml_provider_id\": \"saml.syllablesso\",\n        \"update_comments\": \"Updated the organization to add a new domain\",\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.organizations.update({\n    displayName: \"My Great Org\",\n    description: \"An organization that does great things with agentic AI\",\n    domains: \"mygreatorg.com,mygreatorg.org\",\n    samlProviderId: \"saml.syllablesso\",\n    updateComments: \"Updated the organization to add a new domain\",\n  });\n\n  console.log(result);\n}\n\nrun();"
    post:
      tags:
      - organizations
      summary: Create Organization
      description: Create a new organization.
      operationId: organizations_create
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_organizations_create'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      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.organizations.create(request={\n        \"logo\": {\n            \"file_name\": \"example.file\",\n            \"content\": open(\"example.file\", \"rb\"),\n        },\n        \"display_name\": \"My Great Org\",\n        \"description\": \"An organization that does great things with agentic AI\",\n        \"domains\": \"mygreatorg.com,mygreatorg.org\",\n        \"saml_provider_id\": \"saml.syllablesso\",\n    })\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { openAsBlob } from \"node:fs\";\nimport { 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.organizations.create({\n    logo: await openAsBlob(\"example.file\"),\n    displayName: \"My Great Org\",\n    description: \"An organization that does great things with agentic AI\",\n    domains: \"mygreatorg.com,mygreatorg.org\",\n    samlProviderId: \"saml.syllablesso\",\n  });\n\n  console.log(result);\n}\n\nrun();"
    delete:
      tags:
      - organizations
      summary: Delete Current Organization
      description: Delete the current organization and all its users.
      operationId: organizations_delete
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_organizations_delete'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      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.organizations.delete(request={\n        \"delete_comments\": \"Deleted the organization because it was no longer needed\",\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.organizations.delete({\n    deleteComments: \"Deleted the organization because it was no longer needed\",\n  });\n\n  console.log(result);\n}\n\nrun();"
components:
  schemas:
    OrganizationResponse:
      properties:
        display_name:
          type: string
          title: Display Name
          description: The human-readable display name of the organization.
          examples:
          - My Great Org
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: Description of the organization.
          examples:
          - An organization that does great things with agentic AI.
        domains:
          anyOf:
          - type: string
          - type: 'null'
          title: Domains
          description: Comma-delimited list of domains that users at the organization may have in their email addresses.
          examples:
          - mygreatorg.com,myothergreatorg.org
        saml_provider_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Saml Provider Id
          description: SAML provider ID for user authentication
          examples:
          - saml.syllablesso
        id:
          type: integer
          title: Id
          description: The internal ID of the organization.
          examples:
          - 1
        last_updated_comments:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Updated Comments
          description: Comments for the most recent edit to the organization.
          examples:
          - Updated to add an additional domain
        name:
          type: string
          title: Name
          description: Unique, non-human-readable hash for the organization
        slug:
          anyOf:
          - type: string
          - type: 'null'
          title: Slug
          description: The slug of the organization used for URLs in the Console UI. Null until slug backfill has been run.
          examples:
          - my-great-org
        last_updated:
          type: string
          format: date-time
          title: Last Updated
          description: The timestamp of the most recent update to the organization
        last_updated_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Updated By
          description: The email of the user who most recently updated the organization
        logo_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Logo Url
          description: CDN URL. The org will always have a logo, but this value will be null on a response to an update where no logo was provided on the request
          examples:
          - https://image.png
      type: object
      required:
      - display_name
      - id
      - name
      - last_updated
      title: OrganizationResponse
    Body_organizations_create:
      properties:
        logo:
          type: string
          format: binary
          title: Logo
          description: The organization logo image file to upload. Must be a PNG file and 120x120 pixels.
        display_name:
          type: string
          title: Display Name
          description: The human-readable display name of the organization
          examples:
          - My Great Org
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: Description of the organization
          examples:
          - An organization that does great things with agentic AI
        domains:
          anyOf:
          - type: string
          - type: 'null'
          title: Domains
          description: Comma-delimited list of domains that users at the organization may have in their email addresses
          examples:
          - mygreatorg.com,mygreatorg.org
        saml_provider_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Saml Provider Id
          description: SAML provider ID for user authentication
          examples:
          - saml.syllablesso
      type: object
      required:
      - logo
      - display_name
      title: Body_organizations_create
    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
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Body_organizations_update:
      properties:
        logo:
          anyOf:
          - type: string
            format: binary
          - type: 'null'
          title: Logo
          description: The organization logo image file to upload. Must be a PNG file and 120x120 pixels. If not provided, the logo will not be updated.
        display_name:
          type: string
          title: Display Name
          description: The human-readable display name of the organization
          examples:
          - My Great Org
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: Description of the organization
          examples:
          - An organization that does great things with agentic AI
        domains:
          anyOf:
          - type: string
          - type: 'null'
          title: Domains
          description: Comma-delimited list of domains that users at the organization may have in their email addresses
          examples:
          - mygreatorg.com,mygreatorg.org
        saml_provider_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Saml Provider Id
          description: SAML provider ID for user authentication
          examples:
          - saml.syllablesso
        update_comments:
          anyOf:
          - type: string
          - type: 'null'
          title: Update Comments
          description: Comments about the update
          examples:
          - Updated the organization to add a new domain
      type: object
      required:
      - display_name
      title: Body_organizations_update
    Body_organizations_delete:
      properties:
        delete_comments:
          anyOf:
          - type: string
          - type: 'null'
          title: Delete Comments
          description: Comments explaining the deletion
          examples:
          - Deleted the organization because it was no longer needed
      type: object
      title: Body_organizations_delete
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: Syllable-API-Key
x-speakeasy-name-override:
- operationId: .*_list$
  methodNameOverride: list
- operationId: .*_create$
  methodNameOverride: create
- operationId: .*_update$
  methodNameOverride: update
- operationId: .*_upload$
  methodNameOverride: upload
- operationId: .*_delete$
  methodNameOverride: delete
- operationId: .*_get_by_id$
  methodNameOverride: get_by_id
- operationId: .*_get_by_name$
  methodNameOverride: get_by_name
- operationId: .*_add$
  methodNameOverride: add
- operationId: .*_remove$
  methodNameOverride: remove
- operationId: .*_results$
  methodNameOverride: results
- operationId: .*_queue_work$
  methodNameOverride: queue_work
- operationId: .*_activate$
  methodNameOverride: activate
- operationId: .*_inactivate$
  methodNameOverride: inactivate
- operationId: .*_list_files$
  methodNameOverride: list_files
- operationId: .*_move_files$
  methodNameOverride: move_files
- operationId: .*_upload_file$
  methodNameOverride: upload_file