openapi: 3.2.0 info: title: Webex Cloud Calling Webhook Interest Registrations API version: 1.0.0 description: The Webex Cloud Calling APIs enable comprehensive management of cloud-based calling services, including user provisioning, device assignment, call routing, feature configuration, and number management. tags: - name: Webhook Interest Registrations description: Operations for managing client registrations that enable organization-wide emission of Webex Calling webhook events that are not emitted by default. paths: /telephony/webhookInterestRegistrations: post: responses: '204': description: No Content headers: {} content: {} '400': description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further.' '401': description: 'Unauthorized: Authentication credentials were missing or incorrect.' '403': description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.' '404': description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method.' '405': description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.' '409': description: 'Conflict: The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once.' '410': description: 'Gone: The requested resource is no longer available.' '415': description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used a media type that is not supported.' '423': description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that specifies how many seconds you need to wait before attempting the request again.' '428': description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.' '429': description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made.' '500': description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support).' '502': description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later.' '503': description: 'Service Unavailable: Server is overloaded with requests. Try again later.' '504': description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it.' summary: Create a Webhook Interest Registration operationId: createWebhookInterestRegistration description: 'Adds or updates a webhook interest registration associated with the authenticated user and the client derived from the access token. At least one item in `interests` is required and `duration` is optional. The client identifier is not supplied in the request. If a registration does not already exist for the authenticated user and client, it is created; otherwise, it is updated with the incoming registration information. Registrations are managed for a specific user and client, but registered interests apply to all applicable webhooks in the organization. This API is reserved for administrators and requires the `spark-admin:calls_read` scope.' tags: - Webhook Interest Registrations parameters: [] requestBody: required: true content: application/json: example: interests: - resource: Agent - actor: Workspaces duration: 30 schema: type: object required: - interests properties: interests: type: array description: The collection of webhook interests for this registration. At least one interest is required. Each interest is either resource-based or actor-based (exactly one of `resource` or `actor` is set). items: $ref: '#/components/schemas/Interest' duration: type: integer example: 30 description: Optional time, in days, after which the registration expires. When omitted, the registration defaults to expire after 60 days. get: responses: '200': description: OK headers: {} content: application/json: schema: type: object required: - interests - expiresAt properties: interests: type: array description: The collection of webhook interests associated with the registration. Each interest is either resource-based or actor-based. At least one interest is always present in a successful response. items: $ref: '#/components/schemas/Interest' expiresAt: type: string format: date-time example: '2026-08-01T00:00:00.000Z' description: The date/time at which the registration expires. example: interests: - resource: Agent - actor: Workspaces expiresAt: '2026-08-01T00:00:00.000Z' example: interests: - resource: Agent - actor: Workspaces expiresAt: '2026-08-01T00:00:00.000Z' '400': description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further.' '401': description: 'Unauthorized: Authentication credentials were missing or incorrect.' '403': description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.' '404': description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method.' '405': description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.' '409': description: 'Conflict: The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once.' '410': description: 'Gone: The requested resource is no longer available.' '415': description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used a media type that is not supported.' '423': description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that specifies how many seconds you need to wait before attempting the request again.' '428': description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.' '429': description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made.' '500': description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support).' '502': description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later.' '503': description: 'Service Unavailable: Server is overloaded with requests. Try again later.' '504': description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it.' summary: Get Webhook Interest Registration operationId: getWebhookInterestRegistration description: 'Returns the webhook interest registration associated with the authenticated user and the client derived from the access token, including the list of interests and the date/time at which the registration expires. The client identifier is not supplied by the caller. Registrations are managed for a specific user and client, but registered interests apply to all applicable webhooks in the organization. This API is reserved for administrators and requires the `spark-admin:calls_read` scope.' tags: - Webhook Interest Registrations parameters: [] delete: responses: '204': description: No Content headers: {} content: {} '400': description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further.' '401': description: 'Unauthorized: Authentication credentials were missing or incorrect.' '403': description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.' '404': description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method.' '405': description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.' '409': description: 'Conflict: The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once.' '410': description: 'Gone: The requested resource is no longer available.' '415': description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used a media type that is not supported.' '423': description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that specifies how many seconds you need to wait before attempting the request again.' '428': description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.' '429': description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made.' '500': description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support).' '502': description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later.' '503': description: 'Service Unavailable: Server is overloaded with requests. Try again later.' '504': description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it.' summary: Delete Webhook Interest Registration operationId: deleteWebhookInterestRegistration description: 'Deletes the webhook interest registration associated with the authenticated user and the client derived from the access token. The client identifier is not supplied by the caller. Registrations are managed for a specific user and client, but registered interests apply to all applicable webhooks in the organization. This API is reserved for administrators and requires the `spark-admin:calls_read` scope.' tags: - Webhook Interest Registrations parameters: [] components: schemas: Interest: type: object description: A single webhook interest that enables event emission for an actor or resource category. Exactly one of `resource` or `actor` is set per interest entry. properties: resource: type: string enum: - Hook Status - Agent - Services - Agent Monitoring - Queue - Queue Monitoring example: Agent description: 'Resource-based interest. Set exactly one of `resource` or `actor` per interest entry. - `Hook Status` - Enables webhook events for the `telephony_hookstatus` resource. - `Agent` - Enables webhook events for the `telephony_agent` resource. - `Services` - Enables webhook events for the `telephony_services` resource. - `Agent Monitoring` - Enables webhook events for the `telephony_agentMonitoring` resource. - `Queue` - Enables webhook events for the `telephony_queue` resource. - `Queue Monitoring` - Enables webhook events for the `telephony_queueMonitoring` resource.' actor: type: string enum: - Workspaces - Virtual Lines example: Workspaces description: 'Actor-based interest. Set exactly one of `resource` or `actor` per interest entry. - `Workspaces` - Enables telephony webhook events associated with workspace actors. - `Virtual Lines` - Enables telephony webhook events associated with virtual line actors.' securitySchemes: bearer-key: type: http description: e.g. Bearer YOUR_AUTHORIZATION_TOKEN scheme: bearer bearerFormat: JWT oauth2: flows: authorizationCode: authorizationUrl: / scopes: {} tokenUrl: / type: oauth2 bearerAuth: type: http description: e.g. Bearer YOUR_AUTHORIZATION_TOKEN scheme: bearer bearerFormat: JWT