Skip to content

Take Agent Discovery Turn

POST
/agent/onboarding/discovery/turn

One conversational turn of the kickoff. THIS ONE COSTS MONEY.

The only route on this surface that makes an LLM call, which is why it is tiered billable and why the app rate-limits it at 20 requests a minute per organisation - far above a human conversation, far below anything that shows up on a bill. Over that, the app answers 429 with Retry-After.

The model replies AND states what it learned in one forced tool call, so a message that answers four questions records four fields. Everything it claims is validated before it is written: a key outside the framework is dropped, and a green with no supporting quote is DOWNGRADED to amber rather than trusted.

The turn writes only to the discovery record. It provisions nothing, calls no tools, and sends nothing.

There is no history parameter and that is deliberate - see the module docstring.

Authorizations

Parameters

Header Parameters

X-Target-Org-Id
Any of:
string

Request Body required

Mirror of DiscoveryTurnRequest.

There is deliberately NO history field, and that is load-bearing rather than an omission. The app removed one: the panel used to keep the transcript in browser state and ship it back on every turn, so a reload destroyed the customer’s whole kickoff. The server re-grounds from the durable record instead. A caller-supplied transcript is not something the server can verify, and accepting one here would re-open exactly that hole.

object
message
required
string
>= 1 characters <= 8000 characters
session_id
Any of:
string

Responses

200

Successful Response

object
data
required

An open envelope for an onboarding or discovery result.

Open on purpose. Discovery state carries a per-field coverage matrix whose field set is the product’s own onboarding questionnaire - it changes as the questionnaire does, and a pinned mirror would silently DROP a field the customer had answered. On a surface whose whole job is “what do we still not know about you”, a dropped field reads as an answered question.

object
key
additional properties
any
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
notes
Any of:
Array<string>
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer
total_available
Any of:
integer
total_is_lower_bound
Any of:
boolean

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string