---
title: "Get Contact Detail"
method: GET
path: "/contacts/{contact_id}"
tags: ["contacts"]
---

# Get Contact Detail

`GET /contacts/{contact_id}`

## Path parameters

- `contact_id` string, required

## Response `200`

Successful Response

- ContactDetailResponse
  - `contact_id` string, required
  - `source_type` string, required
  - `source_id` string, required
  - `customer_name` string, nullable
  - `primary_phone` string, required
  - `alternate_phones` ContactPhoneResponse[]
    - `phone` string, required
    - `label` string, required
    - `is_primary` boolean, required
  - `address` string, nullable
  - `latest_activity_at` string, date-time, nullable
  - `latest_preview` string, nullable
  - `conversation_id` string, nullable
  - `followup_id` string, nullable
  - `requires_action` boolean
  - `is_archived` boolean
  - `pending_sync` boolean
  - `appointment_date` string, nullable
  - `tags` string[]
  - `invoice_summary` string, nullable
  - `estimates_data` object[]
  - `attachment_urls` object[]
  - `summary` string, nullable
  - `customer_type` string, nullable
  - `membership_status` string, nullable
  - `membership_plan_name` string, nullable
  - `total_jobs_count` integer, nullable
  - `last_service_date` string, nullable
  - `current_equipment_analysis` ContactEquipmentAnalysisResponse[]
    - `location_id` integer, nullable
    - `location_name` string, nullable
    - `location_address` string, nullable
    - `equipment_id` integer, nullable
    - `equipment_name` string, required
    - `installation_date` string, nullable
    - `installed_by` string, nullable
    - `reason` string, nullable
  - `customer_note_insights` string, nullable
  - `decision_style_summary` string, nullable
  - `primary_email` string, nullable
  - `phone_groups` ContactPhoneGroupResponse[]
    - `label` string, required
    - `is_relevant` boolean
    - `phones` ContactPhoneResponse[]
      - `phone` string, required
      - `label` string, required
      - `is_primary` boolean, required
  - `locations` ContactLocationResponse[]
    - `location_id` integer, nullable
    - `name` string, nullable
    - `address` string, nullable
    - `email` string, nullable
    - `is_relevant` boolean
    - `is_current_job` boolean
  - `current_job` ContactCurrentJobResponse
    - `st_job_id` union
      - integer
      - string
    - `job_status` string, nullable
    - `priority` string, nullable
    - `business_unit_name` string, nullable
    - `job_type_name` string, nullable
    - `job_tags` string[]
    - `job_date` string, nullable
    - `job_date_label` string, nullable
    - `appointment_status` string, nullable
    - `appointment_start` string, nullable
    - `appointment_end` string, nullable
    - `arrival_window_start` string, nullable
    - `arrival_window_end` string, nullable
    - `estimate_count` integer
    - `open_estimate_count` integer
    - `open_estimate_total` number, nullable
    - `sold_estimate_count` integer
    - `llm_job_summary` string, nullable
    - `sold_estimate_total` number, nullable

## Other responses

- `404` — Not found
- `422` — Validation Error

---

[API](https://skmtc.dev/noso/apis/crucible-backend-api.md) · [All operations](https://skmtc.dev/noso/apis/crucible-backend-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/noso/crucible-backend-api/revisions/2aac272a57fd/schema)
