Webex Activities API

The Activities API from Webex — 3 operation(s) for activities.

Operations 3

GET /{orgId}/project/{projectId}/v2/activities List Activity Definitions #
GET /{orgId}/project/{projectId}/v2/activities/{activityName} Describe an Activity #
GET /{orgId}/project/{projectId}/v2/activities/{activityName}/inputs/{inputName}/choices Get Activity Input Choices #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/webex:webex-activities-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

webex-activities-api-openapi.yml Raw ↑
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.