> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://dev.neurologyca.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://dev.neurologyca.com/_mcp/server.

# Overview

> Introduction to the SoftSkills full-analysis API

This API provides recorded-session analysis for SoftSkills. You upload a video and receive either an immediate result for short videos or a job to poll for completion when processing needs to continue asynchronously.

## What this API does

* **Surfaced endpoints:** `POST /api/v1/full-analysis` and `GET /api/v1/full-analysis/{session_id}`.
* **Authentication:** API keys only. Send either `Authorization: Bearer ng_...` or `X-API-Key: ng_...`.
* **Flow:** Upload video -> receive `200` sync result or `202` async job -> poll until complete if needed.

## Main endpoints

| Property            | Value                                    |
| ------------------- | ---------------------------------------- |
| **Submit analysis** | `POST /api/v1/full-analysis`             |
| **Fetch status**    | `GET /api/v1/full-analysis/{session_id}` |

## Response behavior

| Endpoint                                 | Best for                             | Returns                                                                                                   |
| ---------------------------------------- | ------------------------------------ | --------------------------------------------------------------------------------------------------------- |
| `POST /api/v1/full-analysis`             | Starting a recorded-session analysis | `200` with final analysis for short videos, or `202` with `sessionId`, optional `jobId`, and `pollingUrl` |
| `GET /api/v1/full-analysis/{session_id}` | Fetching saved analysis state        | In-flight status, completed result, or failure details for the session                                    |

## High-level workflow

1. **Create an API key** in the [dashboard](https://softskills.neurologyca.com) ([API Keys](https://softskills.neurologyca.com/api-keys) tab).
2. **Submit a multipart request** with the required `video` field and any optional analysis parameters.
3. **Handle the response**:
   * `200` means the final analysis is already available.
   * `202` means you should fetch the returned `pollingUrl`, which now resolves by `sessionId`.
4. **Fetch until terminal state** if the run is async. Sessions can return `pending`, `processing`, `complete`, or `failed`.