Windstream Holdings extensions API

Extension management

OpenAPI Specification

windstream-holdings-extensions-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Windstream Enterprise Contact Center Services agents extensions API
  description: The Windstream Enterprise Contact Center Services (CCS) API provides programmatic access to contact center operations, enabling developers to route calls, web chats, and text messages, manage agent states, configure tenants, and monitor queue activity. The REST API is complemented by a WebSocket interface for real-time event streaming.
  version: 2.0.0
  contact:
    name: Windstream Enterprise Developer Support
    url: https://api.solutions.uniti.com/
  termsOfService: https://www.windstreamenterprise.com/legal/
servers:
- url: https://{ccs_domain}/6/v2/api
  description: CCS REST API
  variables:
    ccs_domain:
      default: ccs.windstreamenterprise.com
      description: CCS domain hostname
tags:
- name: extensions
  description: Extension management
paths:
  /tenants/{tenantUuid}/extensions:
    get:
      operationId: listTenantExtensions
      summary: List Tenant Extensions
      description: Returns all extensions configured for a specific tenant.
      tags:
      - extensions
      parameters:
      - name: tenantUuid
        in: path
        required: true
        description: Tenant UUID
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: List of extensions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Extension'
  /tenants/{tenantUuid}/extensions/{extensionUuid}:
    put:
      operationId: updateTenantExtension
      summary: Update Tenant Extension
      description: Updates configuration for a specific extension within a tenant.
      tags:
      - extensions
      parameters:
      - name: tenantUuid
        in: path
        required: true
        description: Tenant UUID
        schema:
          type: string
          format: uuid
      - name: extensionUuid
        in: path
        required: true
        description: Extension UUID
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExtensionUpdate'
      responses:
        '200':
          description: Extension updated
  /extensions/{extensionUuid}/agent-state:
    get:
      operationId: getAgentState
      summary: Get Agent State
      description: Returns the current presence/state of a specific agent extension.
      tags:
      - extensions
      parameters:
      - name: extensionUuid
        in: path
        required: true
        description: Extension UUID
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Agent state details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentState'
  /extensions:
    get:
      operationId: listExtensions
      summary: List Extensions
      description: Returns a list of all extensions in the tenant.
      tags:
      - extensions
      parameters:
      - name: tenant
        in: query
        description: Tenant ID to filter extensions
        required: false
        schema:
          type: string
      - name: page
        in: query
        description: Page number for pagination
        required: false
        schema:
          type: integer
      - name: per_page
        in: query
        description: Number of results per page
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: List of extensions
          content:
            application/hal+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Extension_2'
  /extensions/{extensionId}:
    get:
      operationId: getExtension
      summary: Get Extension Details
      description: Retrieves details of a specific extension.
      tags:
      - extensions
      parameters:
      - name: extensionId
        in: path
        required: true
        description: Extension identifier
        schema:
          type: string
      responses:
        '200':
          description: Extension details
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Extension_2'
        '404':
          description: Extension not found
    put:
      operationId: updateExtension
      summary: Update Extension
      description: Updates the configuration of an existing extension.
      tags:
      - extensions
      parameters:
      - name: extensionId
        in: path
        required: true
        description: Extension identifier
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExtensionUpdate_2'
      responses:
        '200':
          description: Extension updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Extension_2'
components:
  schemas:
    ExtensionUpdate_2:
      type: object
      description: Extension update request body
      properties:
        name:
          type: string
          description: New display name
        forward_to:
          type: string
          description: Call forwarding destination
        do_not_disturb:
          type: boolean
          description: Enable/disable do not disturb
    ExtensionUpdate:
      type: object
      description: Extension update request
      properties:
        name:
          type: string
          description: New display name
        role:
          type: string
          description: Updated role assignment
    Extension_2:
      type: object
      description: A user extension in the system
      properties:
        id:
          type: string
          description: Extension identifier
        number:
          type: string
          description: Extension number
        name:
          type: string
          description: Display name for the extension
        tenant:
          type: string
          description: Tenant ID this extension belongs to
        type:
          type: string
          description: Extension type
          enum:
          - user
          - auto_attendant
          - hunt_group
          - voicemail
          - conference
        status:
          type: string
          description: Extension status
          enum:
          - active
          - inactive
          - suspended
    Extension:
      type: object
      description: A contact center extension
      properties:
        uuid:
          type: string
          format: uuid
          description: Extension UUID
        number:
          type: string
          description: Extension number
        name:
          type: string
          description: Display name
        tenant_uuid:
          type: string
          description: Tenant UUID
    AgentState:
      type: object
      description: Current agent state/presence
      properties:
        extension_uuid:
          type: string
          description: Extension UUID
        state:
          type: string
          description: Current presence state
        available_for_calls:
          type: boolean
          description: Whether agent can receive calls
        updated_at:
          type: string
          format: date-time
          description: Timestamp of last state change
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication for CCS API