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