---
title: "Get Full Customer Profile"
method: GET
path: "/customer-profiles/full"
tags: ["customer-profiles"]
---

# Get Full Customer Profile

`GET /customer-profiles/full`

Return a consolidated customer profile with analytics and job history.

## Query parameters

- `st_customer_id` integer, required — ServiceTitan customer ID

## Response `200`

Successful Response

- FullProfileResponse
  - `st_customer_id` integer, required
  - `customer_name` string, nullable
  - `customer_type` string, nullable
  - `customer_address` object, nullable
  - `customer_created_on` string, nullable
  - `customer_tags` object[]
  - `has_active_membership` boolean
  - `memberships` FullProfileMembership[]
    - `membership_type_name` string, nullable
    - `status` string, nullable
    - `from_date` string, nullable
    - `to_date` string, nullable
    - `billing_frequency` string, nullable
  - `contacts` FullProfileContact[]
    - `contact_value` string, required
    - `contact_type` string, required
    - `contact_name` string, nullable
    - `role` string
    - `decision_maker_score` number
    - `preferred_channel` string
  - `kpis` object
  - `locations` FullProfileLocation[]
    - `location_id` integer, required
    - `name` string, nullable
    - `address` string, nullable
    - `classification` string, nullable
    - `classification_reason` string, nullable
    - `equipment` FullProfileEquipment[]
      - `id` integer, required
      - `name` string, nullable
      - `equipment_type` string, nullable
      - `installed_on` string, nullable
      - `serial_number` string, nullable
      - `manufacturer` string, nullable
      - `model` string, nullable
      - `status` string, nullable
      - `memo` string, nullable
      - `manufacturer_warranty_end` string, nullable
      - `lineage` object, nullable
    - `notes` object[]
  - `behavior` FullProfileBehavior
    - `decision_style_summary` string, nullable
    - `service_pattern_summary` string, nullable
    - `customer_note_insights` string, nullable
    - `agent_observations_summary` string, nullable
    - `business_unit_segments` FullProfileBuyingSegment[]
      - `segment_label` string, required
      - `job_count` integer
      - `quoted_job_count` integer
      - `jobs_moved_forward_count` integer
      - `avg_ticket` number
      - `confidence` number
      - `data_sufficiency` string
      - `summary` string
      - `outreach_guidance` string
    - `cross_segment_insights` string
  - `recent_jobs` FullProfileJob[]
    - `st_job_id` integer, required
    - `job_status` string, nullable
    - `job_type` string, nullable
    - `business_unit` string, nullable
    - `completed_date` string, nullable
    - `llm_job_summary` string, nullable
    - `sold_estimate_total` number, nullable
    - `unsold_estimates` object[]
    - `technician_name` string, nullable
  - `customer_notes` FullProfileNote[]
    - `text` string, nullable
    - `is_pinned` boolean
    - `created_on` string, nullable
  - `last_synced_at` string, nullable

## Other responses

- `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/112efbdea3eb/schema)
