Skip to main content
A Dedicated Permission for the Realtime API

The Realtime API has its own permission

Realtime sessions authorize with interhumanai.realtime. Give the keys that open realtime sessions that permission, then request the scope when you mint credentials: pass "scopes": ["interhumanai.realtime"] to POST /v1/auth or POST /v1/client_tokens.One key can hold several permissions, so a single key can cover upload, stream, and realtime. A credential without interhumanai.realtime is refused at the WebSocket handshake with ih2003 (close code 4003).
Realtime Recommendations

Live guidance while the conversation is happening

The Realtime API can generate periodic recommendations for the responding speaker, grounded in the social signals detected so far and the transcript you supply.On WS /v0/realtime/analyze:
  • Set realtime_recommendation_instructions in the session config to describe your use case — the goal, the domain, and the shape of the output you want. A non-empty value turns recommendations on.
  • Set realtime_recommendation_frequency to pace them: high every 10 seconds of analyzed video, medium every 20 seconds, low every 30 seconds.
  • Listen for realtime_recommendation.generated, which carries the guidance text and the analyzed interval it covers.
A recommendation is emitted once all three conditions hold: you have supplied instructions, at least one signal has been detected, and at least one transcript has been received since the previous recommendation.
Visual-Coverage Notices on the Stream and Realtime APIs

Know when a window’s video coverage was partial

The informational coverage.degraded message reports analysis windows that decoded materially less video than the window span while the audio ran to the end — the shape a static screen share or a long-GOP encoder produces when its keyframe interval exceeds the analysis window.Those windows are still analyzed, using the audio plus whatever video decoded, and are billed normally. The notice lists the affected time ranges so your application knows the visual signals over that stretch drew on partial video.This applies to WS /v1/stream/analyze and WS /v0/realtime/analyze.
Signal Modality

Every signal names where its evidence came from

Signals carry a modality list naming the analysis modalities that detected them:
Signals from the Upload and Stream APIs carry video. A Realtime session runs several analyses at once, so its signals name every one that detected them — ["audio", "visual"] when both did.Use it to tell your users which evidence a signal rests on, or to weight signals that several modalities agree on.
Visual Tension Signal

The Realtime API detects tension

The Realtime API reports the signal tension, available when the visual analysis group is active for the session.
Stream Shutdown Grace Period

Close a stream session without losing the last windows

The stream WebSocket endpoint supports a caller-initiated graceful shutdown handshake. Send session.close when you have finished sending video and the API acknowledges with session.closing, including a maximum drain timeout. It then finishes analyzing the video it already accepted, ends still-active signals, sends session.ended, and closes the connection cleanly.
Inter-1 Streaming

Inter-1 goes streaming

The Inter-1 Streaming API is now available. The same behavioral analysis Inter-1 already delivers on upload — social signals with rationales, engagement, and the conversation quality — now runs on live video over WebSocket while the conversation is still happening.

Highlights

  • Live behavioral analysis: stream video chunks to wss://api.interhuman.ai/v1/stream/analyze and receive typed events (signal.detected, signal.ended, engagement.updated, and more) as state changes unfold.
  • Full Inter-1 capability on live video: the same social signals Inter-1 reports on upload, with structured rationales, engagement tracking, and optional five-dimension Conversation Quality Index scores — not a reduced streaming subset.
  • Predictable session contract: session.ready declares server limits up front; an optional session config message opts into additional analyses before you send the first frame.
  • Low-latency sliding windows: stream chunks at whatever size fits your pipeline; analysis runs on overlapping sliding windows with ordered, concurrent processing — when the queue backs up, dropped windows are reported so clients never miss silent gaps.
  • Production-minded billing and lifecycle: you are billed only for seconds actually analyzed and delivered; on disconnect, in-flight work is cancelled and active signals receive an implicit signal.ended.

Explore streaming

Authentication Simplification

Direct API key authentication for requests

Interhuman supports a simple authentication path for API integrations. You can send your API key directly in the Authorization header on requests, including POST /v1/upload/analyze.

Highlights

  • One-step auth for integrations: call API endpoints directly with Authorization: Bearer <api_key>.
  • Lower setup overhead: no required key exchange step before your first upload request.
General Availability

Interhuman V1 is live

Interhuman V1 is now generally available. This release stabilizes the core integration path: authenticate, upload a video, and receive structured analysis with predictable error handling.

Highlights

  • Self-serve onboarding: create an account and generate API keys directly at platform.interhuman.ai.
  • Stable API contract: V1 authentication and upload-analysis flows are stable for production use.
  • Reliable processing: consistent analysis completion across real-world video uploads.
  • Production-ready errors: standardized error payloads (error_id, correlation_id, link, message) for faster debugging and stronger recovery logic.
  • Faster setup path: quickstart and codealong docs that get you from API key to first successful analysis quickly.

Explore V1