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: type: string nullable: true locations: type: array items: $ref: '#/components/schemas/LocationDto' nullable: true attendees: type: array items: $ref: '#/components/schemas/AttendeeDto' nullable: true customFieldValues: type: array items: $ref: '#/components/schemas/CustomFieldValueDto' nullable: true additionalProperties: false NewItemDto: type: object properties: id: type: string format: uuid additionalProperties: false Operation: type: object properties: operationType: $ref: '#/components/schemas/OperationType' path: type: string nullable: true op: type: string nullable: true from: type: string nullable: true value: nullable: true additionalProperties: false OperationType: enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 type: integer format: int32 ProblemDetails: type: object properties: type: type: string nullable: true title: type: string nullable: true status: type: integer format: int32 nullable: true detail: type: string nullable: true instance: type: string nullable: true additionalProperties: {} RecordChangeDto: type: object properties: field: type: string nullable: true operation: type: string nullable: true oldValue: type: string nullable: true newValue: type: string nullable: true oldList: type: array items: type: string nullable: true newList: type: array items: type: string nullable: true additionalProperties: false RecordEventSummaryDto: type: object properties: id: type: string format: uuid type: type: string nullable: true createdAt: type: string nullable: true additionalProperties: false ReferenceAttendeeDto: type: object properties: emailAddress: type: string nullable: true additionalProperties: false RelatedRecordsDto: type: object properties: noteIds: type: array items: type: string format: uuid nullable: true meetingIds: type: array items: type: string format: uuid nullable: true additionalProperties: false SubcommentSummaryDto: type: object properties: id: type: string format: uuid userId: type: string format: uuid createdAt: type: string nullable: true additionalProperties: false UpdateMeetingDto: required: - end - identifier - start - title type: object properties: title: maxLength: 255 minLength: 0 type: string identifier: type: string 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 UserSerialDto: required: - serialNumber - username type: object properties: username: maxLength: 30 minLength: 0 type: string serialNumber: maxLength: 8 minLength: 0 type: string additionalProperties: false securitySchemes: basicScheme: type: http scheme: basic security: - basicScheme: [] tags: - name: Meetings