FactSet IRN Notes API
Notes API allows users to extract, create, update and delete their notes in the Internal Research Notes application.
Notes API allows users to extract, create, update and delete their notes in the Internal Research Notes application.
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