---
title: "Guide Message Endpoint"
method: POST
path: "/guide/message"
tags: ["guide"]
---

# Guide Message Endpoint

`POST /guide/message`

## Request

- Base URL: `https://api.framesail.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.framesail.com/guide/message`
- Auth: HTTP bearer

One turn of the in-app guide: answers where the user is and what a
step does, from the live pipeline state and the MCP server's read-only
tools, called as the user. The thread is kept server-side.
Synchronous — a few seconds. 429 once the user is past the rate limit or
the day's spend cap.

## Request body

- GuideMessageRequest
  - `project_id` string, nullable
  - `channel_id` string, nullable
  - `message` string, required
  - `route` string, required

## Response `200`

Successful Response

- GuideMessageResponse
  - `reply` string, required
  - `step` string, nullable, required
  - `link` string, nullable, required
  - `category` 'workflow' | 'quality' | 'credits' | 'billing' | 'bug' | 'account' | 'unknown', required
  - `confidence` number, required
  - `escalate` boolean, required
  - `chips` GuideChip[], required
    - `label` string, required
    - `kind` 'navigate' | 'question' | 'preset', required
    - `value` string, required
    - `highlight` string, nullable
  - `escalation` GuideEscalation: What the support email needs prefilled when a turn escalates.
    - `project_id` string, nullable, required
    - `route` string, required
    - `step` string, nullable, required
    - `last_error` string, nullable, required
  - `message_id` string, nullable

## Other responses

- `422`: Validation Error

---

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