FINOS Signals API

The Signals API from FINOS — 9 operation(s) for signals.

OpenAPI Specification

finos-signals-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Agent Admin 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: 25.8.1
servers:
- url: youragentURL.symphony.com/agent
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: 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: 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: 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: 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'
  /v1/info:
    get:
      tags:
      - Signals
      summary: Get information about the Agent
      responses:
        200:
          description: Agent info.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentInfo'
        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:
    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
    AgentInfo:
      type: object
      properties:
        ipAddress:
          type: string
          description: The IP address of the Agent server.
        hostname:
          type: string
          description: The hostname of the Agent server.
        serverFqdn:
          type: string
          description: The fully-qualified domain name of the Agent server. Must be set by the user at startup.
        version:
          type: string
          description: The version of the Agent.
        url:
          type: string
          description: The URL under which the Agent is available.
        onPrem:
          type: boolean
          description: Whether this is an on-prem or cloud installation.
        mt:
          type: boolean
          description: Whether this is a multi tenant instance.
        commitId:
          type: string
          description: The Git commit ID of the running revision.
    SuccessResponse:
      type: object
      properties:
        format:
          type: string
          enum:
          - TEXT
          - XML
        message:
          type: string
    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'
    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
    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
    V2Error:
      required:
      - code
      - message
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        details:
          type: object
    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'
    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
    SignalList:
      type: array
      items:
        $ref: '#/components/schemas/Signal'