Create Conversation
Create a new conversation. Scope is derived from the auth context when not provided: - JWT users default to ``user`` scope (conversation owned by the caller). - API keys default to ``org`` scope (org-wide conversation).
Authorization
BearerAuth Botyard API key — see /docs/authentication.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Request to create a conversation.
Response Body
application/json
curl -X POST "https://example.com/v1/orgs/string/conversations" \ -H "Content-Type: application/json" \ -d '{}'{
"conversation_id": "string",
"org_id": "string",
"bot_id": "string",
"user_id": "string",
"owner_name": "string",
"conversation_scope": "user",
"source": "web_chat",
"title": "string",
"status": "active",
"metadata": {
"property1": "string",
"property2": "string"
},
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"last_message_at": "2019-08-24T14:15:22Z",
"unread_count": 0,
"is_pinned": false,
"pin_position": 0,
"has_active_timed_wake": false,
"has_active_process_watch": false,
"supports_steering": true,
"message_search_match": {
"message_id": "string",
"message_ordinal": 0,
"snippet": "string",
"score": 0
}
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"error_code": "string",
"errors": [
{
"pointer": "string",
"detail": "string",
"type": "string"
}
],
"trace_id": "string"
}Read a board-task content block's current (live) state
Return a board-task content block's **current** renderable state. The durable ``task`` block carries only a reference (``workforce_slug`` + ``task_number``); this endpoint resolves the task's protected content on demand so the renderer can draw the live card. Because the content lives only here — behind the membership gate — and never in the conversation payload, a conversation-reader who isn't a board member cannot obtain it. Authorization is layered: - ``require_conversation_access`` confines the read to a conversation the viewer can see — the same surface guard as the sibling payload route. - **Workforce membership** is the task's own read-access rule (the VIEW claim ``get_task`` / ``get_workforce`` enforce). A viewer with conversation access but no board access gets ``403`` — the renderer maps that to a "no access / unavailable" card, exactly like a linked conversation the viewer can't see. A missing/deleted task or board is ``404``. The state shares the reference fields with the inline block (both via ``botyard_core.services.api.task_block``), so the card resolves crumb, deeplink, and content from this single fetch.
Search Conversations
Search conversations for an organization. Access scoping: - JWT users see their own user-scoped + all org-scoped conversations. - API keys see only org-scoped conversations.