EMOTION ANALYSIS
Generally available20 emotions in 16 languages - not just positive/negative.
Anger, joy, fear, sadness, pride - ranked emotion signals your routing and analytics can act on. Flat taxonomy, reproducible results, no interpretation layer to audit.
20 emotions · 16 languages · p95 target <500ms · Every result reproducible
Re-run with the same pinned version → identical result
What this analyzer does and doesn't do
- Return ranked emotion labels from text across 16 languages
- Distinguish 20 distinct emotions - not a positive/negative axis
- Produce reproducible signals for routing and analytics
- ✕Diagnose mental-health or clinical conditions
- ✕Infer how a person actually feels - it classifies the text
- ✕Assess wellness, fitness for work, or insurance risk
- ✕Replace human judgment in sensitive interactions
Sentiqra returns structured signals. Your policy, reviewers, and models make the decision. See the full boundary statement →
WHAT YOU'LL DETECT
One flat taxonomy. Twenty emotions. Zero hierarchy to learn.
This is the simplest analyzer on the platform: send text, get up to three ranked emotions with scores. That simplicity is the feature.
Representative emotions shown. The complete 20-emotion list is available to customers - request access.
87.3% – 95.2% Production Top-3 Hit Rate across 16 languages.
Benchmarks vary by language - the range above is the honest spread, not the best case. Top-3 Hit Rate means the expected label appears among the 3 highest-confidence signals returned; it measures ranking quality, not whether a thresholded accept/reject decision was right.
WHERE IT GETS USED
Three jobs this analyzer does well.
Support ticket triage
A CX team combines anger + contempt into an escalation rule. Tickets carrying both signals route ahead of the queue - and when a customer disputes how they were handled, the exact emotion signals behind the routing decision replay identically.
Fit signals: queue prioritization · escalation rules · high ticket volume
Employee pulse and feedback analysis
A people-analytics team tracks morale, hope, and burnout-adjacent markers across anonymized survey text - trends by cohort over time, with a pinned config ID so this quarter's results compare cleanly against last quarter's.
Fit signals: anonymized surveys · longitudinal tracking · people analytics
Voice of Customer dashboards
A product org charts emotion trends across feedback channels - gratitude after a launch, confusion after a pricing change - as reproducible time series, not vibes. Because the config is pinned, a chart shift means customer language actually shifted.
Fit signals: VoC programs · trend dashboards · release feedback
Send a message. Get ranked emotions + a receipt.
POST /v1/analyze
Authorization: Bearer sq_live_your_api_key_here
{
"text": "I'm furious - three days waiting and nobody even replied. This is unacceptable.",
"language": "en",
"analyzers": ["emotions"]
}
{
"language": "en",
"signals": [
{ "analyzer": "emotions", "code": "negative_emotion", "label": "Negative Emotion", "score": 0.9, "confidence": "very_high", "level": "category" },
{ "analyzer": "emotions", "code": "frustration", "label": "Frustration", "score": 0.9, "confidence": "very_high", "level": "label", "parent": "negative_emotion" },
{ "analyzer": "emotions", "code": "disappointment", "label": "Disappointment", "score": 0.9, "confidence": "very_high", "level": "label", "parent": "negative_emotion" }
],
"meta": { "analyzers": [{ "name": "emotions", "status": "completed", "signal_count": 3, "billed": true }], "partial": false },
"usage": { "analyzer_runs": 1, "billed": true },
"verification": {
"configuration": "sqcfg_3WTVYJV6",
"fingerprint": "fp_8a72...19f",
"input_commitment": "ic_31bd...a42",
"signature": "sig_ed25519_4c1f...e2a"
}
}
READING THE OUTPUT
What a Emotion Analysis result tells you - and what it doesn't.
Intended task
Rank which of the 20 documented emotions a piece of text expresses - the emotional register of the writing.
Input requirements
text- the only field analyzed; up to 4,096 Unicode code points. Over the limit is rejected withinput_too_long, never truncated.language- must be a language this analyzer supports. Unsupported codes are rejected with400 unsupported_language, never analyzed as a different language.analyzers- include"emotions"; up to 2 analyzers per request, one billed run each.- No context beyond
text- no user IDs, history, profiles, or attachments are read or inferred. - Short text works, but single words and fragments carry little signal - very thin input can return an empty result.
Ordinary positive
“I was dreading this release all week, but seeing it finally live - I am honestly so proud of the team.”
Safe inference: The text expresses pride and relief with an excitement undertone - a ranked mix, not a single verdict.
Confusing negative · Reported speech
“The customer sounded angry. You must be furious about the delay.”
What happens: Anger signals can fire - the text describes and attributes emotion rather than expressing it. Signals reflect the emotional language in the text, which may belong to a described third party rather than the author.
Why it's tricky: Secondhand emotion, quoted feelings, and hypothetical phrasing ("you must be furious") share vocabulary with felt emotion. Read emotion signals as the register of the text, not a measurement of any person's actual state.
What you can safely infer
- The emotional register of the text as written, ranked across the documented emotion set.
- That mixed emotions are a normal result - consume the ranked list, not just the top label.
What you must not infer
- ✕The author's actual mental or emotional state - text is evidence of language, not feeling.
- ✕That a described emotion belongs to the author rather than someone they describe.
- ✕That a flat or empty result means the author feels nothing - thin text is thin evidence.
Boundary: Emotion signals describe the emotional language in a text. They are not a mental-health assessment and say nothing about any person's actual state.
Emotion Analysis is on every plan. Even Free.
Free
5,000 runs/mo
Build
$149/mo · 50,000 runs/mo
Growth
$349/mo · 150,000 runs/mo
Production
$799/mo · 500,000 runs/mo
Scale
$2,999/mo · 2,500,000 runs/mo
Enterprise
By agreement · SOC 2 Type II in progress
Deterministic by construction, provable by receipt.
A signed verification receipt - configuration ID (sqcfg_...), result fingerprint (fp2_...), input commitment (ic3_...), and Ed25519 signature (sig_ed25519_...) - ships with every successful analysis result. Pin it to the stored decision and a later replay under the same supported configuration and output profile yields the identical canonical result - the difference between "the model said so" and evidence.
Where it fits in your stack
Often paired with: Customer Service Intelligence for intent + urgency routing, Trust & Safety for hostile-language escalation, Crisis Intelligence for population-sentiment tracking.
Used in: Emotion & Escalation
Paste a real customer message.
5,000 analyzer runs/month · No card required
Analyzer FAQ
New to Sentiqra? It's a deterministic text-analysis API - you send text, you get labeled, confidence-scored signals plus a replayable receipt. Emotion Analysis is the 20-emotion detection in text analyzer.
What does Emotion Analysis detect?
Detect 20 distinct emotions in multilingual text with confidence-ranked top matches.
Which languages does it cover?
16 supported languages, each with a published per-language benchmark. Coverage is per-analyzer, not platform-wide - check the language list on this page before assuming parity with other analyzers.
How do I call it?
POST /v1/analyze with "analyzers": ["emotions"]. Same endpoint, auth, and response shape as every other analyzer - you can pair it with one more analyzer in the same request.
What does a call cost?
One analyzer run per call, billed against your plan's included runs (overage per plan). All GA analyzers are on every plan, including Free - see pricing.
How do I evaluate it on my data?
Label a few hundred of your own examples, run them through the free tier, and compare our signals to your labels. The evaluation playbook walks through building that test set - it's the same method we use internally.