Symphony Signals API

The Signals API from Symphony — 8 operation(s) for signals.

OpenAPI Specification

symphony-signals-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Symphony Agent Add Signals API
  description: 'This document refers to Symphony API calls to send and receive messages

    and content. They need the on-premise Agent installed to perform

    decryption/encryption of content.


    - sessionToken and keyManagerToken can be obtained by calling the

    authenticationAPI on the symphony back end and the key manager

    respectively. Refer to the methods described in authenticatorAPI.yaml.

    - Actions are defined to be atomic, ie will succeed in their entirety

    or fail and have changed nothing.

    - If it returns a 40X status then it will have sent no message to any

    stream even if a request to some subset of the requested streams

    would have succeeded.

    - If this contract cannot be met for any reason then this is an error

    and the response code will be 50X.

    - MessageML is a markup language for messages. See reference here:

    https://rest-api.symphony.com/docs/messagemlv2

    - **Real Time Events**: The following events are returned when reading

    from a real time messages and events stream ("datafeed"). These

    events will be returned for datafeeds created with the v5 endpoints.

    To know more about the endpoints, refer to Create Messages/Events

    Stream and Read Messages/Events Stream. Unless otherwise specified,

    all events were added in 1.46.

    '
  version: 22.9.1
servers:
- url: /
tags:
- name: Signals
paths:
  /v1/signals/list:
    get:
      tags:
      - Signals
      summary: 'List signals for the requesting user. This includes signals that the user has created and public signals

        to which they subscribed.

        '
      parameters:
      - name: sessionToken
        in: header
        description: Session authentication token.
        required: true
        schema:
          type: string
      - name: keyManagerToken
        in: header
        description: Key Manager authentication token.
        schema:
          type: string
      - name: skip
        in: query
        description: No. of signals to skip.
        schema:
          type: integer
      - name: limit
        in: query
        description: 'Max no. of signals to return. If no value is provided, 50 is the default. The maximum supported value is 500.

          '
        schema:
          type: integer
      responses:
        '200':
          description: List of signals for the requesting user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignalList'
        '400':
          description: Client error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '401':
          description: 'Unauthorized: Session tokens invalid.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '403':
          description: 'Forbidden: Caller lacks necessary entitlement.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '500':
          description: Server error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
  /v1/signals/{id}/get:
    get:
      tags:
      - Signals
      summary: Get Details of the Requested Signal
      parameters:
      - name: sessionToken
        in: header
        description: Session authentication token.
        required: true
        schema:
          type: string
      - name: keyManagerToken
        in: header
        description: Key Manager authentication token.
        schema:
          type: string
      - name: id
        in: path
        description: The ID of the signal to display.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: List of signals for the requesting user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Signal'
        '400':
          description: Client error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '401':
          description: 'Unauthorized: Session tokens invalid.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '403':
          description: 'Forbidden: Caller lacks necessary entitlement.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '500':
          description: Server error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
  /v1/signals/create:
    post:
      tags:
      - Signals
      summary: Create a Signal
      parameters:
      - name: sessionToken
        in: header
        description: Session authentication token.
        required: true
        schema:
          type: string
      - name: keyManagerToken
        in: header
        description: Key Manager authentication token.
        schema:
          type: string
      requestBody:
        description: Signal definition.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BaseSignal'
        required: true
      responses:
        '200':
          description: Signal created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Signal'
        '400':
          description: Client error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '401':
          description: 'Unauthorized: Session tokens invalid.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '403':
          description: 'Forbidden: Caller lacks necessary entitlement.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '451':
          description: Compliance Issues found in signal
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '500':
          description: Server error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
      x-codegen-request-body-name: signal
  /v1/signals/{id}/update:
    post:
      tags:
      - Signals
      summary: Update a Signal
      parameters:
      - name: sessionToken
        in: header
        description: Session authentication token.
        required: true
        schema:
          type: string
      - name: keyManagerToken
        in: header
        description: Key Manager authentication token.
        schema:
          type: string
      - name: id
        in: path
        description: The id of the signal.
        required: true
        schema:
          type: string
      requestBody:
        description: Signal definition.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BaseSignal'
        required: true
      responses:
        '200':
          description: Signal updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Signal'
        '400':
          description: Client error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '401':
          description: 'Unauthorized: Session tokens invalid.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '403':
          description: 'Forbidden: Caller lacks necessary entitlement.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '451':
          description: Compliance Issues found in signal
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '500':
          description: Server error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
      x-codegen-request-body-name: signal
  /v1/signals/{id}/delete:
    post:
      tags:
      - Signals
      summary: Symphony Delete a Signal
      parameters:
      - name: sessionToken
        in: header
        description: Session authentication token.
        required: true
        schema:
          type: string
      - name: keyManagerToken
        in: header
        description: Key Manager authentication token.
        schema:
          type: string
      - name: id
        in: path
        description: The id of the signal.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Signal deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '400':
          description: Client error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '401':
          description: 'Unauthorized: Session tokens invalid.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '403':
          description: 'Forbidden: Caller lacks necessary entitlement.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '500':
          description: Server error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
  /v1/signals/{id}/subscribe:
    post:
      tags:
      - Signals
      summary: Symphony Subscribe to a Signal
      parameters:
      - name: sessionToken
        in: header
        description: Session authentication token.
        required: true
        schema:
          type: string
      - name: keyManagerToken
        in: header
        description: Key Manager authentication token.
        schema:
          type: string
      - name: id
        in: path
        description: The id of the signal.
        required: true
        schema:
          type: string
      - name: pushed
        in: query
        description: Prevent the user to unsubscribe (only for bulk subscription)
        schema:
          type: boolean
      requestBody:
        description: UserIds to subscribe (only for bulk subscription)
        content:
          application/json:
            schema:
              type: array
              items:
                type: integer
                format: int64
        required: false
      responses:
        '200':
          description: Signal subscribed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelSubscriptionResponse'
        '400':
          description: Client error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '401':
          description: 'Unauthorized: Session tokens invalid.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '403':
          description: 'Forbidden: Caller lacks necessary entitlement.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '500':
          description: Server error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
      x-codegen-request-body-name: users
  /v1/signals/{id}/unsubscribe:
    post:
      tags:
      - Signals
      summary: Symphony Unsubscribe to a Signal
      parameters:
      - name: sessionToken
        in: header
        description: Session authentication token.
        required: true
        schema:
          type: string
      - name: keyManagerToken
        in: header
        description: Key Manager authentication token.
        schema:
          type: string
      - name: id
        in: path
        description: The id of the signal.
        required: true
        schema:
          type: string
      requestBody:
        description: UserIds to unsubscribe (only for bulk unsubscription)
        content:
          application/json:
            schema:
              type: array
              items:
                type: integer
                format: int64
        required: false
      responses:
        '200':
          description: Signal unsubscribed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelSubscriptionResponse'
        '400':
          description: Client error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '401':
          description: 'Unauthorized: Session tokens invalid.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '403':
          description: 'Forbidden: Caller lacks necessary entitlement.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '500':
          description: Server error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
      x-codegen-request-body-name: users
  /v1/signals/{id}/subscribers:
    get:
      tags:
      - Signals
      summary: Symphony Get the Subscribers of a Signal
      parameters:
      - name: sessionToken
        in: header
        description: Session authentication token.
        required: true
        schema:
          type: string
      - name: keyManagerToken
        in: header
        description: Key Manager authentication token.
        schema:
          type: string
      - name: id
        in: path
        description: The id of the signal.
        required: true
        schema:
          type: string
      - name: skip
        in: query
        description: No. of results to skip.
        schema:
          type: integer
          default: 0
      - name: limit
        in: query
        description: Max No. of subscribers to return. If no value is provided, 100 is the default.
        schema:
          type: integer
          default: 100
      responses:
        '200':
          description: Signal Subscribers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelSubscriberResponse'
        '400':
          description: Client error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '401':
          description: 'Unauthorized: Session tokens invalid.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '403':
          description: 'Forbidden: Caller lacks necessary entitlement.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
        '500':
          description: Server error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2Error'
components:
  schemas:
    V2Error:
      required:
      - code
      - message
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        details:
          type: object
    BaseSignal:
      type: object
      properties:
        name:
          type: string
          description: Signal name
        query:
          type: string
          description: 'The query used to define this signal. The query is defined as "field:value" pairs combined by the operators

            "AND" or "OR". Supported fields are (case-insensitive): "author", "hashtag" and "cashtag".

            MUST contain at least one "hashtag" or "cashtag" definition.

            '
        visibleOnProfile:
          type: boolean
          description: Whether the signal is visible on its creator's profile
        companyWide:
          type: boolean
          description: Whether the signal is a push signal
    Signal:
      allOf:
      - $ref: '#/components/schemas/BaseSignal'
      - type: object
        properties:
          id:
            type: string
            description: Signal ID
          timestamp:
            type: integer
            description: Timestamp when the signal was created, in milliseconds since Jan 1 1970
            format: int64
          companyWide:
            type: boolean
            description: Whether the signal is a push signal
    SignalList:
      type: array
      items:
        $ref: '#/components/schemas/Signal'
    ChannelSubscriptionResponse:
      type: object
      properties:
        requestedSubscription:
          type: integer
          description: The number of requested userIds to subscribe
          format: int64
        successfulSubscription:
          type: integer
          description: The number of successful subscriptions done
          format: int64
        failedSubscription:
          type: integer
          description: The number of subscription failures
          format: int64
        subscriptionErrors:
          type: array
          items:
            $ref: '#/components/schemas/ChannelSubscriptionError'
    SuccessResponse:
      type: object
      properties:
        format:
          type: string
          enum:
          - TEXT
          - XML
        message:
          type: string
    ChannelSubscriber:
      type: object
      properties:
        subscriptionId:
          type: string
        pushed:
          type: boolean
          description: True if the subscriber is allowed to unsubscribe
          default: false
        owner:
          type: boolean
          description: True if the subscriber is the creator
          default: false
        subscriberName:
          type: string
          description: User display name
        userId:
          type: integer
          description: The user ID of the subscriber
          format: int64
        timestamp:
          type: integer
          description: Timestamp when the signal was subscribed, in milliseconds since Jan 1 1970
          format: int64
    ChannelSubscriptionError:
      type: object
      properties:
        userId:
          type: integer
          description: The userId on which failure happened
          format: int64
        code:
          type: string
          description: subscription failure code
        message:
          type: string
          description: subscription failure message
    ChannelSubscriberResponse:
      type: object
      properties:
        offset:
          type: integer
          description: The number of subscribers skipped
          format: int64
        hasMore:
          type: boolean
          description: True if there are more subscribers
        total:
          type: integer
          description: The total number of subscribers
        data:
          type: array
          items:
            $ref: '#/components/schemas/ChannelSubscriber'