Symphony Signals API

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

Operations 8

GET /v1/signals/list Symphony 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 Symphony Get Details of the Requested Signal
POST /v1/signals/create Symphony Create a Signal
POST /v1/signals/{id}/update Symphony Update a Signal
POST /v1/signals/{id}/delete Symphony Delete a Signal
POST /v1/signals/{id}/subscribe Symphony Subscribe to a Signal
POST /v1/signals/{id}/unsubscribe Symphony Unsubscribe to a Signal
GET /v1/signals/{id}/subscribers Symphony Get the Subscribers of a Signal

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/symphony-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

symphony-signals-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Symphony 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: 22.9.1
servers:
- url: /
tags:
- name: Signals
paths:
  /v1/signals/list:
    get:
      tags:
      - Signals
      summary: 'Symphony 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: Symphony 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: Symphony 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: Symphony 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
    SignalList:
      type: array
      items:
        $ref: '#/components/schemas/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
    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
    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
    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'
    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'
    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