---
title: "Store emotional state"
method: POST
path: "/emotional-state"
tags: ["Emotional State"]
---

# Store emotional state

`POST /emotional-state`

Store a conversation transcript as emotional state and trigger indexing.

The conversation text is stored as a Vault resource in the `_emotional_state`
collection and sent for indexing via the standard pipeline. Mood extraction
happens asynchronously via the Hyperdoc pipeline (MoodExtractor).

## Request body

- EmotionalStateRequest — Request to store an emotional state extraction.
  - `conversation` string, required — The conversation transcript to extract emotional state from.
  - `session_id` string, nullable — Session identifier for the conversation.
  - `relationship_id` string, nullable — Per-relationship scoping key (e.g. 'partner-anna', 'slack:C01234').
  - `metadata` object, nullable — Custom metadata for filtering.

## Response `200`

Successful Response

- EmotionalStateResponse — Response after storing emotional state.
  - `resource_id` string, required
  - `summary` string, required
  - `extracted_at` string, required
  - `session_id` string, nullable, required
  - `relationship_id` string, nullable, required
  - `status` string, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/hyperspell/apis/hyperspell-api.md) · [All operations](https://skmtc.net/hyperspell/apis/hyperspell-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hyperspell/hyperspell-api/revisions/5721acd588e6/schema)
