Expression Measurement API

Read the full spectrum of human emotion from a single image.

Most emotion detection APIs tell you "happy" or "sad." Our facial expression analysis API scores 48 distinct emotions at once from Joy and Anger to Nostalgia, Contemplation and Entrancement in real time. Turn on your webcam and watch the page react to your emotional fingerprint.

No signup to try · Runs in your browser · Backed by IIM Ahmedabad & 100X.VC

Live Emotion Detection

Enable your camera to see detected emotions in real-time.

ENABLE CAMERA TO SEE LIVE EMOTION PREDICTIONS
The expression genome

Emotion has a structure. We mapped it.

Every reading you saw above is assembled from 48 independent dimensions scored in parallel, and the strand below carries every one of them. Move your cursor to turn it.

All 48 dimensions cycle through the strand · move your cursor to turn it
The problem

A face is never just one feeling. Single-label detection throws away the joy, the warmth, the hint of nostalgia you read instantly. We built a model that doesn't.

Emotions are simultaneous

A person can feel Joy and Anxiety, Admiration and Awkwardness. We score every emotion independently no forced choice.

The signal is subtle

The difference between Contempt and Concentration is a few facial muscles. Coarse labels miss it; a 48-dimension readout captures it.

The real world is messy

Odd lighting, angles, occlusions even cartoons and paintings. The model is built to generalize beyond clean lab photos.

What it outputs

Not a label. A measurement.

For every image, the API returns an independent probability score for each of 48 emotions a full distribution, not a winner. A 0.45 on Nostalgia tells a different story than a 0.02. That distribution is the insight.

Why a distribution beats a label

Forcing one emotion discards information. The probability spread lets you set your own thresholds, track blends, and feed nuanced signal into downstream models or analytics.

Readout · "laughing at a joke"

Joy0.86
Amusement0.84
Excitement0.57
Satisfaction0.39
Love0.37
Contentment0.30
Interest0.26
Pride0.20
Determination0.08
Nostalgia0.08
Anxiety0.07
Ecstasy0.07
Romance0.07
Concentration0.07
Surprise (pos)0.07
Craving0.07
Distress0.06
Realization0.06
Boredom0.06
Entrancement0.06
Shame0.06
Contempt0.06
Horror0.05
Triumph0.05
Adoration0.05
Disappointment0.05
Pain0.05
Awe0.05
Embarrassment0.05
Sadness0.05
Confusion0.04
Fear0.04
Sympathy0.04
Desire0.04
Anger0.04
Doubt0.04
Relief0.04
Calmness0.03
Envy0.03
Surprise (neg)0.03
Aesthetic Appreciation0.03
Disgust0.03
Awkwardness0.02
Empathic Pain0.02
Contemplation0.02
Guilt0.02
Tiredness0.02
Admiration0.01
calm · low arousalintense · high arousal
The streaming API

Expression is a signal, not a snapshot.

A single frame tells you what a face looks like. A stream of frames tells you what just happened the instant a punchline lands, a patient winces, or a viewer checks out. The streaming endpoint scores every frame, so you get 48 traces over time instead of one number. Watch a twelve-second clip play out below or drag the playhead yourself.

Live trace · "hearing a joke" · 4 of 48 dims shown

Concentration0.72Surprise (pos)0.05Amusement0.08Joy0.10
0s · setup begins5.4s · punchline12s · the laugh

Why this matters: every downstream use case ad pre-testing, adaptive tutoring, clinical monitoring, empathic agents lives in the deltas. The API gives you the raw traces; your product decides what a spike means.

Calmness01
Boredom02
Tiredness03
Contemplation04
Contentment05
Nostalgia06
Sadness07
Concentration08
Relief09
Aesthetic Appreciation10
Disappointment11
Doubt12
Shame13
Sympathy14
Awkwardness15
Confusion16
Guilt17
Satisfaction18
Embarrassment19
Empathic Pain20
Entrancement21
Interest22
Realization23
Admiration24
Adoration25
Contempt26
Romance27
Anxiety28
Awe29
Determination30
Disgust31
Envy32
Love33
Pride34
Craving35
Amusement36
Desire37
Pain38
Distress39
Surprise (neg)40
Surprise (pos)41
Fear42
Joy43
Anger44
Excitement45
Triumph46
Horror47
Ecstasy48
Under the hood

How a photo becomes 48 numbers.

One request travels through four stages. Each stage exists for a reason and the whole trip is fast enough to run on a live webcam stream.

Stage 1

Find the face

A detector locates every face in the frame off-angle, partially lit, or half-turned. No face, no charge: the request short-circuits before inference.

Stage 2

Align & normalize

Landmarks anchor the crop so tilt, distance and camera angle stop mattering. The model compares expressions, never framing.

Stage 3

Encode holistically

A transformer vision backbone reads the whole face at once. It learns that tension around the eyes means one thing next to a relaxed mouth and another next to a clenched jaw relations, not regions.

Stage 4

Score all 48 heads

Forty-eight independent output heads fire in parallel one per emotion dimension. No softmax forcing a winner: every score stands on its own, so blends survive.

160K+
Distinct human faces

A proprietary training corpus deliberately weighted toward rare expressions Entrancement, Empathic Pain, Aesthetic Appreciation so the model learns them instead of ignoring them.

48×
Independent probabilities

Each head is trained and calibrated separately. A 0.45 on Nostalgia means the same thing today as it did last month scores you can threshold and trend against.

2/sec
Live-stream ready

The full pipeline is optimized for streaming the same model that scores a batch of stills keeps pace with a webcam feed over WebSocket.

0 stored
Stateless by default

Frames are scored and released. Nothing about the pipeline requires retaining imagery retention is your policy decision, not our architecture's.

Inputs

Three ways in.

01

Upload

Drop in any local image JPG or PNG straight from your device.

02

Paste a URL

Point the model at any hosted image and get scores back instantly.

03

Live webcam

Stream from your camera and watch your emotional fingerprint update in real time.

Use cases

Built for the corners where generic models fail.

Foundation models can do zero-shot emotion recognition but they flatten the truth. Our 48-dimension granularity, real-time speed and regulatory-ready architecture unlock the verticals where "good enough" isn't an option.

Non-verbal pain assessment

The strongest clinical signal for pain in those who can't self-report, including neonates, dementia patients, and the critically ill. Continuous monitoring replaces intermittent, subjective spot-checks.

Falls under the EU AI Act medical exception

Eldercare & proactive companions

Emotion-aware virtual coaches for older adults, with a companion that initiates contact when it detects stress or anxiety instead of waiting to be asked.

Youth mental-health screening

Screening support for adolescents in telehealth and clinical settings, with guardian consent only and never in schools.

Sensitive · consent + clinical oversight required
Signals that matter here
Pain0.88
Empathic Pain0.72
Distress0.60
Sadness0.48
Calmness0.36
Contentment0.27

Pain and distress dimensions dominate, providing the signals clinicians need when a patient can't self-report.

Why these verticals?

Because general vision-language models can't touch them whether it's the 48-dimension granularity a clinical pain scale needs, regulatory clearance for a medical device, or custom models for veterinary care. This is where we win.

For developers

A few lines to your first prediction.

Send an image, get 48 scores back. REST for batches, streaming for live webcam and video.

REST · batchWebSocket · real-timeImage · URL · Webcam
measure.py
import requests

resp = requests.post(
    "https://api.sharedpro.co/v1/expression/face",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={"image_url": "https://example.com/face.jpg"},
)

# -> {"emotions": [{"name": "Joy", "score": 0.86}, ...]}  # 48 dims
for e in resp.json()["emotions"][:5]:
    print(f'{e["name"]:<14}{e["score"]:.2f}')
Responsible use

What this measures and what it doesn't.

These scores reflect how an average human observer would likely describe an expression. They are not a direct readout of what someone is feeling emotional experience is private, multimodal and context-dependent. Use the API to augment human judgment, not replace it, and always with the consent of the people being analyzed especially in sensitive verticals like clinical pain assessment or youth mental health.

Hume AI Expression Measurement alternative

Built on Hume's Expression Measurement API? It sunset on June 14, 2026.

If your product depended on Hume AI's face model, Sharedpro is the closest drop-in for facial expression analysis the same 48-dimension emotion taxonomy, independent per-dimension scores, REST for batches plus streaming for live video, and a free tier to validate the swap before you commit.

Pricing

Start free.

Playground
Free
  • Unlimited browser demo
  • Webcam, upload & URL
  • No signup required
Developer
Free tier then usage-based
  • Full REST + streaming API
  • 48-emotion output
  • Free monthly call allowance
  • Docs & SDKs
Get API key
Enterprise
Custom
  • Volume pricing & SLA
  • On-platform integration
  • Clinical / custom-model builds
  • Priority support
FAQ

Questions, answered.

What does the API return?

For each image, an independent confidence score for all 48 emotion dimensions a full probability distribution, not a single label. You decide how to rank, threshold, or combine them.

What inputs are supported?

JPG and PNG images, supplied as a file upload, a hosted URL, or a live webcam stream. REST handles single images and batches; the streaming endpoint handles real-time webcam and video.

Is this a readout of how someone really feels?

No. The scores reflect how an average observer would describe an expression, not a person's private emotional experience. See Responsible use augment human judgment, with consent.

How fast is it?

Inference is optimized for real-time use fast enough to score a live webcam frame-by-frame, not just process batches offline.

Is this an alternative to Hume AI's Expression Measurement API?

Yes. Hume AI sunset its Expression Measurement API on June 14, 2026, ending new jobs and API access. Sharedpro's face model outputs the same 48-dimension emotion taxonomy with independent per-dimension scores, over REST (batch) and streaming (real-time), with a free tier to test the migration. See migrating from Hume.

How do you handle privacy?

Process only media you have the right to analyze, with the consent of the people in it. Use signed/expiring URLs for hosted files, and avoid storing raw imagery longer than your use case requires.

Try it

See your own 48 emotions.

Turn on your camera, or grab an API key and ship emotional intelligence into your product this week.

Process only media you have the right to analyze, with consent.
© 2026 Sharedpro · sharedpro.co · Vadodara, India · [email protected]Making employment portable since 2020
STEP 1 OF 5 · ABOUT YOU

Let’s start with you.

A few details so we can make the conversation relevant.