openapi: 3.2.0 info: version: 1.0.0 title: OmniServe Analytics Reference Data API description: "Complete API collection for Lucidya OmniServe Analytics Endpoints. This API provides access to \nanalytics data for engagement monitoring, CSAT surveys, and reporting capabilities.\n\nFeatures include:\n- Analytics pages and widgets discovery\n- Job-based analytics data retrieval\n- CSAT survey analytics\n- Reference data access (agents, teams, data sources)\n" contact: name: API Support email: support@lucidya.com url: https://lucidya.com license: url: https://opensource.org/licenses/MIT name: MIT servers: - url: https://api.lucidya.com/public_api/omniserve description: Production Server security: - OmniserveToken: [] tags: - name: Reference Data description: Endpoints for fetching reference data (agents, teams, data sources) paths: /analytics/agents: get: tags: - Reference Data summary: Get Agents description: 'This endpoint enables you to get all agents (active users) for the current company. ' operationId: getAgents responses: '200': description: Agents list content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: integer example: 101 name: type: string example: Agent One status: type: string example: available '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '406': $ref: '#/components/responses/NotAcceptable' '410': $ref: '#/components/responses/Gone' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' '500': $ref: '#/components/responses/ServerError' '503': $ref: '#/components/responses/ServiceUnavailable' '504': $ref: '#/components/responses/GatewayTimeout' security: - OmniserveToken: [] servers: - url: https://api.lucidya.com/public_api/omniserve description: Production Server /analytics/teams: get: tags: - Reference Data summary: Get Teams description: 'This endpoint enables you to get all teams for the current company. ' operationId: getTeams responses: '200': description: Teams list content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: integer example: 11 name: type: string example: Support '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '406': $ref: '#/components/responses/NotAcceptable' '410': $ref: '#/components/responses/Gone' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' '500': $ref: '#/components/responses/ServerError' '503': $ref: '#/components/responses/ServiceUnavailable' '504': $ref: '#/components/responses/GatewayTimeout' security: - OmniserveToken: [] servers: - url: https://api.lucidya.com/public_api/omniserve description: Production Server /analytics/data_sources: get: tags: - Reference Data summary: Get Data Sources description: 'This endpoint enables you to get all available data sources for the current company. ' operationId: getDataSources responses: '200': description: Data sources list content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: integer example: 1 name: type: string example: twitter '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '406': $ref: '#/components/responses/NotAcceptable' '410': $ref: '#/components/responses/Gone' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' '500': $ref: '#/components/responses/ServerError' '503': $ref: '#/components/responses/ServiceUnavailable' '504': $ref: '#/components/responses/GatewayTimeout' security: - OmniserveToken: [] servers: - url: https://api.lucidya.com/public_api/omniserve description: Production Server /analytics/routings: get: tags: - Reference Data summary: Get Routings description: 'This endpoint enables you to get all inbound routings for the current company. ' operationId: getRoutings responses: '200': description: Routings list content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: integer example: 62 name: type: string example: High Priority Routing examples: default: value: data: - id: 62 name: High Priority Routing - id: 77 name: Default Routing '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '406': $ref: '#/components/responses/NotAcceptable' '410': $ref: '#/components/responses/Gone' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' '500': $ref: '#/components/responses/ServerError' '503': $ref: '#/components/responses/ServiceUnavailable' '504': $ref: '#/components/responses/GatewayTimeout' security: - OmniserveToken: [] servers: - url: https://api.lucidya.com/public_api/omniserve description: Production Server /analytics/slas: get: tags: - Reference Data summary: Get SLAs description: 'This endpoint enables you to get all SLAs for the current company with their time thresholds. ' operationId: getSlas responses: '200': description: SLAs list content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: integer example: 3 name: type: string example: Standard SLA first_response_time: type: object properties: value: type: integer example: 15 unit: type: string example: minutes next_response_time: type: object properties: value: type: integer example: 30 unit: type: string example: minutes time_to_complete: type: object properties: value: type: integer example: 240 unit: type: string example: minutes total_unassigned_time: type: object properties: value: type: integer example: 60 unit: type: string example: minutes examples: default: value: data: - id: 3 name: Standard SLA first_response_time: value: 15 unit: minutes next_response_time: value: 30 unit: minutes time_to_complete: value: 240 unit: minutes total_unassigned_time: value: 60 unit: minutes - id: 4 name: VIP SLA first_response_time: value: 5 unit: minutes next_response_time: value: 15 unit: minutes time_to_complete: value: 120 unit: minutes total_unassigned_time: value: 15 unit: minutes '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '406': $ref: '#/components/responses/NotAcceptable' '410': $ref: '#/components/responses/Gone' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' '500': $ref: '#/components/responses/ServerError' '503': $ref: '#/components/responses/ServiceUnavailable' '504': $ref: '#/components/responses/GatewayTimeout' security: - OmniserveToken: [] servers: - url: https://api.lucidya.com/public_api/omniserve description: Production Server components: responses: ValidationFailed: description: Unprocessable Entity - validation failed or missing required fields content: application/json: schema: $ref: '#/components/schemas/Error' examples: default: value: status: 422 message: Validation failed NotAcceptable: description: Not Acceptable - the requested format is not supported content: application/json: schema: $ref: '#/components/schemas/Error' examples: default: value: status: 406 message: Not acceptable BadRequest: description: Bad request - invalid input or validation error content: application/json: schema: $ref: '#/components/schemas/Error' examples: default: value: status: 400 detail: Page_id is required RateLimited: description: Too many requests - rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/Error' examples: default: value: status: 429 message: Rate limit exceeded retry_after: 60 GatewayTimeout: description: Gateway Timeout - server took too long to respond content: application/json: schema: $ref: '#/components/schemas/Error' examples: default: value: status: 504 message: Gateway timeout Gone: description: Gone - the requested resource is no longer available content: application/json: schema: $ref: '#/components/schemas/Error' examples: default: value: status: 410 message: Resource gone NotFound: description: Not Found - the specified resource could not be found content: application/json: schema: $ref: '#/components/schemas/Error' examples: default: value: status: 404 message: Resource not found ServerError: description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' examples: default: value: status: 500 message: Internal server error Forbidden: description: Forbidden - insufficient permissions content: application/json: schema: $ref: '#/components/schemas/Error' examples: default: value: status: 403 message: Access denied ServiceUnavailable: description: Service Unavailable - temporary server overload or maintenance content: application/json: schema: $ref: '#/components/schemas/Error' examples: default: value: status: 503 message: Service unavailable Unauthorized: description: Unauthorized - invalid or missing authentication content: application/json: schema: $ref: '#/components/schemas/Error' examples: default: value: status: 401 message: Authentication required MethodNotAllowed: description: Method Not Allowed - HTTP method is not supported for this endpoint content: application/json: schema: $ref: '#/components/schemas/Error' examples: default: value: status: 405 message: Method not allowed schemas: Error: type: object properties: error: type: object properties: status: type: integer example: 400 detail: type: string example: Page_id is required status: type: integer example: 400 message: type: string example: Error message code: type: string example: ERROR_CODE securitySchemes: OmniserveToken: type: apiKey description: The API authorization token for the request name: luc-authorization in: header x-example: YOUR_API_TOKEN_HERE