curl --request POST \
--url https://api.tuteliq.ai/api/v1/analysis/emotions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"messages": [
{
"sender": "<string>",
"text": "<string>"
}
],
"context": {
"age_group": "<string>"
},
"external_id": "<string>",
"metadata": {},
"incident_moderation_enabled": true
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
messages: [{sender: '<string>', text: '<string>'}],
context: {age_group: '<string>'},
external_id: '<string>',
metadata: {},
incident_moderation_enabled: true
})
};
fetch('https://api.tuteliq.ai/api/v1/analysis/emotions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.tuteliq.ai/api/v1/analysis/emotions"
payload = {
"messages": [
{
"sender": "<string>",
"text": "<string>"
}
],
"context": { "age_group": "<string>" },
"external_id": "<string>",
"metadata": {},
"incident_moderation_enabled": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)val client = OkHttpClient()
val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(mediaType, "{\n \"messages\": [\n {\n \"sender\": \"<string>\",\n \"text\": \"<string>\"\n }\n ],\n \"context\": {\n \"age_group\": \"<string>\"\n },\n \"external_id\": \"<string>\",\n \"metadata\": {},\n \"incident_moderation_enabled\": true\n}")
val request = Request.Builder()
.url("https://api.tuteliq.ai/api/v1/analysis/emotions")
.post(body)
.addHeader("Authorization", "Bearer <token>")
.addHeader("Content-Type", "application/json")
.build()
val response = client.newCall(request).execute()import Foundation
let parameters = [
"messages": [
[
"sender": "<string>",
"text": "<string>"
]
],
"context": ["age_group": "<string>"],
"external_id": "<string>",
"metadata": [],
"incident_moderation_enabled": true
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.tuteliq.ai/api/v1/analysis/emotions")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
]
request.httpBody = postData
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))using RestSharp;
var options = new RestClientOptions("https://api.tuteliq.ai/api/v1/analysis/emotions");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"messages\": [\n {\n \"sender\": \"<string>\",\n \"text\": \"<string>\"\n }\n ],\n \"context\": {\n \"age_group\": \"<string>\"\n },\n \"external_id\": \"<string>\",\n \"metadata\": {},\n \"incident_moderation_enabled\": true\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
false{
"dominant_emotions": [
"<string>"
],
"emotion_scores": {},
"trend": "improving",
"summary": "<string>",
"recommended_followup": "<string>",
"credits_used": 123,
"external_id": "<string>",
"metadata": {}
}Analyze emotional patterns and mental health indicators in conversation
Analyze a conversation for dominant emotions, sentiment trajectory (improving/stable/worsening), and early mental health risk indicators. Surfaces persistent patterns of sadness, anxiety, anger, or withdrawal that may indicate depression or declining wellbeing. Returns emotion scores, trend analysis, a human-readable summary, and recommended follow-up actions.
curl --request POST \
--url https://api.tuteliq.ai/api/v1/analysis/emotions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"messages": [
{
"sender": "<string>",
"text": "<string>"
}
],
"context": {
"age_group": "<string>"
},
"external_id": "<string>",
"metadata": {},
"incident_moderation_enabled": true
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
messages: [{sender: '<string>', text: '<string>'}],
context: {age_group: '<string>'},
external_id: '<string>',
metadata: {},
incident_moderation_enabled: true
})
};
fetch('https://api.tuteliq.ai/api/v1/analysis/emotions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.tuteliq.ai/api/v1/analysis/emotions"
payload = {
"messages": [
{
"sender": "<string>",
"text": "<string>"
}
],
"context": { "age_group": "<string>" },
"external_id": "<string>",
"metadata": {},
"incident_moderation_enabled": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)val client = OkHttpClient()
val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(mediaType, "{\n \"messages\": [\n {\n \"sender\": \"<string>\",\n \"text\": \"<string>\"\n }\n ],\n \"context\": {\n \"age_group\": \"<string>\"\n },\n \"external_id\": \"<string>\",\n \"metadata\": {},\n \"incident_moderation_enabled\": true\n}")
val request = Request.Builder()
.url("https://api.tuteliq.ai/api/v1/analysis/emotions")
.post(body)
.addHeader("Authorization", "Bearer <token>")
.addHeader("Content-Type", "application/json")
.build()
val response = client.newCall(request).execute()import Foundation
let parameters = [
"messages": [
[
"sender": "<string>",
"text": "<string>"
]
],
"context": ["age_group": "<string>"],
"external_id": "<string>",
"metadata": [],
"incident_moderation_enabled": true
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.tuteliq.ai/api/v1/analysis/emotions")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
]
request.httpBody = postData
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))using RestSharp;
var options = new RestClientOptions("https://api.tuteliq.ai/api/v1/analysis/emotions");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"messages\": [\n {\n \"sender\": \"<string>\",\n \"text\": \"<string>\"\n }\n ],\n \"context\": {\n \"age_group\": \"<string>\"\n },\n \"external_id\": \"<string>\",\n \"metadata\": {},\n \"incident_moderation_enabled\": true\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
false{
"dominant_emotions": [
"<string>"
],
"emotion_scores": {},
"trend": "improving",
"summary": "<string>",
"recommended_followup": "<string>",
"credits_used": 123,
"external_id": "<string>",
"metadata": {}
}Authorizations
API key as Bearer token
Body
Chat history to analyze
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Your unique identifier for correlation with your systems
255Custom key-value pairs for additional context. Maximum 20 properties.
Per-call override of your account incident logging setting. When set, it takes precedence over the account-level flag for THIS request: true forces the incident to be persisted, false suppresses persistence. Omit to use your account default (which itself defaults to enabled). Lets you control incident logging per request, e.g. suppress logging for test traffic.
Response
Default Response
Show child attributes
Show child attributes
improving, stable, worsening Number of credits consumed by this request
Echo of provided external_id
Echo of provided metadata