> ## Documentation Index
> Fetch the complete documentation index at: https://docs.turrisfi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Contact

> Fetch a single agency contact and their business roles

Returns a single contact by id, including **every** agency relationship you can see them at and the business roles they hold at each. The shape is identical to a single item from [`GET /v1/contacts`](/api-reference/v1/contacts/list-contacts): one `associations` entry per agency, covering both agency-wide and market-specific relationships.

## Path Parameters

| Parameter       | Type              | Required | Description                                                                                                                        |
| --------------- | ----------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| **`contactId`** | string (ObjectId) | Yes      | The unique identifier of the contact — the `contactId` returned by [`GET /v1/contacts`](/api-reference/v1/contacts/list-contacts). |

## Example

```bash theme={null}
GET /v1/contacts/6627f2b5c2e0a51b8c0d4e7c
```

```json theme={null}
{
  "statusCode": 200,
  "data": {
    "contactId": "6627f2b5c2e0a51b8c0d4e7c",
    "firstName": "Dana",
    "lastName": "Lee",
    "email": "dana.lee@acme-insurance.com",
    "isDeliverable": true,
    "associations": [
      {
        "downstreamEntityAssociationId": "6627f1a9c2e0a51b8c0d4e3a",
        "downstreamEntityId": "6610b3d2c2e0a51b8c0d1f02",
        "businessRoles": ["Finance Manager", "Compliance Officer"],
        "isPrimary": true
      }
    ]
  },
  "timestamp": "2026-06-30T12:00:00.000Z"
}
```

### Response Fields

| Field           | Type    | Description                                                                                                                                                                                                 |
| --------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `contactId`     | string  | Unique contact identifier                                                                                                                                                                                   |
| `firstName`     | string  | Contact first name                                                                                                                                                                                          |
| `lastName`      | string  | Contact last name                                                                                                                                                                                           |
| `email`         | string  | Contact email address                                                                                                                                                                                       |
| `isDeliverable` | boolean | Whether the email has been verified as deliverable                                                                                                                                                          |
| `associations`  | array   | One entry per agency you can see this contact at: `downstreamEntityAssociationId?` (UDA id, omitted for agency-wide), `downstreamEntityId` (agency id), `businessRoles` (string\[]), `isPrimary` (boolean). |

<Note>
  Returns `404 Not Found` if the contact does not exist or is not visible to your organization (it has no relationship at an agency you are associated with).
</Note>


## OpenAPI

````yaml openapi/v1.json GET /v1/contacts/{contactId}
openapi: 3.0.0
info:
  title: Turris Public API
  description: API for managing insurance compliance data
  version: 1.0.0
  contact: {}
servers:
  - url: https://public.api.live.turrisfi.com
    description: Production
  - url: https://public.api.sandbox.turrisfi.com
    description: Sandbox
security: []
tags: []
paths:
  /v1/contacts/{contactId}:
    get:
      tags:
        - contacts
      summary: Get a contact
      description: >-
        Returns a single contact by id, including every agency relationship you
        can see them at and the business roles they hold at each. Returns 404 if
        the contact is not visible to your organization.
      operationId: ContactFeatureController_getContact_v1
      parameters:
        - name: contactId
          required: true
          in: path
          description: >-
            The unique identifier of the contact (the contactId returned by GET
            /v1/contacts).
          schema:
            example: 507f1f77bcf86cd799439011
            type: string
      responses:
        '200':
          description: Contact details
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ContactResponse'
                  requestId:
                    type: string
                    description: Unique request identifier
                    example: dev-2c5e7cf2-9acf-4c8c-ab2f-b81f39d775a8
                  timestamp:
                    type: string
                    description: Response timestamp
                    example: '2025-11-12T20:49:03.293Z'
                required:
                  - data
                  - requestId
                  - timestamp
        '400':
          description: Invalid contact ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '401':
          description: Invalid or missing auth token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '404':
          description: Contact not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
components:
  schemas:
    ContactResponse:
      type: object
      properties:
        contactId:
          type: string
          description: Unique identifier of the contact
          example: 6627f2b5c2e0a51b8c0d4e7c
        firstName:
          type: string
          description: Contact first name
          example: Dana
        lastName:
          type: string
          description: Contact last name
          example: Lee
        email:
          type: string
          description: Contact email address
          example: dana.lee@acme-insurance.com
        isDeliverable:
          type: boolean
          description: Whether the contact email is deliverable
          example: true
        associations:
          description: Agencies where you can see this contact
          type: array
          items:
            $ref: '#/components/schemas/ContactAssociationResponse'
      required:
        - contactId
        - firstName
        - lastName
        - email
        - isDeliverable
        - associations
    ErrorResponseDto:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
        requestId:
          type: string
          description: Unique request identifier for debugging
        errorType:
          type: string
          description: Error type classification
        errorMessage:
          description: Array of error messages
          type: array
          items:
            type: string
        timestamp:
          type: string
          description: ISO timestamp when the error occurred
        details:
          type: object
          description: Additional error context
      required:
        - statusCode
        - requestId
        - errorType
        - errorMessage
        - timestamp
    ContactAssociationResponse:
      type: object
      properties:
        downstreamEntityAssociationId:
          type: string
          description: >-
            The market relationship (downstream entity association / UDA) id,
            when a market-specific scope exists
          example: 6627f1a9c2e0a51b8c0d4e3a
        downstreamEntityId:
          type: string
          description: The downstream entity (agency) id
          example: 6610b3d2c2e0a51b8c0d1f02
        businessRoles:
          type: array
          description: >-
            Business roles this contact holds at this agency (union of their
            visible scopes there)
          example:
            - Finance Manager
          items:
            type: string
            enum:
              - Compliance Officer
              - Principal Owner
              - Account Manager
              - Finance Manager
              - Support Staff
              - Contract Signatory
              - Accounts Payable
        isPrimary:
          type: boolean
          description: >-
            Whether this contact is a primary contact for this agency
            relationship
          example: true
      required:
        - downstreamEntityId
        - businessRoles
        - isPrimary

````