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/contact-relationships: get: tags: - Contact Relationships summary: >- Factset Get all the relationships where the given symbol or contact identifier has been tagged in a relationship operationId: GetAllRelationshipsTaggingAContact parameters: - name: symbol in: query schema: type: string - name: contactId in: query schema: type: string format: uuid - name: relationshipId in: query schema: type: string format: uuid responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/ContactRelationshipTwoSidedDto' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' post: tags: - Contact Relationships summary: Factset Create a contact relationship operationId: CreateContactRelationship requestBody: description: contactRelationship object to save content: application/json-patch+json: schema: $ref: '#/components/schemas/ContactRelationshipTwoSidedSaveDto' application/json: schema: $ref: '#/components/schemas/ContactRelationshipTwoSidedSaveDto' text/json: schema: $ref: '#/components/schemas/ContactRelationshipTwoSidedSaveDto' application/*+json: schema: $ref: '#/components/schemas/ContactRelationshipTwoSidedSaveDto' 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/contact-relationships/{contactRelationshipId}: get: tags: - Contact Relationships summary: Factset Get details on a specific contact relationship operationId: GetContactRelationship parameters: - name: contactRelationshipId in: path description: contactRelationshipId to get associated record required: true schema: type: string format: uuid responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ContactRelationshipTwoSidedDto' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' patch: tags: - Contact Relationships summary: Factset Update a contact relationship operationId: PatchContactRelationship parameters: - name: contactRelationshipId in: path description: contactRelationshipId to update associated record required: true schema: type: string format: uuid requestBody: description: contactRelationshipPatch object to update 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' '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: - Contact Relationships summary: Factset Delete a contact relationship operationId: DeleteContactRelationship parameters: - name: contactRelationshipId in: path description: contactRelationshipId to delete associated record 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/contacts: get: tags: - Contacts summary: >- Factset Get list of all contacts in your group along with some of their standard field data operationId: GetContacts parameters: - name: fullName in: query description: Filter results on fullName schema: type: string - name: emailAddress in: query description: Filter results on emailAddress schema: type: string - name: identifier in: query description: Filter results on identifier schema: type: string - name: employerName in: query description: Filter results on employerName schema: type: string - name: customFieldValues in: query description: Includes custom field values in response if true schema: type: boolean default: false - name: search in: query description: >- Filter results on the combination of fullName, emailAddress, identifier and employerName schema: type: string - name: sort in: query schema: type: string - name: includeLastMeetingDate in: query description: >- If true, returns when they were last tagged as an attendee in an IRN meeting schema: type: boolean default: false - name: limit in: query description: Restrict number of records returned schema: type: integer format: int32 default: 0 responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/ContactSummaryDto' post: tags: - Contacts summary: Factset Create a contact operationId: CreateContact requestBody: description: contactSaveDto object to save content: application/json-patch+json: schema: $ref: '#/components/schemas/ContactSaveDto' application/json: schema: $ref: '#/components/schemas/ContactSaveDto' text/json: schema: $ref: '#/components/schemas/ContactSaveDto' application/*+json: schema: $ref: '#/components/schemas/ContactSaveDto' 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/contacts/{contactId}: get: tags: - Contacts summary: Factset Get all custom field and standard field details on a specific contact operationId: GetContact parameters: - name: contactId in: path description: contactId to get associated record required: true schema: type: string format: uuid responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ContactDto' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' patch: tags: - Contacts summary: Factset Edit a contact’s standard field and custom field data operationId: PatchContact parameters: - name: contactId in: path description: contactId to update associated record required: true schema: type: string format: uuid requestBody: description: contactSaveDtoPatch object to update 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' '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: - Contacts summary: Factset Delete a contact operationId: DeleteContact parameters: - name: contactId in: path description: contactId to delete associated record 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/contacts/{contactId}/about: get: tags: - Contacts summary: Factset Get the About field content for a specific contact operationId: GetContactNotes parameters: - name: contactId in: path description: contactId of associated record required: true schema: type: string format: uuid responses: '200': description: Success content: application/json: schema: type: string '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /v1/contacts/{contactId}/events: get: tags: - Contacts summary: Factset Get a contact’s audit history operationId: GetContactEvents parameters: - name: contactId in: path description: contactId to get associated records required: true schema: type: string format: uuid responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/ContactEventDto' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /v1/contacts/{contactId}/records: get: tags: - Contacts summary: Factset Get all notes and meetings where a specific contact was tagged operationId: GetContactRecords parameters: - name: contactId in: path description: contactId to get associated records required: true schema: type: string format: uuid responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/RecordPreviewDto' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /v1/contacts/{contactId}/relationships: get: tags: - Contacts summary: Factset Returns a list of a contact’s relationships operationId: GetContactRelationships parameters: - name: contactId in: path description: contactId to get associated records required: true schema: type: string format: uuid responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/ContactRelationshipDto' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' components: schemas: AlternativeEmailAddressDto: type: object properties: id: type: string format: uuid emailAddress: type: string nullable: true additionalProperties: false ContactAddressDto: type: object properties: googleMapsPlaceId: maxLength: 255 minLength: 0 type: string nullable: true formattedAddress: maxLength: 255 minLength: 0 type: string nullable: true city: maxLength: 50 minLength: 0 type: string nullable: true stateProvince: maxLength: 50 minLength: 0 type: string nullable: true postalCode: maxLength: 10 minLength: 0 type: string nullable: true country: maxLength: 50 minLength: 0 type: string nullable: true additionalProperties: false ContactCustomFieldOptionValueDto: type: object properties: optionId: type: string format: uuid optionName: type: string nullable: true additionalProperties: false ContactCustomFieldValueDto: type: object properties: fieldCode: type: string nullable: true value: type: string nullable: true optionValues: type: array items: $ref: '#/components/schemas/ContactCustomFieldOptionValueDto' nullable: true additionalProperties: false ContactCustomFieldValueSaveDto: required: - code type: object properties: code: type: string value: type: string nullable: true optionValues: type: array items: type: string format: uuid nullable: true evaluateFormula: type: boolean default: false additionalProperties: false ContactDto: type: object properties: id: type: string format: uuid primaryEmailAddress: type: string nullable: true identifier: type: string nullable: true fullName: type: string nullable: true address: $ref: '#/components/schemas/ContactAddressDto' linkedInProfile: type: string nullable: true isDeleted: type: boolean employer: $ref: '#/components/schemas/EmployerDto' role: $ref: '#/components/schemas/ContactRoleDto' type: $ref: '#/components/schemas/ContactTypeDto' phoneNumbers: type: array items: $ref: '#/components/schemas/ContactPhoneDto' nullable: true alternativeEmailAddresses: type: array items: $ref: '#/components/schemas/AlternativeEmailAddressDto' nullable: true customFields: type: array items: $ref: '#/components/schemas/ContactCustomFieldValueDto' nullable: true additionalProperties: false ContactEventDto: type: object properties: eventType: type: string nullable: true date: type: string format: date-time fullName: type: string nullable: true details: type: array items: $ref: '#/components/schemas/ContactEventUpdateDto' nullable: true additionalProperties: false ContactEventUpdateDto: type: object properties: fieldName: type: string nullable: true oldValue: type: string nullable: true newValue: type: string nullable: true additionalProperties: false ContactIdNameDto: type: object properties: id: type: string format: uuid nullable: true name: type: string nullable: true additionalProperties: false ContactPhoneDto: type: object properties: id: type: string format: uuid number: maxLength: 50 minLength: 0 type: string nullable: true type: $ref: '#/components/schemas/PhoneNumberTypeDto' isPrimary: type: boolean additionalProperties: false ContactPhoneSaveDto: type: object properties: id: type: string format: uuid number: maxLength: 50 minLength: 0 type: string nullable: true typeId: type: string format: uuid isPrimary: type: boolean additionalProperties: false ContactRelationshipDto: type: object properties: id: type: string format: uuid relationshipCategory: $ref: '#/components/schemas/RelationshipCategoryIdNameDto' relationship: $ref: '#/components/schemas/RelationshipIdNameDto' contact: $ref: '#/components/schemas/ContactIdNameDto' symbol: $ref: '#/components/schemas/RelationshipSymbolSummaryDto' isCurrent: type: boolean start: type: string format: date-time nullable: true end: type: string format: date-time nullable: true title: type: string nullable: true comment: type: string nullable: true additionalProperties: false ContactRelationshipSaveDto: type: object properties: relationshipId: type: string format: uuid contactId: type: string format: uuid nullable: true start: type: string format: date-time nullable: true end: type: string format: date-time nullable: true comment: type: string nullable: true isCurrent: type: boolean symbol: type: string nullable: true title: type: string nullable: true additionalProperties: false ContactRelationshipTwoSidedDto: type: object properties: id: type: string format: uuid relationshipCategory: $ref: '#/components/schemas/RelationshipCategoryIdNameDto' relationship: $ref: '#/components/schemas/RelationshipIdNameDto' leftContact: $ref: '#/components/schemas/ContactIdNameDto' rightContact: $ref: '#/components/schemas/ContactIdNameDto' symbol: $ref: '#/components/schemas/RelationshipSymbolSummaryDto' isCurrent: type: boolean start: type: string format: date-time nullable: true end: type: string format: date-time nullable: true title: type: string nullable: true comment: type: string nullable: true additionalProperties: false ContactRelationshipTwoSidedSaveDto: type: object properties: relationshipId: type: string format: uuid leftContactId: type: string format: uuid rightContactId: type: string format: uuid nullable: true start: type: string format: date-time nullable: true end: type: string format: date-time nullable: true comment: type: string nullable: true isCurrent: type: boolean symbolId: type: string format: uuid nullable: true symbol: type: string nullable: true title: type: string nullable: true additionalProperties: false ContactRoleDto: required: - id - name type: object properties: id: type: string format: uuid name: maxLength: 50 minLength: 0 type: string additionalProperties: false ContactSaveDto: type: object properties: primaryEmailAddress: maxLength: 255 minLength: 0 type: string nullable: true fullName: maxLength: 255 minLength: 0 type: string nullable: true notes: type: string nullable: true linkedInProfile: maxLength: 255 minLength: 0 type: string format: uri nullable: true personSymbol: maxLength: 255 minLength: 0 type: string nullable: true roleId: type: string format: uuid typeId: type: string format: uuid address: $ref: '#/components/schemas/ContactAddressDto' phoneNumbers: type: array items: $ref: '#/components/schemas/ContactPhoneSaveDto' nullable: true leftRelationships: type: array items: $ref: '#/components/schemas/ContactRelationshipSaveDto' nullable: true rightRelationships: type: array items: $ref: '#/components/schemas/ContactRelationshipSaveDto' nullable: true alternativeEmailAddresses: type: array items: $ref: '#/components/schemas/AlternativeEmailAddressDto' nullable: true customFields: type: array items: $ref: '#/components/schemas/ContactCustomFieldValueSaveDto' nullable: true additionalProperties: false ContactSummaryDto: type: object properties: id: type: string format: uuid primaryEmailAddress: type: string nullable: true identifier: type: string nullable: true fullName: type: string nullable: true employerName: type: string nullable: true employerIdentifier: type: string nullable: true city: type: string nullable: true stateProvince: type: string nullable: true postalCode: type: string nullable: true country: type: string nullable: true role: $ref: '#/components/schemas/ContactRoleDto' type: $ref: '#/components/schemas/ContactTypeDto' isDeleted: type: boolean lastMeeting: type: string nullable: true alternativeEmailAddresses: type: array items: $ref: '#/components/schemas/AlternativeEmailAddressDto' nullable: true customFieldValues: type: array items: $ref: '#/components/schemas/ContactCustomFieldValueDto' nullable: true additionalProperties: false ContactTypeDto: required: - id - name type: object properties: id: type: string format: uuid name: maxLength: 50 minLength: 0 type: string additionalProperties: false EmployerDto: required: - id type: object properties: id: type: string format: uuid name: maxLength: 255 minLength: 0 type: string nullable: true factsetIdentifier: maxLength: 255 minLength: 0 type: string 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 PhoneNumberTypeDto: type: object properties: id: type: string format: uuid name: maxLength: 50 minLength: 0 type: string nullable: true isStandard: type: boolean additionalProperties: false 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: {} RecordPreviewDto: type: object properties: noteGuid: type: string format: uuid nullable: true meetingGuid: type: string format: uuid nullable: true title: type: string nullable: true date: type: string format: date-time additionalProperties: false RelationshipCategoryIdNameDto: type: object properties: id: type: string format: uuid name: type: string nullable: true additionalProperties: false RelationshipIdNameDto: type: object properties: id: type: string format: uuid name: type: string nullable: true additionalProperties: false RelationshipSymbolSummaryDto: type: object properties: tdentifier: type: string nullable: true name: type: string nullable: true type: $ref: '#/components/schemas/SymbolType' additionalProperties: false SymbolType: enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 type: integer format: int32 securitySchemes: basicScheme: type: http scheme: basic security: - basicScheme: [] tags: - name: Contact Relationships - name: Contacts