List customer profiles
GET/customer360/profiles
Returns a paginated list of all unified customer profiles ordered by most recently updated, with health scores, identity counts, and timeline event counts. Use this as the primary customer directory view.
Request
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
page | integer | No | Page number (15 profiles per page). Default: |
Responses
200 Paginated list of customer profiles with health and activity metadata
Content type application/json, object.
| Field | Type | Required | Description |
|---|---|---|---|
data | array of object · CustomerProfileV1 | No | |
data[].id | integer | No | Auto-incremented primary key. |
data[].display_name | string | No | Full display name of the customer. Example: |
data[].primary_email | string (email), nullable | No | Primary contact email address. Example: |
data[].primary_phone | string, nullable | No | Primary phone number. Example: |
data[].external_ids | object, nullable | No | Cross-system ID map (system name → external record ID). |
data[].attributes | object, nullable | No | Arbitrary segmentation attributes. |
data[].identities_count | integer | No | Number of linked identity records from external systems. Example: |
data[].timeline_items_count | integer | No | Number of behavioural timeline events recorded for this profile. Example: |
data[].health_score | object · CustomerHealthScoreV1 | No | A computed health score indicating the overall customer relationship quality. |
data[].health_score.profile_id | integer | No | ID of the associated customer profile. Example: |
data[].health_score.score | number | No | Numeric health score from 0 (worst) to 100 (best). Example: |
data[].health_score.band | string | No | Human-readable health band derived from the score. Typical bands: 'healthy' (70–100), 'at_risk' (40–69), 'churned' (0–39). Example: |
data[].health_score.status | string | No | Machine-readable health status. One of: |
data[].health_score.factors | array of object | No | Scoring factor breakdown showing what drove the final score. |
data[].health_score.factors[].factor | string | No | Name of the scoring dimension. |
data[].health_score.factors[].weight | number | No | Relative weight of this factor in the overall score. |
data[].health_score.factors[].value | number | No | Computed sub-score for this factor. |
data[].health_score.calculated_at | string (date-time), nullable | No | Timestamp of the most recent score calculation. |
data[].updated_at | string (date-time) | No | Last update timestamp. |
Example
{
"data": [
{
"id": 42,
"display_name": "Kwame Mensah",
"primary_email": "kwame.mensah@example.test",
"primary_phone": "+233201234567",
"external_ids": {
"whmcs_client": 105,
"stripe_customer": "cus_abc123"
},
"attributes": {
"tier": "enterprise",
"industry": "fintech"
},
"identities_count": 3,
"timeline_items_count": 27,
"health_score": {
"score": 82.0,
"band": "healthy",
"status": "healthy"
},
"updated_at": "2026-04-07T09:00:00Z"
}
]
}
401 Unauthenticated
Example request
curl -X GET "https://{tenant}.faciotech.net/api/v1/customer360/profiles" \
-H "Accept: application/json"