FINOS Signals API

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

Operations 9

GET /v1/signals/list List signals for the requesting user. This includes signals that the user has created and public signals to which they subscribed.
GET /v1/signals/{id}/get Get details of the requested signal.
POST /v1/signals/create Create a signal.
POST /v1/signals/{id}/update Update a signal.
POST /v1/signals/{id}/delete Delete a signal.
POST /v1/signals/{id}/subscribe Subscribe to a Signal.
POST /v1/signals/{id}/unsubscribe Unsubscribe to a Signal.
GET /v1/signals/{id}/subscribers Get the subscribers of a signal
GET /v1/info Get information about the Agent

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/finos-signals-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

finos-signals-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Agent 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:
    V2Error:
      required:
      - code
      - message
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        details:
          type: object
    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
    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'
    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.
    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
    SignalList:
      type: array
      items:
        $ref: '#/components/schemas/Signal'
    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
    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
    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'
    SuccessResponse:
      type: object
      properties:
        format:
          type: string
          enum:
          - TEXT
          - XML
        message:
          type: string