List customer health scores
GET/customer360/health-scores
Returns a paginated list of customer profiles with their computed health scores, identity counts, and timeline event counts. Use this to identify at-risk customers (band = 'at_risk' or 'churned') and prioritise customer success outreach.
Request
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
page | integer | No | Default: |
Responses
200 Paginated profiles with health score data
Content type application/json, object.
| Field | Type | Required | Description |
|---|---|---|---|
data | array of object · CustomerHealthScoreV1 | No | |
data[].profile_id | integer | No | ID of the associated customer profile. Example: |
data[].score | number | No | Numeric health score from 0 (worst) to 100 (best). Example: |
data[].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[].status | string | No | Machine-readable health status. One of: |
data[].factors | array of object | No | Scoring factor breakdown showing what drove the final score. |
data[].factors[].factor | string | No | Name of the scoring dimension. |
data[].factors[].weight | number | No | Relative weight of this factor in the overall score. |
data[].factors[].value | number | No | Computed sub-score for this factor. |
data[].calculated_at | string (date-time), nullable | No | Timestamp of the most recent score calculation. |
Example
{
"data": [
{
"profile_id": 42,
"score": 82.0,
"band": "healthy",
"status": "healthy",
"factors": [
{
"factor": "recent_activity",
"weight": 0.3,
"value": 9.2
},
{
"factor": "support_ticket_volume",
"weight": 0.2,
"value": 7.5
}
],
"calculated_at": "2026-04-07T09:00:00Z"
}
]
}
401 Unauthenticated
Example request
curl -X GET "https://{tenant}.faciotech.net/api/v1/customer360/health-scores" \
-H "Accept: application/json"