Skip to content

Create message (user message triggers workflow)

POST
/v1/sessions/{session_id}/messages
curl --request POST \
--url https://app.everruns.com/api/v1/sessions/example/messages \
--header 'Content-Type: application/json' \
--data '{ "controls": { "error_disclosure": "example", "hints": "example", "locale": "example", "model_id": "model_01933b5a00007000800000000000001", "reasoning": { "effort": "example" } }, "external_actor": { "actor_id": "example", "actor_name": "example", "metadata": "example", "source": "example" }, "message": { "content": [ { "text": "Why is the build failing on main?", "type": "text" } ], "role": "user" }, "metadata": { "source": "slack", "thread_ts": "1715000000.123456" }, "tags": [ "bug-report", "from-slack" ] }'
session_id
required
string

Session ID (prefixed, e.g., sess_…)

Media type application/json

Request to create a message

object
controls
One of:
null
external_actor
One of:
null
message
required

The message to create. Example shape is defined on InputMessage.

object
content
required

Array of content parts (text and image only)

Array
One of:

Text content

object
text
required
string
type
required
string
Allowed values: text
role

Message role (always “user” for API-created messages)

string
Allowed values: system user agent tool_result
Example
{
"content": [
{
"text": "Why is the build failing on main?",
"type": "text"
}
],
"role": "user"
}
metadata

Request-level metadata. Arbitrary key/value pairs persisted with the message for downstream filtering and analytics. Not interpreted by the agent.

object | null
Example
{
"source": "slack",
"thread_ts": "1715000000.123456"
}
tags

Tags for the message. Free-form labels used for grouping and filtering.

Array<string> | null
Example
[
"bug-report",
"from-slack"
]

Message created successfully

Media type application/json

A message in the conversation

object
content
required

Message content as array of content parts (text, images, tool calls, tool results)

Array
One of:

Text content

object
text
required
string
type
required
string
Allowed values: text
controls
One of:
null
created_at
required

Timestamp when the message was created

string format: date-time
external_actor
One of:
null
id
required

Unique message ID (format: message_{32-hex})

string
metadata

Message-level metadata

object | null
phase
One of:
null
role
required

Message role

string
Allowed values: system user agent tool_result
thinking

Thinking content from extended thinking models (Anthropic Claude) This is the model’s chain-of-thought reasoning before producing the response. Must be included in subsequent API calls when thinking is enabled.

string | null
thinking_signature

Cryptographic signature for thinking content (Anthropic Claude) Required when sending thinking back in subsequent API calls.

string | null
Example
{
"content": [
{
"type": "text"
}
],
"controls": {
"model_id": "model_01933b5a00007000800000000000001"
},
"id": "message_01933b5a00007000800000000000001",
"phase": "Commentary",
"role": "system"
}

Invalid ID format

Session not found

Internal server error