A sentiment analysis API and emotion AI purpose-built for child-safety. Instead of positive/negative polarity or generic emotion labels, this endpoint performs pre-vulnerability detection, scoring the distress patterns that precede exploitation and self-harm, before the harm occurs. Built on criminological research into how distress drives vulnerability to child sexual exploitation.
How this differs from sentiment analysis and generic emotion AI
Sentiment APIs and emotion classifiers were built for marketing analytics. They score one message at a time and return polarity or a discrete emotion label. Neither output is a safeguarding decision. Pre-vulnerability detection scores the pattern, not the polarity.
Sentiment analysis API
Generic emotion AI
Tuteliq distress (pre-vulnerability detection)
WHAT IT SCORES Polarity (positive / neutral / negative) of a single message.
Basic emotion labels (joy, anger, sadness, fear) on a single message.
Pre-vulnerability signals, loneliness, trust-seeking, overwhelm, identity distress, across a conversation.
UNIT OF ANALYSIS One message at a time.
One message at a time.
Sequence-aware: uses conversation_history, role, and age_group to score trajectory.
SAFEGUARDING OUTPUT None. A negative score can mean anything from a bad day to a suicide note.
None. 'Sadness = 0.8' is not a safeguarding decision.
Vulnerability level + exploitation_risk breakdown (grooming, sextortion, trafficking, self-harm).
AGE CALIBRATION No.
No.
Yes, age-group multipliers (under-13, 13-15, 16-17, 18+).
EVIDENCE RETURNED Score only.
Score + label.
Evidence spans, tactic tags, confidence, recommended_action.
BEST FOR Product feedback, review triage, brand monitoring.
UX research, chatbot tone selection.
Child-safety, crisis routing, DSA / KOSA / OSA compliance, safeguarding intervention.
How to choose
A quick decision guide. If more than one row applies, pick the strongest safeguarding requirement, sentiment can layer on top of pre-vulnerability detection, but not the other way around.
Polarity and topic on standalone text. Comprehend, Google NL, or Azure Text Analytics are fine.
A coarse emotion label per message to adapt UI or agent tone.
Score distress trajectories with age calibration and evidence to route crisis, suppress upsell, or gate risky flows.
Evaluate every user turn; gate agent responses when vulnerability_level ≥ elevated. Sentiment on the last turn misses the trajectory.
Regulators expect evidence, thresholds, and HITL, not "sentiment = -0.7". Every response returns evidence spans and recommended_action.
No minors, no crisis routing, no regulator obligation, a generic API covers you.
When to use this endpoint
Distress detection is the upstream signal, it tells you a user is becoming vulnerable, before any harmful actor arrives. Use it alongside the endpoints that score the harm itself.
- Use distress detection when you want to route a user to support, suppress upsell / engagement loops, or lower the threshold for other safety detectors on that session.
- Use /grooming when a second party in the conversation is applying grooming tactics (secrecy, isolation, boundary-testing).
- Use /sextortion when the conversation contains image leverage, threats of exposure, or compliance pressure.
- Use /synthetic-content when the artefact itself is the concern, AI-generated images, deepfake voices, or LLM-generated text.
- Or compose them in one request via /analyse-multi and let their signals reinforce each other.
Endpoint
Cost: 5 credits per call
Request Body
Response
Distress Signal Categories
Tag
Label
What It Detects
LONELINESS
Loneliness
Persistent feelings of being alone, having no friends, social exclusion
FEELING_UNHEARD
Feeling Unheard
Feeling dismissed by adults or peers, nobody listening
OVERWHELM
Overwhelm
Inability to cope, everything being too much
LOW_SELF_WORTH
Low Self-Worth
Negative self-perception, feeling worthless or undeserving
TRUST_SEEKING
Trust-Seeking Behaviour
Actively seeking emotional connection from others, especially strangers
WITHDRAWAL
Social Withdrawal
Disengagement from activities, social isolation
FAMILY_CONFLICT
Family Conflict
Home environment distress, parental conflict, wanting to run away
IDENTITY_DISTRESS
Identity Distress
Confusion about identity, feeling lost, not fitting in
ACADEMIC_PRESSURE
Academic Pressure
School-related distress beyond normal stress
SLEEP_DISTURBANCE
Sleep Disturbance
Insomnia, nightmares, disrupted sleep as distress indicator
APPETITE_CHANGE
Appetite Change
Significant changes in eating patterns
EMOTIONAL_NUMBING
Emotional Numbing
Feeling nothing, dissociation, emptiness
Exploitation Risk Assessment
The exploitation_risk object scores vulnerability to specific exploitation types (0.0–1.0).
Risk Type
High-Risk Combination
Grooming
Loneliness + Trust-seeking
Sextortion
Low self-worth + Overwhelm
Trafficking
Family conflict + Withdrawal
Radicalisation
Feeling unheard + Identity distress
Self-harm
Emotional numbing + Low self-worth
Substance use
Academic pressure + Family conflict
Vulnerability Level
Level
Meaning
none
No distress signals detected
low
Single mild distress signal, likely situational
elevated
Multiple signals or single persistent signal
high
Multiple persistent signals with exploitation risk pattern
critical
Pervasive distress with immediate safety concerns
Accuracy & methodology
The endpoint is calibrated on adolescent-language corpora across 32 languages and evaluated against clinician-labelled cases under the review of Dr Nicola Harding, Tuteliq's Chief Scientific Officer and criminologist specialising in child exploitation and online harm.
We publish evidence spans on every response so a reviewer can validate each flag rather than trust a scalar. Above the medium threshold we recommend human-in-the-loop safeguarding review; the endpoint is designed to route, not to auto-action.
We deliberately do not publish a single headline accuracy number: minor-safeguarding false-positive tolerance is platform-dependent (an EdTech app is not a dating app), so we let each customer tune support_threshold against their own operational cost.
Privacy by design
Emotional distress detection is one of the most sensitive signals we process. It's built to protect the person being analysed, not to profile them.
Zero retention of message content
Text sent to this endpoint is processed in memory to produce the risk score and evidence, then discarded. We do not store the raw message, transcript, or conversation history on our servers, and we do not use it to train models. Only the non-identifying scores and metadata your app chooses to keep are returned to you.
Consent stays with your app
You are the data controller for the users being analysed. Before sending content, make sure your terms, privacy notice, and (for minors) parental or guardian consent cover automated safety checks. Tuteliq acts as a processor: we only receive what you send, only for the request in flight, and only to return the safety signal you asked for.
Transparent, explainable output
Every response includes the evidence spans, indicators, and vulnerability signals that drove the score, so your moderators and safeguarding teams can review why a message was flagged rather than trusting a black box. Users have a right to understand automated decisions that affect them, this endpoint is designed to support that, not obscure it.
Minimisation and EU residency
Send only the fields you need. Avoid names, contact details, or unrelated personal data in the text field, the model doesn't need them to score distress. Processing runs in EU-based infrastructure, and identifiers like customer_id should be opaque tokens rather than emails or real names.