---
title: "Send a turn to the shared project assistant chat"
method: POST
path: "/projects/{id}/assistant/chat"
tags: ["Projects"]
---

# Send a turn to the shared project assistant chat

`POST /projects/{id}/assistant/chat`

## Request

- Base URL: `https://api.apphandoff.com/api`
- URL: `https://api.apphandoff.com/api/projects/{id}/assistant/chat`
- Auth: API key in cookie `sb-access-token`

Project-scoped assistant transport. The `purpose` discriminator selects
the surface-specific prompt and context. Currently enabled for roadmap
requirements discussion before codebase analysis.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `purpose` 'roadmap_requirements', required
  - `messages` object[], required
    - `role` 'user' | 'assistant', required
    - `content` string, required
  - `context` object, required
    - `source_text` string, required
    - `source_label` string

## Response `200`

Assistant reply

- object
  - `message` string, required

## Other responses

- `400`: Invalid request
- `401`: Not authenticated
- `403`: Forbidden
- `503`: Assistant provider unavailable

---

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