FactSet IRN Meetings API

Meetings API allows users to extract, create, update and delete their meetings and appointments in Internal Research Notes application.

OpenAPI Specification

irn-meetings-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'
servers:
  - url: https://api.factset.com/research/irn
    description: Production Server
  - url: https://api-sandbox.factset.com/research/irn
    description: Sandbox
paths:
  /v1/meetings:
    get:
      tags:
        - Meetings
      summary: >-
        Factset Get all the meetings in the specified date range filtered on the given identifiers
      operationId: GetMeetings
      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: limit
          in: query
          description: Limit on the number of meetings retrieved
          schema:
            type: integer
            format: int32
        - name: modifiedSince
          in: query
          description: >-
            Only return meetings which have been modified or created since a
            particular time
          schema:
            type: string
        - name: includeRelatedEntities
          in: query
          description: >-
            When set to true fetches meetings tagged with all the entities
            related to identifiers param
          schema:
            type: boolean
            default: false
        - name: X-IRN-Include-Deleted
          in: header
          description: Includes deleted meetings in results when set to true
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MeetingSummaryDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    post:
      tags:
        - Meetings
      summary: Factset Create a meeting
      operationId: CreateMeeting
      requestBody:
        description: 'Note: The organizer property is deprecated in favor of organizerId'
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/CreateMeetingDto'
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMeetingDto'
          text/json:
            schema:
              $ref: '#/components/schemas/CreateMeetingDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/CreateMeetingDto'
      responses:
        '201':
          description: Success - Returns unique identifier of the meeting 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/meetings/{meetingId}:
    get:
      tags:
        - Meetings
      summary: Factset Get details of a meeting
      operationId: GetMeeting
      parameters:
        - name: meetingId
          in: path
          description: Meeting Id
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingDto'
        '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:
        - Meetings
      summary: Factset Update meeting
      operationId: UpdateMeeting
      parameters:
        - name: meetingId
          in: path
          description: Meeting Id
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: >-
          Meeting details to update. Note: The organizer property is deprecated
          in favor of organizerId
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/UpdateMeetingDto'
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateMeetingDto'
          text/json:
            schema:
              $ref: '#/components/schemas/UpdateMeetingDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/UpdateMeetingDto'
      responses:
        '204':
          description: No Content
        '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'
    delete:
      tags:
        - Meetings
      summary: Factset Delete a Meeting
      operationId: DeleteMeeting
      parameters:
        - name: meetingId
          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/meetings/{meetingId}/attachments:
    get:
      tags:
        - Meetings
      summary: Factset Get all the attachments belonging to a meeting
      operationId: GetAttachments
      parameters:
        - name: meetingId
          in: path
          description: Meeting 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:
        - Meetings
      summary: Factset Create an attachment for a existing meeting
      operationId: CreateAttachment
      parameters:
        - name: meetingId
          in: path
          description: Meeting Id
          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: Success - Returns unique identifier of the Attachment
          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/meetings/{meetingId}/attachments/{attachmentId}/download:
    get:
      tags:
        - Meetings
      summary: Factset Download an attachment from a Meeting
      operationId: DownloadAttachment
      parameters:
        - name: meetingId
          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/meetings/{meetingId}/comments:
    get:
      tags:
        - Meetings
      summary: Factset Get all comments for a meeting
      operationId: GetComments
      parameters:
        - name: meetingId
          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:
        - Meetings
      summary: Factset Create a comment to a Meeting
      operationId: CreateComment
      parameters:
        - name: meetingId
          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/meetings/{meetingId}/comments/{commentId}:
    get:
      tags:
        - Meetings
      summary: Factset Get details of a comment belonging to a meeting
      operationId: GetComment
      parameters:
        - name: meetingId
          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:
        - Meetings
      summary: Factset Edit a comment for a meeting
      operationId: PatchComment
      parameters:
        - name: meetingId
          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:
        - Meetings
      summary: Factset Delete a Comment from a Meeting
      operationId: DeleteComment
      parameters:
        - name: meetingId
          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/meetings/{meetingId}/comments/{commentId}/attachments:
    get:
      tags:
        - Meetings
      summary: Factset Get attachments summary of a comment belonging to a meeting
      operationId: GetCommentAttachments
      parameters:
        - name: meetingId
          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:
        - Meetings
      summary: Factset Create a comment attachment to a Meeting
      operationId: CreateCommentAttachment
      parameters:
        - name: meetingId
          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/meetings/{meetingId}/comments/{commentId}/attachments/{attachmentId}/download:
    get:
      tags:
        - Meetings
      summary: Factset Download single attachment detail of a comment belonging to a meeting
      operationId: DownloadCommentAttachmentForComment
      parameters:
        - name: meetingId
          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/meetings/{meetingId}/events:
    get:
      tags:
        - Meetings
      summary: Factset Get all the record events that belong to a meeting
      operationId: GetEvents
      parameters:
        - name: meetingId
          in: path
          description: Meeting 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/meetings/{meetingId}/events/{recordEventId}:
    get:
      tags:
        - Meetings
      summary: Factset Get details of a record event of a meeting
      operationId: GetRecordEvent
      parameters:
        - name: meetingId
          in: path
          description: Meeting 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/MeetingEventDto'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /v1/meetings/{meetingId}/attachments/{attachmentId}:
    delete:
      tags:
        - Meetings
      summary: Factset Delete attachment from meeting
      operationId: SoftDeleteMeetingAttachment
      parameters:
        - name: meetingId
          in: path
          description: Meeting 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
    AttendeeDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
        emailAddress:
          type: string
          nullable: true
        fullName:
          type: string
          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"
    CreateMeetingDto:
      required:
        - author
        - end
        - start
      type: object
      properties:
        author:
          $ref: '#/components/schemas/UserSerialDto'
        title:
          maxLength: 255
          minLength: 0
          type: string
          nullable: true
        identifier:
          type: string
          nullable: true
        start:
          type: string
        end:
          type: string
        locations:
          type: array
          items:
            type: string
          nullable: true
        organizer:
          maxLength: 255
          minLength: 0
          type: string
          nullable: true
          deprecated: true
        organizerId:
          type: string
          format: uuid
        attendees:
          type: array
          items:
            $ref: '#/components/schemas/ReferenceAttendeeDto'
          nullable: true
        alertAttendees:
          type: boolean
          default: false
        alertAuthor:
          type: boolean
          default: false
        relatedRecords:
          $ref: '#/components/schemas/RelatedRecordsDto'
        relatedContacts:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
        relatedSymbols:
          maxItems: 100
          type: array
          items:
            type: string
          nullable: true
        body:
          $ref: '#/components/schemas/CreateBodyDto'
        customFieldValues:
          type: array
          items:
            $ref: '#/components/schemas/CreateCustomFieldValueDto'
          nullable: true
      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
    LocationDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
        locationName:
          type: string
          nullable: true
      additionalProperties: false
    MeetingDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
        start:
          type: string
          nullable: true
        end:
          type: string
          nullable: true
        createdAt:
          type: string
          nullable: true
        authorId:
          type: string
          format: uuid
        title:
          type: string
          nullable: true
        identifier:
          type: string
          nullable: true
        organizer:
          type: string
          nullable: true
          deprecated: true
        organizerId:
          type: string
          format: uuid
        body:
          type: string
          nullable: true
        averageRating:
          type: integer
          format: int32
          nullable: true
        alertAttendees:
          type: boolean
        alertAuthor:
          type: boolean
        locations:
          type: array
          items:
            $ref: '#/components/schemas/LocationDto'
          nullable: true
        attendees:
          type: array
          items:
            $ref: '#/components/schemas/AttendeeDto'
          nullable: true
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomFieldValueDto'
          nullable: true
        relatedSymbols:
          type: array
          items:
            type: string
          nullable: true
        relatedRecords:
          $ref: '#/components/schemas/RelatedRecordsDto'
        relatedContacts:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
      additionalProperties: false
    MeetingEventDto:
      type: object
      properties:
        createdAt:
          type: string
          nullable: true
        type:
          type: string
          nullable: true
        user:
          type: string
          nullable: true
        changeList:
          type: array
          items:
            $ref: '#/components/schemas/RecordChangeDto'
          nullable: true
      additionalProperties: false
    MeetingSummaryDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
        start:
          type: string
          nullable: true
        end:
          type: string
          nullable: true
        createdAt:
          type: string
          nullable: true
        authorId:
          type: string
          format: uuid
        title:
          type: string
          nullable: true
        identifier:
          type: string
          nullable: true
        organizer:
          type: string
          nullable: true
          deprecated: true
        organizerId:
          type: string
          format: uuid
        attachmentIds:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
        relatedSymbols:
          type: array
          items:
  

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