FactSet Signals API

Leverage Signals to identify material events for a company. Signals are derived from FactSet's core data, cognitive computing technology, and our 3rd party partners.

OpenAPI Specification

signals-openapi-original.yml Raw ↑
openapi: 3.0.2
info:
  title: Factset Signals API
  description: >-
    Collection of endpoints for providing Signal Events, Definitions and
    Metadata
  version: 2.6.0
  contact:
    name: Signals API Support
    email: [email protected]
servers:
  - url: https://api.factset.com/signals/v2
    description: Production
tags:
  - name: Categories
  - name: Data Dictionary
  - name: Events
    description: >-
      Fetch signal events. Please note that FactSet Cognitive signals and
      signals contributed by third parties are excluded from the response for
      limited API access.
  - name: Themes
paths:
  /events/headlines:
    get:
      tags:
        - Events
      x-factset-sdk-ignore: true
      operationId: getEventHeadlines
      description: >-
        Fetch Signals event headlines based on at least one of the following
        filtering parameters: `ids`, `portfolios`
      parameters:
        - $ref: '#/components/parameters/createdParam'
        - $ref: '#/components/parameters/updatedParam'
        - $ref: '#/components/parameters/signalIdsParam'
        - $ref: '#/components/parameters/idsParam'
        - $ref: '#/components/parameters/portfoliosParam'
        - $ref: '#/components/parameters/themesParam'
        - $ref: '#/components/parameters/categoriesParam'
        - $ref: '#/components/parameters/relevanceScoreParam'
        - $ref: '#/components/parameters/sortParam'
        - $ref: '#/components/parameters/resolveIdentifiersParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/eventHeadlines'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '429':
          description: API Rate Limit Exceeded
          headers:
            Api-Version:
              $ref: '#/components/headers/Api-Version'
            Api-Supported-Versions:
              $ref: '#/components/headers/Api-Supported-Versions'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rateLimitResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
    post:
      tags:
        - Events
      operationId: postEventHeadlines
      description: >-
        Fetch Signals event headlines based on the filtering criteria for up to
        1000 identifiers and at least one of the following filtering parameters:
        `ids`, `portfolios`
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/eventRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/eventHeadlines'
        '429':
          description: API Rate Limit Exceeded
          headers:
            Api-Version:
              $ref: '#/components/headers/Api-Version'
            Api-Supported-Versions:
              $ref: '#/components/headers/Api-Supported-Versions'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rateLimitResponse'
  /events/details:
    get:
      tags:
        - Events
      x-factset-sdk-ignore: true
      operationId: getEventDetails
      description: >-
        Fetch Signals event headlines plus all additional event details based on
        at least one of the following filtering parameters: `ids`, `portfolios`
      parameters:
        - $ref: '#/components/parameters/createdParam'
        - $ref: '#/components/parameters/updatedParam'
        - $ref: '#/components/parameters/signalIdsParam'
        - $ref: '#/components/parameters/idsParam'
        - $ref: '#/components/parameters/portfoliosParam'
        - $ref: '#/components/parameters/themesParam'
        - $ref: '#/components/parameters/categoriesParam'
        - $ref: '#/components/parameters/relevanceScoreParam'
        - $ref: '#/components/parameters/sortParam'
        - $ref: '#/components/parameters/resolveIdentifiersParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/eventDetails'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '429':
          description: API Rate Limit Exceeded
          headers:
            Api-Version:
              $ref: '#/components/headers/Api-Version'
            Api-Supported-Versions:
              $ref: '#/components/headers/Api-Supported-Versions'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rateLimitResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
    post:
      tags:
        - Events
      operationId: postEventDetails
      description: >-
        Fetch Signals event headlines plus all additional event details for up
        to 1000 identifiers and at least one of the following filtering
        parameters: `ids`, `portfolios`
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/eventRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/eventDetails'
        '429':
          description: API Rate Limit Exceeded
          headers:
            Api-Version:
              $ref: '#/components/headers/Api-Version'
            Api-Supported-Versions:
              $ref: '#/components/headers/Api-Supported-Versions'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rateLimitResponse'
  /events/details/{eventId}:
    get:
      tags:
        - Events
      operationId: getEventDetailById
      description: >-
        Fetch Signals event headlines plus all additional event details for a
        single requested Signal event
      parameters:
        - $ref: '#/components/parameters/eventIdParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/eventDetail'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '429':
          description: API Rate Limit Exceeded
          headers:
            Api-Version:
              $ref: '#/components/headers/Api-Version'
            Api-Supported-Versions:
              $ref: '#/components/headers/Api-Supported-Versions'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rateLimitResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
  /events/adaptive-cards:
    get:
      tags:
        - Events
      x-factset-sdk-ignore: true
      operationId: getEventAdaptiveCards
      description: >-
        Fetch Microsoft's Adaptive Cards, which includes headlines and event
        details data plus hyperlinks to FactSet reports, based on at least one
        of the following filtering parameters: `ids`, `portfolios`
      parameters:
        - $ref: '#/components/parameters/createdParam'
        - $ref: '#/components/parameters/updatedParam'
        - $ref: '#/components/parameters/signalIdsParam'
        - $ref: '#/components/parameters/idsParam'
        - $ref: '#/components/parameters/portfoliosParam'
        - $ref: '#/components/parameters/themesParam'
        - $ref: '#/components/parameters/categoriesParam'
        - $ref: '#/components/parameters/relevanceScoreParam'
        - $ref: '#/components/parameters/sortParam'
        - $ref: '#/components/parameters/resolveIdentifiersParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/eventAdaptiveCards'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '429':
          description: API Rate Limit Exceeded
          headers:
            Api-Version:
              $ref: '#/components/headers/Api-Version'
            Api-Supported-Versions:
              $ref: '#/components/headers/Api-Supported-Versions'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rateLimitResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
    post:
      tags:
        - Events
      operationId: postEventAdaptiveCards
      description: >-
        Fetch Microsoft's Adaptive Cards, which includes headlines and event
        details data plus hyperlinks to FactSet reports, based on at least one
        of the following filtering parameters: `ids`, `portfolios`
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/eventRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/eventAdaptiveCards'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '429':
          description: API Rate Limit Exceeded
          headers:
            Api-Version:
              $ref: '#/components/headers/Api-Version'
            Api-Supported-Versions:
              $ref: '#/components/headers/Api-Supported-Versions'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rateLimitResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
  /events/adaptive-cards/{eventId}:
    get:
      tags:
        - Events
      operationId: getEventAdaptiveCardById
      description: >-
        Fetch Microsoft's Adaptive Cards, which includes headlines and event
        details data plus hyperlinks to FactSet reports, for a single requested
        Signal event
      parameters:
        - $ref: '#/components/parameters/eventIdParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/eventAdaptiveCard'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '429':
          description: API Rate Limit Exceeded
          headers:
            Api-Version:
              $ref: '#/components/headers/Api-Version'
            Api-Supported-Versions:
              $ref: '#/components/headers/Api-Supported-Versions'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rateLimitResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
  /events/entities:
    get:
      tags:
        - Events
      x-factset-sdk-ignore: true
      operationId: getEventEntities
      description: Fetch FactSet entity IDs for events that match the filtering criteria
      parameters:
        - $ref: '#/components/parameters/createdParam'
        - $ref: '#/components/parameters/updatedParam'
        - $ref: '#/components/parameters/signalIdsParam'
        - $ref: '#/components/parameters/themesParam'
        - $ref: '#/components/parameters/categoriesParam'
        - $ref: '#/components/parameters/relevanceScoreParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/eventsEntities'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '429':
          description: API Rate Limit Exceeded
          headers:
            Api-Version:
              $ref: '#/components/headers/Api-Version'
            Api-Supported-Versions:
              $ref: '#/components/headers/Api-Supported-Versions'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rateLimitResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
    post:
      tags:
        - Events
      operationId: postEventEntities
      description: Fetch FactSet entity IDs for events that match the filtering criteria
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/eventsEntitiesPost'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/eventsEntities'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '429':
          description: API Rate Limit Exceeded
          headers:
            Api-Version:
              $ref: '#/components/headers/Api-Version'
            Api-Supported-Versions:
              $ref: '#/components/headers/Api-Supported-Versions'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rateLimitResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
  /data-dictionary:
    get:
      tags:
        - Data Dictionary
      operationId: getDataDictionary
      description: Fetch a list of all active signals
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signalMetaData'
        '429':
          description: API Rate Limit Exceeded
          headers:
            Api-Version:
              $ref: '#/components/headers/Api-Version'
            Api-Supported-Versions:
              $ref: '#/components/headers/Api-Supported-Versions'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rateLimitResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
  /data-dictionary/{signalId}:
    get:
      tags:
        - Data Dictionary
      operationId: getDataDictionaryById
      description: Fetch the metadata and contract for the requested signal
      parameters:
        - $ref: '#/components/parameters/signalIdParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signalDefinition'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '429':
          description: API Rate Limit Exceeded
          headers:
            Api-Version:
              $ref: '#/components/headers/Api-Version'
            Api-Supported-Versions:
              $ref: '#/components/headers/Api-Supported-Versions'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rateLimitResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
  /themes:
    get:
      tags:
        - Themes
      operationId: getThemes
      description: Fetch a list of available signal themes
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signalMetaData'
        '429':
          description: API Rate Limit Exceeded
          headers:
            Api-Version:
              $ref: '#/components/headers/Api-Version'
            Api-Supported-Versions:
              $ref: '#/components/headers/Api-Supported-Versions'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rateLimitResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
  /categories:
    get:
      tags:
        - Categories
      operationId: getCategories
      description: Fetch a list of available signal categories
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signalMetaData'
        '429':
          description: API Rate Limit Exceeded
          headers:
            Api-Version:
              $ref: '#/components/headers/Api-Version'
            Api-Supported-Versions:
              $ref: '#/components/headers/Api-Supported-Versions'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rateLimitResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
components:
  examples:
    lowerBound:
      value:
        gt: '2022-01-01T00:00:00.000Z'
    upperBound:
      value:
        lt: '2022-01-02T00:00:00.000Z'
    bothBounds:
      value:
        gt: '2022-01-01T00:00:00.000Z'
        lt: '2022-01-02T00:00:00.000Z'
  parameters:
    createdParam:
      name: created
      in: query
      schema:
        $ref: '#/components/schemas/DateTimeInterval'
      style: deepObject
      explode: true
      description: >-
        A date/time (UTC) interval for filtering signal events based on their
        creation date. Defaults to NOW - 7 days if omitted. Users with limited
        access can only provide the default or a smaller date window.
      examples:
        default:
          value: {}
        lowerBound:
          $ref: '#/components/examples/lowerBound'
        upperBound:
          $ref: '#/components/examples/upperBound'
        bothBounds:
          $ref: '#/components/examples/bothBounds'
    updatedParam:
      name: updated
      in: query
      schema:
        $ref: '#/components/schemas/DateTimeInterval'
      style: deepObject
      explode: true
      description: >-
        A date/time (UTC) interval for filtering signal events based on their
        last updated date. Defaults to NOW - 7 days if omitted. Users with
        limited access can only provide the default or a smaller date window.
      examples:
        default:
          value: {}
        lowerBound:
          $ref: '#/components/examples/lowerBound'
        upperBound:
          $ref: '#/components/examples/upperBound'
        bothBounds:
          $ref: '#/components/examples/bothBounds'
    signalIdsParam:
      name: signalIds
      in: query
      schema:
        type: string
        description: Comma delimited string of signalIds
      example: dilutionTrigger,freeCashFlow
    idsParam:
      name: ids
      in: query
      schema:
        type: string
      description: >-
        Comma delimited string of identifiers. An identifier can be a ticker,
        FactSet entity id, CUSIP or ISIN. You must provide a list of identifiers
        either via a ids or a portfolios parameter. If both are provided, only
        ids filter is used. Users with limited access can use only the ids
        filter and provide at most 10 ids.
      example: FDS-US,AMZN-US
    portfoliosParam:
      name: portfolios
      in: query
      schema:
        type: string
      description: >-
        Name of a portfolio file stored by FactSet. If the portfolio contains
        more than 1,000 ids, only the first 1,000 ids are processed (e.g.
        client:techstocks.ofdb). Please note that using this parameter requires
        full subscription to Signals API.
    themesParam:
      name: themes
      in: query
      schema:
        type: string
      description: >-
        Comma delimited string of theme ids. Full list of signal themes can be
        viewed at /themes.
    categoriesParam:
      name: categories
      in: query
      schema:
        type: string
      description: >-
        Comma delimited string of category ids. Full list of signal categories
        can be viewed at /categories.
    relevanceScoreParam:
      name: userRelevanceScore
      in: query
      schema:
        $ref: '#/components/schemas/RelevanceScoreRange'
      style: deepObject
      explode: true
      description: A range for filtering signal events based on their relevancy score.
      examples:
        lowerBound:
          value:
            gte: 0
        upperBound:
          value:
            lt: 1
        bothBounds:
          value:
            gt: 0
            lt: 1
    eventIdParam:
      name: eventId
      in: path
      required: true
      description: The UUID of the event to return.
      schema:
        type: string
        format: uuid
        minimum: 1
    signalIdParam:
      name: signalId
      in: path
      required: true
      schema:
        type: string
        description: A single signalId.
      example: dilutionTrigger
    sortParam:
      name: sort
      in: query
      schema:
        type: string
      description: >-
        Comma delimited string of sortable attributes. The sort order for each
        sort attribute is ascending unless it is prefixed with a minus sign, in
        which case it is descending. If sort is not provided, the default sort
        applied is -userRelevanceScore (userRelevanceScore in descending order).
      example: '-userRelevanceScore,-eventDate'
    resolveIdentifiersParam:
      name: resolveIdentifiers
      in: query
      schema:
        type: boolean
      description: >-
        The api will return resolved identifiers in the meta section of the
        response by default (true). If the parameter is false, the api will not
        attempt to resolve the identifiers.
      example: true
  schemas:
    errorResponse:
      type: object
      required:
        - message
      properties:
        message:
          type: string
          description: A short description of the error.
          example: There was an error processing your request. Please try again later.
        errors:
          type: array
          items:
            $ref: '#/components/schemas/errorItem'
          description: >-
            Optional list of errors. e.g. Validation errors for multiple
            parameters
    rateLimitResponse:
      title: Rate Limit Error Object
      description: Error returned if any of the user's rate limit have been reached.
      properties:
        message:
          type: string
          example: API rate limit exceeded
    errorItem:
      type: object
      required:
        - id
        - code
        - title
      properties:
        id:
          type: string
          format: uuid
        code:
          type: string
          example: parameterError
        title:
          type: string
          example: Invalid type/value
        detail:
          type: string
          example: Value must be a valid UTC date/time that conforms to ISO 8601 format
        source:
          type: object
          properties:
            parameter:
              type: string
    eventMeta:
      type: object
      required:
        - signalRequestId
        - idResolutions
      properties:
        signalRequestId:
          type: string
          format: uuid
        idResolutions:
          $ref: '#/components/schemas/idResolutionsMeta'
    eventsMeta:
      type: object
      required:
        - signalRequestId
        - idResolutions
        - dateRange
      properties:
        signalRequestId:
          type: string
          format: uuid
        sort:
          type: array
          items:
            type: string
        pagination:
          type: object
          properties:
            total:
              type: integer
            isEstimatedTotal:
              type: boolean
        idResolutions:
          $ref: '#/components/schemas/idResolutionsMeta'
        dateRange:
          type: object
          properties:
            created:
              $ref: '#/components/schemas/DateTimeInterval'
            updated:
              $ref: '#/components/schemas/DateTimeInterval'
    idResolutionsMeta:
      type: object
      properties:
        tickerRegion:
          type: object
          additionalProperties:
            type: string
            nullable: true
        regionalPermId:
          type: object
          additionalProperties:
            type: string
            nullable: true
    screenMeta:
      type: object
      required:
        - signalRequestId
        - dateRange
      properties:
        signalRequestId:
          type: string
          format: uuid
        dateRange:
          type: object
          properties:
            created:
              $ref: '#/components/schemas/DateTimeInterval'
            updated:
              $ref: '#/components/schemas/DateTimeInterval'
        partial:
          type: object
          required:
            - isPartial
            - reason
          properties:
            isPartial:
              type: boolean
              description: >-
                Indicates that some of the matching entities are missing in the
                response.
            reason:
              type: string
              description: >-
                Describes why the response was sent with an incomplete list of
                entities.
    eventHeadlineDataItem:
      type: object
      required:
        - requestId
        - signalId
        - signalName
        - theme
        - source
        - eventId
        - eventDate
        - summary
        - userRelevanceScore
      properties:
        requestId:
          type: string
          description: >-
            The id that was requested. This can be a ticker, cusip or factset
            entity id.
        companyName:
          type: string
          description: Name of the company reported in signal. Omitted if null.
        signalId:
          type: string
          description: Signal Id for this event. e.g. dilutionTrigger
        signalName:
          type: string
          description: Signal Name for this event. e.g. dilutionTrigger
        theme:
          type: string
          description: Theme name of the signal for this event. e.g. Debt Capital Structure
        source:
          type: string
          description: >-
            Primary data provider for the signal this event belongs to. e.g.
            FactSet, Bitvore
        eventId:
          type: string
          format: uuid
          description: A unique id for this event.
        eventDate:
          type: string
          format: date
          description: The UTC date/time of the event in ISO 8601 format.
        summar

# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/factset/refs/heads/main/openapi/signals-openapi-original.yml