Skip to content

Stream assistant chat

POST
/api/chat
curl --request POST \
--url https://example.com/api/chat \
--header 'Content-Type: application/json' \
--cookie better-auth.session_token=<better-auth.session_token> \
--data '{ "messages": [ { "id": "example", "role": "example", "parts": [ { "additionalProperty": "example" } ] } ], "offerId": "example", "threadId": "example" }'

AI SDK messages plus optional persistent offer chat identifiers.

Media type application/json

AI SDK chat request. offerId and threadId must be provided together when persisting messages.

object
messages
required
Array<object>

AI SDK UI message.

object
id
string
role
required
string
parts
required
Array<object>

AI SDK UI message part.

object
key
additional properties
key
additional properties
offerId
string
threadId
string
Example generated
{
"messages": [
{
"id": "example",
"role": "example",
"parts": [
{
"additionalProperty": "example"
}
]
}
],
"offerId": "example",
"threadId": "example"
}

Server-sent event stream of AI SDK UI message chunks.

Media type text/event-stream

Only one of offerId or threadId was provided.

Media type application/json

Standard API error payload.

object
error
required
object
code
required
string
message
required
string
issues
Array<string>
Example generated
{
"error": {
"code": "example",
"message": "example",
"issues": [
"example"
]
}
}

No valid Better Auth session was present.

Media type application/json

Returned when no valid Better Auth session is present.

object
error
required
string
Example generated
{
"error": "example"
}

The persistent chat thread was not found.

Media type application/json

Standard API error payload.

object
error
required
object
code
required
string
message
required
string
issues
Array<string>
Example generated
{
"error": {
"code": "example",
"message": "example",
"issues": [
"example"
]
}
}