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.

OpenAPI Specification

irn-contacts-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/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