FactSet Real-Time Price Alerting API

Basic Price Alerting deals with generation of alerts based on current price data. Users can define an upper or lower limit and choose on which price type those limit conditions apply.

OpenAPI Specification

real-time-price-alerting-openapi-original.yml Raw ↑
openapi: 3.0.0
info:
  version: 3.0.0
  title: Factset Price Alerting API For Digital Portals
  description: >
    The Price Alerting API is designed to inform the users of an application
    directly about important changes in the data on the platform. The endpoint
    group *basic price alerting* deals with generation of alerts based on
    current price data. For notations, users can define an upper or lower limit
    and choose on which price type those limit conditions apply.


    Alerting uses the concepts of triggers and alerts.


    A trigger is an entity that is set up by an application to watch a certain
    condition in the market data around a financial instrument. The standard
    conditions that can be applied are lower limit and upper limit for the value
    of the price for a given financial instrument.


    When the condition of a trigger is met, an alert is created. Each alert thus
    represents one event where a trigger condition was met.


    An application can learn about the creation of alerts in two ways: The
    application can actively request the list of alerts (pull approach) or it
    can subscribe to the list of existing alerts. If a new alert is created,
    that list changes and the application is notified about the new alert with
    an update that contains the details on the new alert (push approach).


    The API supports both approaches. The push approach is realized most easily
    by using the subscription support that the client libraries provide.


    See the [Quotes API for Digital
    Portals](https://developer.factset.com/api-catalog/quotes-api-digital-portals)
    for access to detailed price information.


    Note: As part of the general trial access, endpoints to write data are
    excluded. For a description of the full alerting API, please work with a

    FactSet consultant and see https://endpointreference.factset.com.
  contact:
    name: FactSet Research Systems
    url: https://developer.factset.com/contact
    email: [email protected]
  license:
    name: Apache License, Version 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
  - url: https://api.factset.com/wealth/v3
paths:
  /alerting/prices/basic/alert/get:
    get:
      tags:
        - Alerting
      operationId: get/alerting/prices/basic/alert/get
      x-supportsOffsetBasedPaging: false
      x-supportsOffsetBasedPagingWithoutTotal: false
      x-supportsCursorBasedPaging: false
      x-supportsCursorBasedPagingWithoutTotal: false
      x-supportsPush: false
      x-requiresUser: true
      x-requiresInternalClient: false
      x-disallowUser: false
      x-no-merge: false
      x-maxSortParameterCount: 10
      x-supportsPermissionDeniedResponse: false
      description: >-
        Details of an alert. The details include the trigger definition at the
        time of alert creation.
      summary: Factset Details of an alert.
      parameters:
        - name: id
          in: query
          schema:
            description: Identifier of the alert.
            type: string
            format: id64
            x-positive: true
          required: true
        - name: _attributes
          in: query
          schema:
            type: array
            items:
              type: string
              maxLength: 100
              exclusiveMaximum: false
            uniqueItems: true
            maxItems: 50
          style: form
          explode: false
          description: Limit the attributes returned in the response to the specified set.
      responses:
        '200':
          $ref: '#/components/responses/GetAlertingPricesBasicAlertGet200Response'
  /alerting/prices/basic/alert/list:
    get:
      tags:
        - Alerting
      operationId: get/alerting/prices/basic/alert/list
      x-supportsOffsetBasedPaging: false
      x-supportsOffsetBasedPagingWithoutTotal: false
      x-supportsCursorBasedPaging: true
      x-supportsCursorBasedPagingWithoutTotal: false
      x-supportsPush: true
      x-requiresUser: true
      x-requiresInternalClient: false
      x-disallowUser: false
      x-no-merge: false
      x-maxSortParameterCount: 10
      x-supportsPermissionDeniedResponse: false
      description: List of alerts in descending order of creation.
      summary: Factset List of alerts.
      responses:
        '200':
          $ref: '#/components/responses/GetAlertingPricesBasicAlertList200Response'
      parameters:
        - name: _attributes
          in: query
          schema:
            type: array
            items:
              type: string
              maxLength: 100
              exclusiveMaximum: false
            uniqueItems: true
            maxItems: 50
          style: form
          explode: false
          description: Limit the attributes returned in the response to the specified set.
        - description: >-
            Non-negative number of milliseconds to throttle the update rate from
            0ms to 5000ms. Set to 0 for sending updates immediately.
          name: _subscriptionMinimumInterval
          in: query
          schema:
            type: number
            format: int32
            minimum: 0
            exclusiveMinimum: false
            maximum: 5000
            exclusiveMaximum: false
            default: 0
        - description: >-
            Starting point as returned in the attributes `pagination.next` or
            `pagination.previous` by a prior invocation of this endpoint, or
            undefined (default).
          name: _paginationCursor
          in: query
          schema:
            type: string
            maxLength: 50
            exclusiveMaximum: false
        - description: Non-negative maximum number of entries to return.
          name: _paginationLimit
          in: query
          schema:
            type: number
            format: int32
            minimum: 0
            exclusiveMinimum: false
            maximum: 500
            exclusiveMaximum: false
            default: 20
  /alerting/prices/basic/trigger/get:
    get:
      tags:
        - Alerting
      operationId: get/alerting/prices/basic/trigger/get
      x-supportsOffsetBasedPaging: false
      x-supportsOffsetBasedPagingWithoutTotal: false
      x-supportsCursorBasedPaging: false
      x-supportsCursorBasedPagingWithoutTotal: false
      x-supportsPush: false
      x-requiresUser: true
      x-requiresInternalClient: false
      x-disallowUser: false
      x-no-merge: false
      x-maxSortParameterCount: 10
      x-supportsPermissionDeniedResponse: false
      description: Details of a trigger.
      summary: Factset Details of a trigger.
      parameters:
        - name: id
          in: query
          schema:
            type: string
            format: id64
            x-positive: true
            description: Identifier of the trigger.
          required: true
        - name: _attributes
          in: query
          schema:
            type: array
            items:
              type: string
              maxLength: 100
              exclusiveMaximum: false
            uniqueItems: true
            maxItems: 50
          style: form
          explode: false
          description: Limit the attributes returned in the response to the specified set.
      responses:
        '200':
          $ref: '#/components/responses/GetAlertingPricesBasicTriggerGet200Response'
  /alerting/prices/basic/trigger/list:
    post:
      tags:
        - Alerting
      operationId: post/alerting/prices/basic/trigger/list
      x-supportsOffsetBasedPaging: false
      x-supportsOffsetBasedPagingWithoutTotal: false
      x-supportsCursorBasedPaging: true
      x-supportsCursorBasedPagingWithoutTotal: false
      x-supportsPush: false
      x-requiresUser: true
      x-requiresInternalClient: false
      x-disallowUser: false
      x-no-merge: false
      x-maxSortParameterCount: 10
      x-supportsPermissionDeniedResponse: false
      description: Returns a list of triggers sorted in descending order of creation.
      summary: Factset List of triggers.
      requestBody:
        description: Request Body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostAlertingPricesBasicTriggerListRequest'
        required: false
      responses:
        '200':
          $ref: '#/components/responses/PostAlertingPricesBasicTriggerList200Response'
      parameters: []
components:
  schemas:
    ErrorMetaObject:
      type: object
      description: The meta member contains the meta information of the response.
      properties:
        status:
          $ref: '#/components/schemas/StatusObject'
    ErrorObject:
      type: array
      description: >-
        The errors member contains additional information about a failed
        request.
      items:
        type: object
        properties:
          details:
            type: string
            description: >-
              A human-readable, unstructured explanation specific to this
              occurrence of the failure.
          encryptedDetails:
            type: string
            description: >-
              Base64-encoded, internal details about the error, in addition to
              "details".
          type:
            type: number
            format: int32
            description: Internal error type of the Foundation API protocol.
          attribute:
            type: array
            description: >-
              For a validation error, a reference to the request parameter that
              failed validation; otherwise, an empty array.
            items:
              type: object
              properties:
                name:
                  type: string
                  description: Element of the path denoting the request parameter.
                index:
                  type: number
                  format: int32
                  description: >-
                    If the attribute "name" designates an array, index of the
                    array element; otherwise the special value -1.
              x-property-sort:
                - name
                - index
        x-property-sort:
          - details
          - encryptedDetails
          - type
          - attribute
    AttributesMember:
      type: array
      description: Limit the attributes returned in the response to the specified set.
      items:
        type: string
        maxLength: 100
        exclusiveMaximum: false
      maxItems: 50
      uniqueItems: true
    LanguageMember:
      type: string
      format: isoLanguage
      description: ISO 639-1 code of the language.
      maxLength: 2
      minLength: 2
      exclusiveMinimum: false
      exclusiveMaximum: false
    StatusObject:
      type: object
      properties:
        code:
          type: number
          format: int32
          description: >-
            The HTTP status code of the response, mirroring the code from the
            Status-Line of the HTTP response message (see [RFC2616] section
            6.1).
      description: The status member contains the status code of the response.
      required:
        - code
    CursorBasedPaginationOutputObject:
      type: object
      description: Pagination attributes for the cursor-based pagination strategy.
      properties:
        total:
          type: number
          format: int32
          description: Total number of entries in the result set.
        isEstimatedTotal:
          type: boolean
          description: Flag indicating that the value of `total` is estimated.
        next:
          type: string
          description: >-
            The next cursor position to use in the parameter `pagination.cursor`
            for an endpoint that supports cursor-based pagination, otherwise
            `null`.
        previous:
          type: string
          description: >-
            The previous cursor position to use in the parameter
            `pagination.cursor` for an endpoint that supports cursor-based
            pagination. If a previous cursor position is not supported or
            available, `previous` is `null`.
      required:
        - total
        - isEstimatedTotal
        - next
        - previous
      x-property-sort:
        - total
        - isEstimatedTotal
        - next
        - previous
    CursorBasedPaginationOutputObjectWithoutTotal:
      type: object
      description: >-
        Pagination attributes for the cursor-based pagination strategy; a total
        element count is not supported.
      properties:
        next:
          type: string
          description: >-
            The next cursor position to use in the parameter `pagination.cursor`
            for an endpoint that supports cursor-based pagination, otherwise
            `null`.
        previous:
          type: string
          description: >-
            The previous cursor position to use in the parameter
            `pagination.cursor` for an endpoint that supports cursor-based
            pagination. If a previous cursor position is not supported or
            available, `previous` is `null`.
      required:
        - next
        - previous
      x-property-sort:
        - next
        - previous
    OffsetBasedPaginationOutputObject:
      type: object
      description: Pagination attributes for the offset-based pagination strategy.
      properties:
        total:
          type: number
          format: int32
          description: Total number of entries in the result set.
        isEstimatedTotal:
          type: boolean
          description: Flag indicating that the value of "total" is estimated.
      required:
        - total
        - isEstimatedTotal
      x-property-sort:
        - total
        - isEstimatedTotal
    OffsetBasedPaginationOutputObjectWithoutTotal:
      type: object
      description: >-
        Pagination attributes for the offset-based pagination strategy; a total
        element count is not supported.
      properties:
        hasNext:
          type: boolean
          description: >-
            Flag indicating that a subsequent request with the same parameters,
            except that the parameter `pagination.offset` is incremented by
            `pagination.limit`, would yield additional results.
      required:
        - hasNext
      x-property-sort:
        - hasNext
    PartialOutputObject:
      type: object
      properties:
        isPartial:
          type: boolean
          description: >-
            Flag indicating that the response is a possibly incomplete array or
            an object containing a possibly incomplete array, due to hitting a
            processing time limit. If `true`, some matching results might be
            missing from the array, or elements for matching results might be
            incorrectly included (for example, when priority sorting would have
            removed the element). Depending on the use case, such a response may
            be unsuitable.
      description: Object denoting that the endpoint response is possibly incomplete.
      required:
        - isPartial
      x-property-sort:
        - isPartial
    PostAlertingPricesBasicTriggerListRequest:
      x-property-sort:
        - data
        - meta
      description: Request Body
      type: object
      properties:
        data:
          type: object
          x-property-sort:
            - filter
          description: The data member contains the request's primary data.
          properties:
            filter:
              type: object
              x-property-sort:
                - status
              description: Criteria that filter the items in the response list.
              properties:
                status:
                  type: object
                  x-property-sort:
                    - code
                  description: Status of the trigger.
                  properties:
                    code:
                      type: string
                      description: Code of the status.
                      x-enum-description:
                        - >-
                          The trigger is active and trigger conditions are
                          evaluated.
                        - >-
                          The trigger is inactive and conditions do not generate
                          alerts.
                        - >-
                          The trigger is in an error state, error details are
                          noted in `details`
                      enum:
                        - active
                        - inactive
                        - error
        meta:
          type: object
          description: The meta member contains the meta information of the request.
          properties:
            attributes:
              $ref: '#/components/schemas/AttributesMember'
            pagination:
              type: object
              description: Pagination attributes for the cursor-based pagination strategy.
              properties:
                cursor:
                  type: string
                  maxLength: 50
                  exclusiveMaximum: false
                  description: >-
                    Starting point as returned in the attributes
                    `pagination.next` or `pagination.previous` by a prior
                    invocation of this endpoint, or undefined (default).
                limit:
                  type: number
                  format: int32
                  minimum: 0
                  exclusiveMinimum: false
                  maximum: 500
                  exclusiveMaximum: false
                  default: 20
                  description: Non-negative maximum number of entries to return.
              x-property-sort:
                - cursor
                - limit
          x-property-sort:
            - attributes
            - pagination
  responses:
    ErrorResponse:
      description: Generic error response for all errors (400 ... 599 error codes)
      headers: {}
      content:
        application/json:
          schema:
            type: object
            properties:
              meta:
                $ref: '#/components/schemas/ErrorMetaObject'
              errors:
                $ref: '#/components/schemas/ErrorObject'
            x-property-sort:
              - meta
              - errors
    GetAlertingPricesBasicAlertGet200Response:
      description: Successful Response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: object
                properties:
                  id:
                    nullable: true
                    type: string
                    format: id64
                    x-positive: true
                    description: Identifier of the alert.
                  creation:
                    nullable: true
                    type: string
                    format: datetime
                    description: Date and time when the alert was created.
                  price:
                    nullable: false
                    type: object
                    x-property-sort:
                      - value
                      - time
                    description: Price data at the time of alert creation.
                    properties:
                      value:
                        nullable: true
                        type: number
                        format: real
                        description: >-
                          Depending on `trigger.price.type`, the trade, bid, or
                          ask price.
                      time:
                        nullable: true
                        type: string
                        format: datetime
                        description: Date and time of the price.
                  notification:
                    nullable: false
                    type: object
                    x-property-sort:
                      - status
                    description: Notification information of the alert.
                    properties:
                      status:
                        nullable: false
                        description: Status of a notification per channel.
                        type: array
                        items:
                          type: object
                          nullable: false
                          x-property-sort:
                            - channel
                            - time
                            - code
                          properties:
                            channel:
                              nullable: false
                              type: object
                              x-property-sort:
                                - id
                              description: Details of the notification channel.
                              properties:
                                id:
                                  nullable: true
                                  type: number
                                  format: id32
                                  x-positive: true
                                  description: Identifier of the notification channel.
                            time:
                              nullable: true
                              type: string
                              format: datetime
                              description: Date and time of the most recent change.
                            code:
                              nullable: true
                              type: string
                              description: Code of the status.
                              x-enum-description:
                                - Notification has not been processed.
                                - >-
                                  Notification has been sent but delivery status
                                  is unknown.
                                - Notification has been delivered.
                                - >-
                                  Notification has not been delivered due to an
                                  error.
                                - >-
                                  Notification delivery has been rejected
                                  (possibly due to return mails being received
                                  for delivery address).
                              enum:
                                - pending
                                - sent
                                - delivered
                                - error
                                - rejected
                  trigger:
                    nullable: false
                    description: Trigger data at the time of alert creation.
                    type: object
                    x-property-sort:
                      - id
                      - creation
                      - notation
                      - price
                      - range
                      - comment
                      - notification
                      - status
                    properties:
                      id:
                        nullable: true
                        type: string
                        format: id64
                        x-positive: true
                        description: Identifier of the trigger.
                      creation:
                        nullable: true
                        type: string
                        format: datetime
                        description: Date and time when the trigger was created.
                      notation:
                        nullable: false
                        type: object
                        x-property-sort:
                          - id
                        description: Notation data of the trigger.
                        properties:
                          id:
                            nullable: true
                            type: string
                            format: id64
                            x-positive: true
                            description: Identifier of the notation.
                      price:
                        nullable: false
                        description: Price data of the trigger.
                        type: object
                        x-property-sort:
                          - type
                          - quality
                        properties:
                          type:
                            nullable: true
                            type: string
                            description: Type of the price as configured for the customer.
                            x-enum-description:
                              - >-
                                Trade price (ordinary, auction, pre or
                                post-trading).
                              - Bid price.
                              - Ask price.
                            enum:
                              - trade
                              - bid
                              - ask
                          quality:
                            nullable: true
                            type: string
                            description: Price quality of the trigger.
                            x-enum-description:
                              - >-
                                Real-Time: intraday prices with minimal
                                technical processing delays.
                              - >-
                                Delayed: intraday prices with an
                                exchange-imposed delay of usually 15 to 30
                                minutes.
                              - >-
                                End-of-day: prices updated once per day after
                                the close of trading, possibly with an
                                exchange-imposed delay of several hours.
                            enum:
                              - RLT
                              - DLY
                              - EOD
                      range:
                        nullable: false
                        type: object
                        x-property-sort:
                          - upperLimit
                          - lowerLimit
                        description: Price range for the trigger to monitor.
                        properties:
                          upperLimit:
                            nullable: true
                            type: number
                            format: real
                            description: Upper limit.
                          lowerLimit:
                            nullable: true
                            type: number
                            format: real
                            description: Lower limit.
                      comment:
                        nullable: true
                        type: string
                        description: Comment of the trigger.
                      notification:
                        nullable: false
                        type: object
                        x-property-sort:
                          - channel
                        description: Notification specific configuration.
                        properties:
                          channel:
                            nullable: false
                            type: object
                            x-property-sort:
                              - id
                            description: Channel specific configuration.
                            properties:
                              id:
                                nullable: false
                                description: Identifier of the notification channel.
                                type: array
                                items:
                                  type: number
                                  format: id32
                                  x-positive: true
                      status:
                        nullable: false
                        type: object
                        x-property-sort:
                          - code
                          - details
                          - encryptedDetails
                        description: Status of the trigger.
                        properties:
                          code:
                            nullable: true
                            type: string
                            description: Code of the status.
                            x-enum-description:
                              - >-
                                The trigger is active and trigger conditions are
                                evaluated.
                              - >-
                                The trigger is inactive and conditions do not
                                generate alerts
                              - >-
                                The trigger is in an error state, error details
                                are noted in "details"
                            enum:
                              - active
                              - inactive
                              - error
                          details:
                            nullable: true
                            type: string
                            description: >-
                              A human-readable, unstructured explanation
                              specific to this error.
                          encryptedDetails:
                            nullable: true
                            type: string
                            description: >-
                              Base64-encoded, internal details about the error,
                              in addition to "details". An issue submitted to
                              Service Desk should contain this data to speed up
                              investigation.
                description: Details of the alert.
                nullable: false
                x-property-sort:
                  - id
                  - creation
                  - price
                  - notification
                  - trigger
              meta:
                type: object
                description: The meta member contains the meta information of the response.
                properties:
                  status:
                    $ref: '#/components/schemas/StatusObject'
                x-property-sort:
                  - status
            x-property-sort:
              - data
              - meta
    GetAlertingPricesBasicAlertList200Response:
      description: Successful Response
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                description: List of alerts.
                nullable: false
                items:
                  type: object
                  nullable: false
                  x-property-sort:
                    - id
                    - creation
                    - price
                    - notification
                    - trigger
                  properties:
                    id:
                      nullable: true
                      type: string
                      format: id64
                      x-positive: true
                      description: Identifier of the alert.
                    creation:
                      nullable: true
                      type: string
                      format: datetime
                      description: Date and time when the alert was created.
                    price:
                      nullable: false
                      type: object
                      x-property-sort:
                        - value
                        - time
                      description: Price data at the time of alert creation.
                      properties:
                        value:
                          nullable: true
                          type: number
                          format: real
                          description: >-
                            Depending on `trigger.price.type`, the trade, bid,
                            or ask price.
                        time:
                          nullable: true
                          type: string
                          format: datetime
                          description: Date and time of the price.
                    notification:
                      null

# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/factset/refs/heads/main/openapi/real-time-price-alerting-openapi-original.yml