FactSet IRN Contacts API
Contacts API allows users to create, update and delete Contacts as well as configure settings in the Internal Research Notes Contacts application.
Contacts API allows users to create, update and delete Contacts as well as configure settings in the Internal Research Notes Contacts application.
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