Syllable Directory API

Operations related to directory

OpenAPI Specification

syllable-directory-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SyllableSDK Directory 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: directory
  description: Operations related to directory
paths:
  /api/v1/directory_members/:
    get:
      tags:
      - directory
      summary: Directory Member List
      description: List the directory_members
      operationId: directory_member_list
      security:
      - APIKeyHeader: []
      parameters:
      - name: include_deleted
        in: query
        required: false
        schema:
          type: boolean
          description: If true, include soft-deleted members in the list. Default excludes them.
          default: false
          title: Include Deleted
        description: If true, include soft-deleted members in the list. Default excludes them.
      - name: response_format
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/DirectoryResponseFormat'
          description: 'Directory response format: normalized (default) strips @hours and formats times; raw returns stored @hours values.'
          default: normalized
        description: 'Directory response format: normalized (default) strips @hours and formats times; raw returns stored @hours values.'
      - name: page
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          description: Page number (0-based)
          default: 0
          title: Page
        description: Page number (0-based)
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Items per page
          default: 25
          title: Limit
        description: Items per page
      - name: search_fields
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/DirectoryMemberProperties'
          description: Fields to search; aligns with search_field_values
          default: []
          title: Search Fields
        description: Fields to search; aligns with search_field_values
      - name: search_field_values
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Values for search_fields in matching order
          default: []
          title: Search Field Values
        description: Values for search_fields in matching order
      - name: order_by
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/DirectoryMemberProperties'
          - type: 'null'
          description: Field to order results by
          title: Order By
        description: Field to order results by
      - name: order_by_direction
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/OrderByDirection'
          - type: 'null'
          description: Direction to order results
          title: Order By Direction
        description: Direction to order results
      - name: fields
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/DirectoryMemberProperties'
          - type: 'null'
          description: Fields to include in response
          default: []
          title: Fields
        description: Fields to include in response
      - name: start_datetime
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Start datetime for filtering results
          title: Start Datetime
        description: Start datetime for filtering results
      - name: end_datetime
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: End datetime for filtering results
          title: End Datetime
        description: End datetime for filtering results
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListResponse_DirectoryMember_'
        '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.directory.list(include_deleted=False, page=0, limit=25, search_fields=[\n        models.DirectoryMemberProperties.NAME,\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.directory.list({\n    page: 0,\n    searchFields: [\n      \"name\",\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:
      - directory
      summary: Create Directory Member
      description: Create a new member in the directory
      operationId: directory_member_create
      security:
      - APIKeyHeader: []
      parameters:
      - name: response_format
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/DirectoryResponseFormat'
          description: 'Directory response format: normalized (default) strips @hours and formats times; raw returns stored @hours values.'
          default: normalized
        description: 'Directory response format: normalized (default) strips @hours and formats times; raw returns stored @hours values.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DirectoryMemberCreate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectoryMember'
        '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.directory.create(directory_member_create={\n        \"name\": \"Jane Doe\",\n        \"type\": \"contact\",\n        \"extensions\": [\n            {\n                \"name\": \"work\",\n                \"numbers\": [\n                    {\n                        \"number\": \"+1234567890\",\n                        \"rules\": [\n                            {\n                                \"language\": \"en\",\n                            },\n                        ],\n                    },\n                ],\n            },\n        ],\n        \"contact_tags\": {\n            \"tag1\": [\n                \"value1\",\n            ],\n            \"tag2\": [\n                \"value2\",\n            ],\n        },\n        \"comments\": \"Updated to add new extension\",\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.directory.create({\n    directoryMemberCreate: {\n      name: \"Jane Doe\",\n      type: \"contact\",\n      extensions: [\n        {\n          name: \"work\",\n          numbers: [\n            {\n              number: \"+1234567890\",\n              rules: [\n                {\n                  \"language\": \"en\",\n                },\n              ],\n            },\n          ],\n        },\n      ],\n      contactTags: {\n        \"tag1\": [\n          \"value1\",\n        ],\n        \"tag2\": [\n          \"value2\",\n        ],\n      },\n      comments: \"Updated to add new extension\",\n    },\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/directory_members/{member_id}/history:
    get:
      tags:
      - directory
      summary: Get Directory Member History
      description: 'Get version history for a directory member (contact).

        Version 1 is always the oldest; order_by_direction only controls response order.'
      operationId: directory_member_history
      security:
      - APIKeyHeader: []
      parameters:
      - name: member_id
        in: path
        required: true
        schema:
          type: integer
          title: Member Id
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Page number (0-based)
          default: 0
          title: Page
        description: Page number (0-based)
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Items per page
          default: 25
          title: Limit
        description: Items per page
      - name: order_by_direction
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/OrderByDirection'
          description: Sort by oldest first (asc) or newest first (desc). Version 1 is always the oldest.
          default: asc
        description: Sort by oldest first (asc) or newest first (desc). Version 1 is always the oldest.
      - name: response_format
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/DirectoryResponseFormat'
          description: 'Directory response format: normalized (default) strips @hours and formats times; raw returns stored @hours values.'
          default: normalized
        description: 'Directory response format: normalized (default) strips @hours and formats times; raw returns stored @hours values.'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListResponse_DirectoryMemberHistoryResponse_'
        '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.directory.directory_member_history(member_id=371893, page=0, limit=25)\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.directory.directoryMemberHistory({\n    memberId: 371893,\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/directory_members/{member_id}:
    get:
      tags:
      - directory
      summary: Get Directory Member By Id
      description: Get a DirectoryMember by ID.
      operationId: directory_member_get_by_id
      security:
      - APIKeyHeader: []
      parameters:
      - name: member_id
        in: path
        required: true
        schema:
          type: integer
          title: Member Id
      - name: response_format
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/DirectoryResponseFormat'
          description: 'Directory response format: normalized (default) strips @hours and formats times; raw returns stored @hours values.'
          default: normalized
        description: 'Directory response format: normalized (default) strips @hours and formats times; raw returns stored @hours values.'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectoryMember'
        '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.directory.get_by_id(member_id=562571)\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.directory.getById({\n    memberId: 562571,\n  });\n\n  console.log(result);\n}\n\nrun();"
    put:
      tags:
      - directory
      summary: Update Directory Member
      description: Update a DirectoryMember.
      operationId: directory_member_update
      security:
      - APIKeyHeader: []
      parameters:
      - name: member_id
        in: path
        required: true
        schema:
          type: integer
          title: Member Id
      - name: response_format
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/DirectoryResponseFormat'
          description: 'Directory response format: normalized (default) strips @hours and formats times; raw returns stored @hours values.'
          default: normalized
        description: 'Directory response format: normalized (default) strips @hours and formats times; raw returns stored @hours values.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DirectoryMemberUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectoryMember'
        '400':
          description: Bad Request
        '404':
          description: Not Found
        '412':
          description: Precondition Failed
        '500':
          description: Internal Server Error
        '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.directory.update(member_id=941217, directory_member_update={\n        \"name\": \"Jane Doe\",\n        \"type\": \"contact\",\n        \"extensions\": [\n            {\n                \"name\": \"work\",\n                \"numbers\": [\n                    {\n                        \"number\": \"+1234567890\",\n                        \"rules\": [\n                            {\n                                \"language\": \"en\",\n                            },\n                        ],\n                    },\n                ],\n            },\n        ],\n        \"contact_tags\": {\n            \"tag1\": [\n                \"value1\",\n            ],\n            \"tag2\": [\n                \"value2\",\n            ],\n        },\n        \"comments\": \"Updated phone number\",\n        \"id\": 1,\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.directory.update({\n    memberId: 941217,\n    directoryMemberUpdate: {\n      name: \"Jane Doe\",\n      type: \"contact\",\n      extensions: [\n        {\n          name: \"work\",\n          numbers: [\n            {\n              number: \"+1234567890\",\n              rules: [\n                {\n                  \"language\": \"en\",\n                },\n              ],\n            },\n          ],\n        },\n      ],\n      contactTags: {\n        \"tag1\": [\n          \"value1\",\n        ],\n        \"tag2\": [\n          \"value2\",\n        ],\n      },\n      comments: \"Updated phone number\",\n      id: 1,\n    },\n  });\n\n  console.log(result);\n}\n\nrun();"
    delete:
      tags:
      - directory
      summary: Delete Directory Member
      description: Delete a DirectoryMember.
      operationId: directory_member_delete
      security:
      - APIKeyHeader: []
      parameters:
      - name: member_id
        in: path
        required: true
        schema:
          type: integer
          title: Member Id
      - name: comment
        in: query
        required: true
        schema:
          type: string
          description: Comment stored in version history for this deletion
          title: Comment
        description: Comment stored in version history for this deletion
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '400':
          description: Bad Request
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
        '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.directory.delete(member_id=569311, comment=\"The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design\")\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.directory.delete({\n    memberId: 569311,\n    comment: \"The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design\",\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/directory_members/{member_id}/test:
    get:
      tags:
      - directory
      summary: Test Directory Member Extension
      description: Test directory member extension at a specific timestamp and language.
      operationId: directory_member_test_extension
      security:
      - APIKeyHeader: []
      parameters:
      - name: member_id
        in: path
        required: true
        schema:
          type: integer
          title: Member Id
      - name: timestamp
        in: query
        required: true
        schema:
          type: string
          description: Timestamp for test in ISO 8601 format (e.g., 2025-12-04T14:29:39)
          title: Timestamp
        description: Timestamp for test in ISO 8601 format (e.g., 2025-12-04T14:29:39)
      - name: language_code
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/LanguageCode'
          - type: 'null'
          description: Optional language code for test
          title: Language Code
        description: Optional language code for test
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectoryMemberTestResponse'
        '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.directory.directory_member_test_extension(member_id=922412, timestamp=\"2024-07-02T14:32:47.235Z\")\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.directory.directoryMemberTestExtension({\n    memberId: 922412,\n    timestamp: \"2024-07-02T14:32:47.235Z\",\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/directory_members/{member_id}/restore:
    put:
      tags:
      - directory
      summary: Restore Directory Member
      description: Restore a soft-deleted directory member.
      operationId: directory_member_restore
      security:
      - APIKeyHeader: []
      parameters:
      - name: member_id
        in: path
        required: true
        schema:
          type: integer
          title: Member Id
      - name: response_format
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/DirectoryResponseFormat'
          description: Directory response format for the restored member.
          default: normalized
        description: Directory response format for the restored member.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DirectoryMemberRestore'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectoryMember'
        '409':
          description: Conflict
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
        '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.directory.directory_member_restore(member_id=507482, directory_member_restore={})\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.directory.directoryMemberRestore({\n    memberId: 507482,\n    directoryMemberRestore: {},\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/directory_members/upload/:
    put:
      tags:
      - directory
      summary: Bulk Load Directory Members
      description: Update Directory Members in chunks of 100.
      operationId: directory_member_bulk_load
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_directory_member_bulk_load'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '400':
          description: Bad Request
        '404':
          description: Not Found
        '412':
          description: Precondition Failed
        '500':
          description: Internal Server Error
        '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.directory.directory_member_bulk_load(request={\n        \"file\": {\n            \"file_name\": \"example.file\",\n            \"content\": open(\"example.file\", \"rb\"),\n        },\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.directory.directoryMemberBulkLoad({\n    file: await openAsBlob(\"example.file\"),\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/directory_members/download/:
    get:
      tags:
      - directory
      summary: Download Directory Members
      description: Download the entire directory as a JSON file.
      operationId: directory_member_download
      security:
      - APIKeyHeader: []
      parameters:
      - name: response_format
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/DirectoryResponseFormat'
          description: 'Directory response format: normalized (default) strips @hours and formats times; raw returns stored @hours values.'
          default: normalized
        description: 'Directory response format: normalized (default) strips @hours and formats times; raw returns stored @hours values.'
      responses:
        '200':
          description: Directory downloaded successfully
          content:
            application/json:
              schema: {}
        '500':
          description: Internal Server Error
        '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.directory.directory_member_download()\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.directory.directoryMemberDownload({});\n\n  console.log(result);\n}\n\nrun();"
components:
  schemas:
    DirectoryResponseFormat:
      type: string
      enum:
      - normalized
      - raw
      title: DirectoryResponseFormat
      description: Response shape selector for directory member APIs.
    DirectoryMemberTestResponse:
      properties:
        extension:
          anyOf:
          - type: string
          - type: 'null'
          title: Extension
          description: Extension to which the user will be transferred if they call at the provided timestamp in the given language, or a status message if no rules match
        status:
          anyOf:
          - type: string
          - type: 'null'
          title: Status
          description: Status message if no rules match
      type: object
      title: DirectoryMemberTestResponse
    DirectoryExtension:
      properties:
        name:
          type: string
          title: Name
          description: Directory extension name
          examples:
          - work
        numbers:
          anyOf:
          - items:
              $ref: '#/components/schemas/DirectoryExtensionNumber'
            type: array
          - type: 'null'
          title: Numbers
          description: Directory extension numbers.
      type: object
      required:
      - name
      title: DirectoryExtension
    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
    DirectoryMemberCreate:
      properties:
        name:
          type: string
          title: Name
          description: Name of the directory member
          examples:
          - Jane Doe
        type:
          type: string
          title: Type
          description: Type of the directory member
          examples:
          - Operator
        extensions:
          anyOf:
          - items:
              $ref: '#/components/schemas/DirectoryExtension'
            type: array
          - type: 'null'
          title: Extensions
          description:

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