---
title: "Create run session"
method: POST
path: "/api/v1/runs/{id}/sessions"
tags: ["Sessions"]
---

# Create run session

`POST /api/v1/runs/{id}/sessions`

Creates a read-only Ask Fabro session bound to the run.

## Request body

- CreateRunSessionRequest
  - `title` string
  - `model` string — Catalog model ID or alias, optionally qualified as `provider:selector`. A provider-qualified selector may be a canonical model ID, alias, or provider API ID. A value counts as qualified only when the text before the first `:` names a known provider, so model IDs containing a colon stay whole. Legacy `provider/model` references remain accepted. The server stores the canonical model ID.
  - `provider` string — LLM provider identifier.

## Response `201`

Session created

- SessionRecord — Ask Fabro session metadata derived from the owning run event stream.
  - `id` string, required — Durable session identifier.
  - `run_id` string, required
  - `title` string, nullable
  - `status` 'idle' | 'running' | 'failed', required
  - `model` string, nullable — Canonical model ID selected when the session was created.
  - `provider` string — LLM provider identifier.
  - `active_turn` SessionTurn, required — Currently active durable session turn.
    - `id` string, required — Durable session turn identifier.
    - `started_at` string, date-time, required
    - `input` string, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400` — Invalid input

---

[API](https://skmtc.net/fabro-sh/apis/fabro-run-api.md) · [All operations](https://skmtc.net/fabro-sh/apis/fabro-run-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fabro-sh/fabro-run-api/versions/bee030053823/schema)
