Webex Activities API
The Activities API from Webex — 3 operation(s) for activities.
The Activities API from Webex — 3 operation(s) for activities.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/webex:webex-activities-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Webex Contact Center Activities API
version: 1.0.0
description: The Webex Contact Center APIs allow developers to deeply integrate, configure, and manage cloud-based contact center solutions.
x-provenance:
method: harvested
authored_by: Cisco Webex
harvested_by: API Evangelist
harvested_on: '2026-08-19'
first_party: true
note: Published by Cisco. Retrieved unmodified except for this x-provenance block.
provider_published: true
x-evidence:
- type: source
url: https://github.com/webex/webex-openapi-specs/blob/main/public-spec/webex-contact-center.json
- type: raw
url: https://raw.githubusercontent.com/webex/webex-openapi-specs/main/public-spec/webex-contact-center.json
tags:
- name: Activities
paths:
/{orgId}/project/{projectId}/v2/activities:
get:
tags:
- Activities
summary: List Activity Definitions
description: 'List all available activity types with their full schemas, including inputs, outputs, ports, and descriptions. The response is sufficient on its own to construct nodes — there is no separate schema endpoint.
Scope: `cjp:config_read`'
operationId: listActivityDefinitions
parameters:
- name: orgId
in: path
description: Organization ID.
required: true
schema:
type: string
example: 8eb7da9a-c81c-4d13-b08b-38fdeb7330d8
- name: projectId
in: path
description: 'Project ID. System generated value which is the same across orgs and environments. Always use: 5e5c9ad6d61f870d6d778c1b.'
required: true
schema:
type: string
example: 5e5c9ad6d61f870d6d778c1b
responses:
'200':
description: Array of activity definitions.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActivityV2'
example:
- activityName: play-message
displayName: Play Message
category: core
group: action
activityType: action
'401':
description: Unauthorized.
content: {}
'403':
description: Forbidden.
content: {}
'404':
description: Not Found.
content: {}
'429':
description: Too Many Requests.
content: {}
/{orgId}/project/{projectId}/v2/activities/{activityName}:
get:
tags:
- Activities
summary: Describe an Activity
description: 'Retrieve a single activity''s full definition, including inputs, outputs, named ports, and the JSON Schema for its inputs — all returned inline.
Scope: `cjp:config_read`'
operationId: describeActivity
parameters:
- name: orgId
in: path
description: Organization ID.
required: true
schema:
type: string
example: 8eb7da9a-c81c-4d13-b08b-38fdeb7330d8
- name: projectId
in: path
description: 'Project ID. System generated value which is the same across orgs and environments. Always use: 5e5c9ad6d61f870d6d778c1b.'
required: true
schema:
type: string
example: 5e5c9ad6d61f870d6d778c1b
- name: activityName
in: path
description: Activity type name (e.g., `play-message`, `queue-contact`).
required: true
schema:
type: string
example: play-message
responses:
'200':
description: Activity definition.
content:
application/json:
schema:
$ref: '#/components/schemas/ActivityV2'
'401':
description: Unauthorized.
content: {}
'403':
description: Forbidden.
content: {}
'404':
description: Not Found.
content: {}
'429':
description: Too Many Requests.
content: {}
/{orgId}/project/{projectId}/v2/activities/{activityName}/inputs/{inputName}/choices:
get:
tags:
- Activities
summary: Get Activity Input Choices
description: 'Resolve choices for an activity input. Use this when an activity input requires a value from a predefined or dynamically resolved set (e.g., available queues, audio files, agents).
This endpoint is only valid for inputs that expose choices (an input whose definition includes `allowedValues` or a `choicesEndpoint`, as returned by `describeActivity`). Calling it for an input that does not support choices returns 400.
Pass `search` to filter the choices (type-ahead). Add `validate=true` together with `search` to do a point-lookup of a single value instead of filtering — the match is against the choice''s `value` (its ID), not its display `name`. For a cascading input whose allowed values depend on a sibling input, supply the parent with `parentInputName` and `parentValue`; otherwise a cascading input returns 400.
Filtering and validation apply only to dynamic (`choicesEndpoint`-backed) inputs. A static input always returns its full enumerated list regardless of `search`/`validate`.
Scope: `cjp:config_read`'
operationId: getActivityInputChoices
parameters:
- name: orgId
in: path
description: Organization ID.
required: true
schema:
type: string
example: 8eb7da9a-c81c-4d13-b08b-38fdeb7330d8
- name: projectId
in: path
description: 'Project ID. System generated value which is the same across orgs and environments. Always use: 5e5c9ad6d61f870d6d778c1b.'
required: true
schema:
type: string
example: 5e5c9ad6d61f870d6d778c1b
- name: activityName
in: path
description: Activity type name.
required: true
schema:
type: string
example: queue-contact
- name: inputName
in: path
description: Input field name. Must be an input that exposes choices (has `allowedValues` or a `choicesEndpoint`).
required: true
schema:
type: string
example: channelType
- name: search
in: query
description: Search text used to filter the returned choices (type-ahead). When `validate=true`, this is instead the single value to look up.
required: false
schema:
type: string
example: support
- name: validate
in: query
description: When `true` and `search` is supplied, performs a point-lookup of the single value in `search` (matched against the choice's `value`/ID) instead of filtering.
required: false
schema:
type: boolean
default: false
example: false
- name: parentValue
in: query
description: Parent input value for a cascading/dynamic input (for example, the selected `channelType`).
required: false
schema:
type: string
example: TELEPHONY
- name: parentInputName
in: query
description: Parent input name for a cascading/dynamic input. Required when `parentValue` is provided.
required: false
schema:
type: string
example: channelType
responses:
'200':
description: Resolved choices for the input, plus resolution metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/ActivityInputChoices'
'400':
description: Bad Request — a cascading input was queried without its parent (`parentInputName`/`parentValue`), or the input does not support choices.
content:
application/json:
schema:
$ref: '#/components/schemas/FlowV2ErrorResponse'
'401':
description: Unauthorized.
content: {}
'403':
description: Forbidden.
content: {}
'404':
description: Not Found.
content: {}
'429':
description: Too Many Requests.
content: {}
components:
schemas:
FlowV2ValidationError:
title: FlowV2ValidationError
type: object
description: A single validation error against a flow document.
properties:
activityName:
type: string
description: Name of the activity the error relates to.
example: play-message
condition:
type: string
description: Edge condition the error relates to, when applicable.
example: onTimeout
from:
type: string
description: Source node label of the offending edge, when applicable.
example: WelcomeMessage
edge:
type: string
description: Human-readable description of the offending edge, when applicable.
example: WelcomeMessage->DisconnectContact(onTimeout)
suggestion:
type: string
description: Suggested fix.
example: 'Use one of: default, error'
message:
type: string
description: Human-readable explanation of the error.
example: Condition 'onTimeout' is not valid for activity 'play-message'.
severity:
type: string
description: Severity of the issue.
enum:
- ERROR
example: ERROR
ActivityInput:
title: ActivityInput
type: object
description: A single input field on an activity definition.
additionalProperties: true
properties:
name:
type: string
description: Input field name.
example: channelType
type:
type: string
description: Input data type (for example, `string`, `boolean`, `int`, `object[]`).
example: string
required:
type: boolean
description: True if the input must be supplied.
example: true
defaultValue:
description: Default value applied when the input is not supplied. May be null. Type matches `type`.
example: null
showOnCondition:
type:
- string
- 'null'
description: Expression controlling when this input is shown in authoring UIs, evaluated against sibling input values. Null when the input is always shown.
example: toggle == false
isSecure:
type: boolean
description: True if the input holds sensitive data that should be masked.
example: false
allowedValues:
type:
- array
- 'null'
description: Enumerated allowed values for a static-choice input. Null when the input is unconstrained or resolves its choices dynamically via `choicesEndpoint`.
items:
type: string
example:
- TELEPHONY
- WORK_ITEM
choicesEndpoint:
type:
- string
- 'null'
description: Relative endpoint used to resolve choices dynamically for this input. Null when the input has no dynamic choices.
example: GET /v2/activities/play-message/inputs/audioFile/choices
children:
type: array
description: Nested inputs for composite/object inputs. Empty when the input has no children.
items:
$ref: '#/components/schemas/ActivityInput'
description:
type: string
description: Human-readable description of the input.
example: Channel type the contact arrived on.
FlowV2ErrorResponse:
title: FlowV2ErrorResponse
type: object
description: Standard error envelope returned by flow endpoints. For 400 (bad request) and 422 (validation failure), `details[]` carries field-level error information.
additionalProperties: true
example:
code: INVALID_FLOW
message: Flow document failed validation.
details:
- path: /nodes/2/inputs/queue
code: UNKNOWN_QUEUE
message: Queue 'Main_Support_Quueue' was not found in the project.
properties:
code:
type: string
description: Stable, machine-readable error code.
example: INVALID_FLOW
message:
type: string
description: Human-readable error message.
example: Flow document failed validation.
details:
type: array
description: Per-issue error details. Populated for 400 and 422 responses.
items:
$ref: '#/components/schemas/FlowV2ValidationError'
ActivityV2:
title: ActivityV2
type: object
description: Definition of an activity type, including its inputs, outputs, and named output ports.
additionalProperties: true
example:
activityName: play-message
displayName: Play Message
category: core
group: action
activityType: action
inputs: []
outputs: []
outputPorts:
- condition: error
label: ''
isErrorPath: true
- condition: default
label: default
isErrorPath: false
properties:
activityName:
type: string
description: Stable activity type identifier referenced by a flow node's `properties.activityName`. Read the value verbatim from this endpoint; it is not always kebab-case (for example, `SetCallerID`, `Feedback-V2`, `queue-lookup`).
example: play-message
displayName:
type: string
description: Human-readable name shown in authoring UIs.
example: Play Message
category:
type: string
description: High-level grouping the activity belongs to (for example, `core`).
example: core
group:
type: string
description: Group the activity belongs to. An open set; observed values include `action`, `enum-gateway`, `http-request`, `parse-activity`, `set-variable`, and `terminating-action`. Read the value verbatim rather than assuming a fixed set.
example: action
activityType:
type: string
description: Underlying activity classification used by the runtime (for example, `action`, `start`).
example: action
inputs:
type: array
description: Declared inputs for the activity.
items:
$ref: '#/components/schemas/ActivityInput'
outputs:
type: array
description: Declared outputs for the activity.
items:
$ref: '#/components/schemas/ActivityOutput'
outputPorts:
type: array
description: Output ports the activity may exit through. An edge's `condition` must match one of these ports' `condition` values.
items:
$ref: '#/components/schemas/ActivityOutputPort'
ActivityOutput:
title: ActivityOutput
type: object
description: A single output field produced by an activity.
additionalProperties: true
properties:
name:
type: string
description: Output field name.
example: callerEnteredDigits
type:
type: string
description: Output data type.
example: STRING
description:
type: string
description: Human-readable description of the output.
example: Digits the caller entered before timeout.
ActivityOutputPort:
title: ActivityOutputPort
type: object
description: An output port the activity may exit through. Edges reference a port via their `condition`.
additionalProperties: true
properties:
condition:
type: string
description: Port condition. An edge's `condition` must match one of these verbatim (for example, `default`, `error`).
example: default
label:
type: string
description: Human-readable port label shown in authoring UIs. May be empty.
example: default
isErrorPath:
type: boolean
description: True if this port is the activity's error path.
example: false
ActivityChoiceEntry:
title: ActivityChoiceEntry
type: object
description: A single resolved choice for an activity input.
additionalProperties: true
properties:
name:
type: string
description: Human-readable label shown in authoring UIs.
example: Main Support Queue
value:
type: string
description: The choice value/ID, suitable for use as the activity input value.
example: Main_Support_Queue
ActivityInputChoices:
title: ActivityInputChoices
type: object
description: Resolved choices for an activity input, returned by the activity input choices endpoint, along with resolution metadata.
additionalProperties: true
example:
count: 2
source: static
choices:
- name: Voice
value: TELEPHONY
- name: Work item
value: WORK_ITEM
parentInputName: ''
parentValue: ''
isSearchEnabled: false
resolvedInput: channelType
activity: queue-lookup
input: channelType
properties:
count:
type: integer
description: Number of choices returned.
example: 2
source:
type: string
description: How the choices were resolved.
enum:
- list
- search
- validate
- dynamic
- static
example: static
choices:
type: array
description: The resolved choices.
items:
$ref: '#/components/schemas/ActivityChoiceEntry'
parentInputName:
type: string
description: Parent input name echoed back for cascading resolution (empty when not cascading).
example: ''
parentValue:
type: string
description: Parent input value echoed back for cascading resolution (empty when not cascading).
example: ''
isSearchEnabled:
type: boolean
description: True when the input supports server-side search/filtering.
example: false
resolvedInput:
type: string
description: The input name the choices were resolved for.
example: channelType
activity:
type: string
description: The activity name the input belongs to.
example: queue-lookup
input:
type: string
description: The requested input name.
example: channelType
securitySchemes:
oauth2:
flows:
authorizationCode:
authorizationUrl: /
scopes: {}
tokenUrl: /
type: oauth2
bearer-key:
type: http
description: e.g. Bearer YOUR_AUTHORIZATION_TOKEN
scheme: bearer
bearerFormat: JWT
BEARER_TOKEN_FROM_CI:
type: http
in: header
scheme: bearer
Bearer:
type: http
description: e.g. Bearer YOUR_AUTHORIZATION_TOKEN
scheme: bearer
bearerFormat: JWT
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: JWT bearer token authentication. Obtain your token from the Webex Developer Portal.