---
title: "Set Process Conversation Model"
method: PUT
path: "/api/processes/{process_id}/conversations/{session_id}/model"
---

# Set Process Conversation Model

`PUT /api/processes/{process_id}/conversations/{session_id}/model`

Persist the per-conversation model choice so it survives reload and
syncs across devices. Upserts ONLY the provider/model columns on the
conversation cache row — every other column (history/meta/route/…) is
untouched, so a concurrent core→cache trajectory sync won't clobber the
model and this PUT won't clobber history. If the row doesn't exist yet
(model picked before the first trajectory sync created it), a minimal
row is inserted; the later sync fills in the rest via its own upsert,
which deliberately omits these two columns.

## Path parameters

- `process_id` string, required
- `session_id` string, required

## Headers

- `authorization` string, nullable

## Request body

- ConversationModelIn
  - `provider` string
  - `model` string

## Response `200`

Successful Response

- object

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/omicos/apis/omicos-server.md) · [All operations](https://skmtc.dev/omicos/apis/omicos-server/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/omicos/omicos-server/revisions/a00b94573ffe/schema)
