Profiles API
The Profiles API lets you query the semantic profiles that Cipres builds for each user. Every message processed through the Users API is analyzed and folded into a cumulative profile — tracking sentiment trends, topic affinities, churn risk, and intentions over time. Use this API to read those profiles, filter by behavioral patterns, and access individual message timelines.
List Profiles
https://cipres.tech/api/v1/profiles Returns a paginated list of user profiles for a project. Supports filters for churn risk, sentiment trend, and minimum message count — useful for finding at-risk users or identifying behavioral cohorts programmatically.
Headers
X-API-Key required Your API key for authentication.
Query Parameters
project_id required The project to query profiles from.
limit Maximum number of profiles to return. Default: 20, max: 100.
offset Number of profiles to skip for pagination. Default: 0.
churn_risk_gte Filter users with churn_risk_score >= this value (0.0 to 1.0).
churn_risk_lte Filter users with churn_risk_score <= this value (0.0 to 1.0).
sentiment_trend Filter by sentiment trend. Values: "improving", "stable", "declining".
min_messages Only return users with at least this many analyzed messages.
Example Request
curl https://cipres.tech/api/v1/profiles?project_id=1&limit=20 \
-H "X-API-Key: sk_a1b2c3d4..." # Users with high churn risk and declining sentiment
curl "https://cipres.tech/api/v1/profiles?project_id=1\
&churn_risk_gte=0.7\
&sentiment_trend=declining\
&min_messages=3" \
-H "X-API-Key: sk_a1b2c3d4..." Responses
{
"users": [
{
"user_id": "user_123",
"source_label": "SaaS Feedback",
"attributes": {
"plan": "pro",
"country": "US"
},
"aggregates": {
"window_size": 10,
"avg_sentiment": -0.42,
"sentiment_trend": "declining",
"top_topics": ["billing", "support", "pricing"],
"topic_scores": {
"billing": 0.85,
"support": 0.62,
"pricing": 0.41
},
"intentions_summary": ["wants refund", "considering alternatives"],
"negative_ratio": 0.7,
"churn_risk_score": 0.78,
"price_sensitive_ratio": 0.5,
"message_frequency_days": 3.2
},
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-02-01T14:22:00Z"
}
],
"total": 1
} Get Profile
https://cipres.tech/api/v1/profiles/:user_id Returns the full profile for a single user, including their attributes, all aggregate metrics, and metadata.
Headers
X-API-Key required Your API key for authentication.
Query Parameters
project_id required The project the user belongs to.
Example Request
curl https://cipres.tech/api/v1/profiles/user_123?project_id=1 \
-H "X-API-Key: sk_a1b2c3d4..." Responses
{
"user_id": "user_123",
"source_label": "SaaS Feedback",
"attributes": {
"plan": "pro",
"country": "US"
},
"aggregates": {
"window_size": 10,
"avg_sentiment": -0.42,
"sentiment_trend": "declining",
"top_topics": ["billing", "support", "pricing"],
"topic_scores": {
"billing": 0.85,
"support": 0.62,
"pricing": 0.41
},
"intentions_summary": ["wants refund", "considering alternatives"],
"negative_ratio": 0.7,
"churn_risk_score": 0.78,
"price_sensitive_ratio": 0.5,
"message_frequency_days": 3.2
},
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-02-01T14:22:00Z"
} Get User Timeline
https://cipres.tech/api/v1/profiles/:user_id/timeline Returns the chronological list of analyzed messages for a user. Each entry includes the extracted sentiment, topics, and intentions from that specific message. Useful for understanding how a user's behavior has evolved.
Headers
X-API-Key required Your API key for authentication.
Query Parameters
project_id required The project the user belongs to.
Example Request
curl https://cipres.tech/api/v1/profiles/user_123/timeline?project_id=1 \
-H "X-API-Key: sk_a1b2c3d4..." Responses
{
"user_id": "user_123",
"timeline": [
{
"timestamp": "2025-02-01T14:22:00Z",
"source_label": "SaaS Feedback",
"sentiment": -0.8,
"topics": ["billing", "pricing"],
"intentions": ["wants refund"]
},
{
"timestamp": "2025-01-28T09:15:00Z",
"source_label": "SaaS Feedback",
"sentiment": -0.3,
"topics": ["support"],
"intentions": ["needs help"]
},
{
"timestamp": "2025-01-20T16:45:00Z",
"source_label": "SaaS Feedback",
"sentiment": 0.2,
"topics": ["onboarding"],
"intentions": []
}
]
} Profile Fields Reference
Each user profile includes an aggregates object with the following fields.
These are recalculated every time a new message is processed for the user.
window_size Number of messages included in the aggregation window.
avg_sentiment Average sentiment score across recent messages (-1.0 to 1.0).
sentiment_trend Direction of sentiment over time: "improving", "stable", or "declining".
top_topics Most frequent topics across the user's messages, ranked by score.
topic_scores Topic frequency scores (0.0 to 1.0) for each detected topic.
intentions_summary Aggregated user intentions detected across all messages.
negative_ratio Proportion of messages with negative sentiment (0.0 to 1.0).
churn_risk_score Multi-factor churn risk score (0.0 to 1.0). Combines negative sentiment, declining trends, and churn-related intentions.
price_sensitive_ratio Proportion of messages expressing price sensitivity (0.0 to 1.0).
message_frequency_days Average number of days between messages from this user.
Use Cases
- Churn prevention — Query profiles with
churn_risk_gte=0.7to find users at risk and trigger outreach - Sentiment monitoring — Filter by
sentiment_trend=decliningto catch users whose experience is degrading - Behavioral cohorts — Combine filters to build dynamic lists: high-risk users who write frequently, or loyal users with positive trends
- User timeline analysis — Use the timeline endpoint to understand the progression of a specific user's experience over time
- CRM enrichment — Pull profile data into your CRM to give sales and support teams context on each user's semantic history