Skip to main content
POST
Send a chat message (async)

Authorizations

API-Token
string
header
required

16-character API token associated with your OSVI account. Find it in your dashboard under Settings → API.

Body

application/json
agent_uuid
string
required

Unique identifier of the agent handling the conversation.

Example:

"agent_IsZ3Q6Sf_60Eh26XQMGbz-R_og"

customer_id
string
required

Your identifier for the customer sending the message. Used to resolve the active session when session_id is omitted.

Example:

"+15551112222"

content
string

The customer's message text. Required unless type is interaction_response.

Example:

"Hi, I need help."

session_id
string

Optional session UUID to route the message to. If omitted, the engine resolves the active/new session for the customer + agent.

Example:

"4718a326-417b-4dda-90d0-21fd65a11cb8"

idempotency_key
string

Your identifier for this exact turn. Strongly recommended on this endpoint: since the reply arrives later on the delivery webhook, this is what lets you correlate it back to the request that triggered it (it's echoed on every delivered envelope). A retry with the same key returns the original 202 instead of accepting the turn twice. Can also be sent as an Idempotency-Key header instead of a body field.

Example:

"wh-2f8a1c-attempt-1"

input_fields
object

Arbitrary key-value object made available to the agent at runtime. Only applied when this request creates a new session.

Example:
state_fields
object

Initial values for the agent's configured state fields. Only applied when this request creates a new session.

Example:
context
string[]

Free-text context entries for a newly created session. Only the most recent 5 non-empty strings are retained. Only applied when this request creates a new session.

Example:
type
enum<string>
default:message

message for a normal text message (default). interaction_response to answer an interactive message the agent sent — see Interactive messages.

Available options:
message,
interaction_response
Example:

"message"

interaction_id
string<uuid>

Required when type is interaction_response.

Example:

"b6a3e6c2-2d61-4a4b-9c9a-5a2d9f6a2b10"

option_id
string

Shorthand answer for a simple option tap. Send this or response, not both.

Example:

"opt_confirm"

response
object

Structured answer to a pending interactive message. Send this or option_id, never both. See Interactive messages.

supported_interactions
object[]

Declares which interactive message types your client can render. See Interactive messages.

Response

Turn accepted. The reply (and every other reply this turn produces) is delivered to the chat delivery webhook, not in this response.

success
boolean
Example:

true

accepted
boolean
Example:

true

data
object