---
title: "Fetch the final result of a therapy or classification session. Returns 400 \"Result not ready\" if status is not \"compl…"
method: GET
path: "/api/therapy-result/{sessionId}"
tags: ["Therapy Planning"]
---

# Fetch the final result of a therapy or classification session. Returns 400 "Result not ready" if status is not "compl…

`GET /api/therapy-result/{sessionId}`

## Request

- Base URL: `https://platform.vocametrix.com`
- URL: `https://platform.vocametrix.com/api/therapy-result/{sessionId}`
- Auth: API key in header `X-API-Key`

## Path parameters

- `sessionId` string, required

## Response `200`

Successful response

- object
  - `<therapy session>` string: { success, message, nodejs_session_id, ...result } — `result` is whatever the LangGraph workflow saved. Typical fields include `therapySession.sessionMetadata`, exercise plans, generated HTML paths (`html_clinician_final`, `output_file`), and free-form workflow output. The full keyset is determined by the Python workflow, not the JS layer.
  - `<classification session>` number: { success, session_id, patient_id, classification, classificationMetadata, overallClassification, timestamp }. `classification` is an array of ~4s blocks; each: { blockId, startTime, stopTime (s), primaryType (fluent/block/Soundrepetition/Wordrepetition/prolongation/interjection), secondaryTypes, confidence, characteristics, transcription, words, phonemes }. `words` holds per-word timestamps { word, start, end } in seconds (present when transcribe=true; blocks overlap, so a word may repeat across adjacent blocks). `phonemes` is "N/A" unless includePhonemes=true.

## Other responses

- `400`: Bad request — missing or invalid parameter
- `401`: Unauthorized — missing or invalid API key
- `429`: Rate limit exceeded
- `500`: Server error

---

[API](https://skmtc.dev/vocametrix/apis/vocametrix-api.md) · [All operations](https://skmtc.dev/vocametrix/apis/vocametrix-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vocametrix/apis/vocametrix-api/revisions/8a54d01bcc81?raw)
