FactSet IRN Notes API

Notes API allows users to extract, create, update and delete their notes in the Internal Research Notes application.

OpenAPI Specification

irn-notes-openapi-original.yml Raw ↑
openapi: 3.0.1
info:
  title: Factset IRN API v1
  description: Allows users to extract, create, update and configure IRN data.
  version: '1'
externalDocs:
  description: API Documentation
  url: https://developer.factset.com/api-catalog/irn-notes-api#apiDocumentation
servers:
  - url: https://api.factset.com/research/irn
    description: Production Server
  - url: https://api-sandbox.factset.com/research/irn
    description: Sandbox
paths:
  /v1/events:
    get:
      tags:
        - Events
      summary: >-
        Factset Get all the record events in the specified date range filtered on the given types
      operationId: GetAllEvents
      parameters:
        - name: startDate
          in: query
          description: StartDate
          required: true
          schema:
            type: string
        - name: endDate
          in: query
          description: EndDate
          schema:
            type: string
        - name: types
          in: query
          description: Set of event types to filter on
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Success - Returns events list
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EventSnippetDto'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EventSnippetDto'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EventSnippetDto'
        '400':
          description: Bad Request - Returns error message
  /v1/identifiers:
    get:
      tags:
        - Identifiers
      summary: Factset Get all the identifier details for given identifiers
      operationId: GetIdentifiers
      parameters:
        - name: identifiers
          in: query
          description: Identifiers
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IdentifierResolutionDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /v1/notes:
    get:
      tags:
        - Notes
      summary: >-
        Factset Get all the notes in the specified date range filtered on the given identifiers
      operationId: GetNotes
      parameters:
        - name: start
          in: query
          description: StartDate
          schema:
            type: string
        - name: end
          in: query
          description: EndDate
          schema:
            type: string
        - name: identifiers
          in: query
          description: Set of identifiers to filter on
          schema:
            type: array
            items:
              type: string
        - name: authors
          in: query
          description: Set of authors to filter on
          schema:
            type: array
            items:
              type: string
              format: uuid
        - name: subjects
          in: query
          description: Set of subjects to filter on
          schema:
            type: array
            items:
              type: string
              format: uuid
        - name: recommendations
          in: query
          description: Set of recommendations to filter on
          schema:
            type: array
            items:
              type: string
              format: uuid
        - name: sentiments
          in: query
          description: Set of sentiments to filter on
          schema:
            type: array
            items:
              type: string
              format: uuid
        - name: limit
          in: query
          description: Limit on the number of notes retrieved
          schema:
            type: integer
            format: int32
        - name: offset
          in: query
          description: Fetch notes after the offset
          schema:
            type: integer
            format: int32
        - name: modifiedSince
          in: query
          description: >-
            Only return notes which have been modified or created since a
            particular time
          schema:
            type: string
        - name: states
          in: query
          description: Set of states to filter on
          schema:
            type: array
            items:
              type: string
        - name: filterOnRelatedSymbols
          in: query
          description: Include notes whose related symbols match the identifier filter
          schema:
            type: boolean
            default: false
        - name: includeRelatedEntities
          in: query
          description: >-
            When set to true fetches notes tagged with all the entities related
            to identifiers param
          schema:
            type: boolean
            default: false
        - name: X-IRN-Include-Deleted
          in: header
          description: ''
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NoteSummaryDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      tags:
        - Notes
      summary: Factset Create a note
      operationId: CreateNote
      parameters:
        - name: X-IRN-Contributor-Username
          in: header
          schema:
            maxLength: 30
            minLength: 0
            type: string
        - name: X-IRN-Contributor-Serial
          in: header
          schema:
            maxLength: 8
            minLength: 0
            type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/CreateNoteDto'
          application/json:
            schema:
              $ref: '#/components/schemas/CreateNoteDto'
          text/json:
            schema:
              $ref: '#/components/schemas/CreateNoteDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/CreateNoteDto'
        required: true
      responses:
        '201':
          description: Success - Returns unique identifier of the note created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NewItemDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /v1/notes/{noteId}:
    get:
      tags:
        - Notes
      summary: Factset Get details of a note
      operationId: GetNote
      parameters:
        - name: noteId
          in: path
          description: Note Id
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoteDto'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      tags:
        - Notes
      summary: Factset Update a note
      operationId: UpdateNote
      parameters:
        - name: noteId
          in: path
          description: Note Id
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: Note details to update
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/UpdateNoteDto'
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateNoteDto'
          text/json:
            schema:
              $ref: '#/components/schemas/UpdateNoteDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/UpdateNoteDto'
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      tags:
        - Notes
      summary: Factset Delete a Note
      operationId: DeleteNote
      parameters:
        - name: noteId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /v1/notes/{noteId}/attachments:
    get:
      tags:
        - Notes
      summary: Factset Get all the attachments belonging to a note
      operationId: GetAttachments
      parameters:
        - name: noteId
          in: path
          description: Note Id
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AttachmentSummaryDto'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      tags:
        - Notes
      summary: Factset Create an attachment for an existing note
      operationId: CreateAttachment
      parameters:
        - name: noteId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
                - file
              type: object
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NewItemDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /v1/notes/{noteId}/attachments/{attachmentId}/download:
    get:
      tags:
        - Notes
      summary: Factset Download an attachment from a Note
      operationId: DownloadAttachment
      parameters:
        - name: noteId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: attachmentId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /v1/notes/{noteId}/comments:
    get:
      tags:
        - Notes
      summary: Factset Get all comments for a note
      operationId: GetComments
      parameters:
        - name: noteId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommentSummaryDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      tags:
        - Notes
      summary: Factset Create a comment to a Note
      operationId: CreateComment
      parameters:
        - name: noteId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/CreateCommentDto'
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCommentDto'
          text/json:
            schema:
              $ref: '#/components/schemas/CreateCommentDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/CreateCommentDto'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NewItemDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '500':
          description: Server Error
  /v1/notes/{noteId}/comments/{commentId}:
    get:
      tags:
        - Notes
      summary: Factset Get details of a comment belonging to a note
      operationId: GetComment
      parameters:
        - name: noteId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: commentId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommentDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    patch:
      tags:
        - Notes
      summary: Factset Edit a comment for a note
      operationId: PatchComment
      parameters:
        - name: noteId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: commentId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Operation'
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Operation'
          text/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Operation'
          application/*+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Operation'
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    delete:
      tags:
        - Notes
      summary: Factset Delete a Comment from a Note
      operationId: DeleteComment
      parameters:
        - name: noteId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: commentId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Success
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '500':
          description: Server Error
  /v1/notes/{noteId}/comments/{commentId}/attachments:
    get:
      tags:
        - Notes
      summary: Factset Get attachments summary of a comment belonging to a note
      operationId: GetCommentAttachments
      parameters:
        - name: noteId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: commentId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AttachmentSummaryDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      tags:
        - Notes
      summary: Factset Create a comment attachment to a Note
      operationId: CreateCommentAttachment
      parameters:
        - name: noteId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: commentId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
                - file
              type: object
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NewItemDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '500':
          description: Server Error
  /v1/notes/{noteId}/comments/{commentId}/attachments/{attachmentId}/download:
    get:
      tags:
        - Notes
      summary: Factset Download single attachment detail of a comment belonging to a note
      operationId: DownloadCommentAttachmentForComment
      parameters:
        - name: noteId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: commentId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: attachmentId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /v1/notes/{noteId}/events:
    get:
      tags:
        - Notes
      summary: Factset Get all the record events that belong to a note
      operationId: GetEvents
      parameters:
        - name: noteId
          in: path
          description: Note Id
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RecordEventSummaryDto'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /v1/notes/{noteId}/events/{recordEventId}:
    get:
      tags:
        - Notes
      summary: Factset Get details of a record event of a note
      operationId: GetRecordEvent
      parameters:
        - name: noteId
          in: path
          description: Note Id
          required: true
          schema:
            type: string
            format: uuid
        - name: recordEventId
          in: path
          description: Record Event Id
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoteEventDto'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /v1/notes/{noteId}/attachments/{attachmentId}:
    delete:
      tags:
        - Notes
      summary: Factset Delete attachment from note
      operationId: SoftDeleteNoteAttachment
      parameters:
        - name: noteId
          in: path
          description: Note Id
          required: true
          schema:
            type: string
            format: uuid
        - name: attachmentId
          in: path
          description: Attachment Id
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
components:
  schemas:
    AttachmentSummaryDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
        fileName:
          type: string
          nullable: true
        mimeType:
          type: string
          nullable: true
        size:
          type: integer
          format: int64
          nullable: true
      additionalProperties: false
    CommentDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
        authorId:
          type: string
          format: uuid
        parentCommentId:
          type: string
          format: uuid
          nullable: true
        body:
          type: string
          nullable: true
        createdAt:
          type: string
          nullable: true
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/AttachmentSummaryDto'
          nullable: true
        subcomments:
          type: array
          items:
            $ref: '#/components/schemas/SubcommentSummaryDto'
          nullable: true
      additionalProperties: false
    CommentSummaryDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
        userId:
          type: string
          format: uuid
        createdAt:
          type: string
          nullable: true
        subcomments:
          type: array
          items:
            $ref: '#/components/schemas/SubcommentSummaryDto'
          nullable: true
      additionalProperties: false
    CreateBodyDto:
      type: object
      properties:
        content:
          type: string
          nullable: true
      additionalProperties: false
    CreateCommentDto:
      type: object
      properties:
        authorId:
          type: string
          format: uuid
        parentCommentId:
          type: string
          format: uuid
          nullable: true
        body:
          type: string
          nullable: true
      additionalProperties: false
    CreateCustomFieldValueDto:
      required:
        - code
      type: object
      properties:
        code:
          type: string
        integerValue:
          type: integer
          format: int32
          nullable: true
        textValue:
          type: string
          nullable: true
        filePathValue:
          type: string
          nullable: true
        numericValue:
          type: number
          format: double
          nullable: true
        dateValue:
          type: string
          nullable: true
        extendedTextValue:
          type: string
          nullable: true
        contactLookupValues:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
        optionValue:
          type: string
          nullable: true
        optionValues:
          type: array
          items:
            type: string
          nullable: true
      additionalProperties: false
      description: "Set a value or values for a custom field identified by the field 'Code'. Only one of the fields (IntegerValue / TextValue / FilePathValue etc) will be used,\r\ndepending on the data type of the custom field corresponding to the 'Code' provided"
    CreateNoteDto:
      required:
        - author
        - date
      type: object
      properties:
        author:
          $ref: '#/components/schemas/UserSerialDto'
        title:
          maxLength: 255
          minLength: 0
          type: string
          nullable: true
        identifier:
          type: string
          nullable: true
        date:
          type: string
        subjectId:
          type: string
          format: uuid
          nullable: true
        recommendationId:
          type: string
          format: uuid
          nullable: true
        sentimentId:
          type: string
          format: uuid
          nullable: true
        body:
          $ref: '#/components/schemas/CreateBodyDto'
        source:
          type: string
          nullable: true
        link:
          maxLength: 255
          minLength: 0
          type: string
          nullable: true
        relatedSymbols:
          maxItems: 100
          type: array
          items:
            type: string
          nullable: true
        relatedContacts:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
        relatedRecords:
          $ref: '#/components/schemas/RelatedRecordsDto'
        customFieldValues:
          type: array
          items:
            $ref: '#/components/schemas/CreateCustomFieldValueDto'
          nullable: true
        isPersonal:
          type: boolean
          default: false
      additionalProperties: false
    CustomFieldValueDto:
      type: object
      properties:
        code:
          type: string
          nullable: true
        value:
          type: string
          nullable: true
        options:
          type: array
          items:
            type: string
          nullable: true
        contactValues:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
      additionalProperties: false
    EventSnippetDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
        type:
          type: string
          nullable: true
        noteId:
          type: string
          format: uuid
          nullable: true
        meetingId:
          type: string
          format: uuid
          nullable: true
        createdAt:
          type: string
          format: date-time
      additionalProperties: false
    IdentifierResolutionDto:
      type: object
      additionalProperties: false
    NewItemDto:
      type: object
      properties:
        id:
  

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