List Assistant Tools
What Oro can do, by area of the app (RO-322): each tool with its route, whether it reads or writes (writes run only after the user confirms) and the scope the same route needs with an API key; plus the human-only actions Oro never does (sending, dialling, starting campaigns, approving drafts, team and workspace deletion, roles, billing) with the page that does them. Signed-in users only (API keys: 403).
API key access
/api/v1/assistant/toolsAccess token from /api/v1/auth/login, or an API key (ro_pat_..., RO-176) from /api/v1/workspaces/current/api-keys: the key implies its workspace and needs the route's scope. MCP connectors (/api/v1/mcp only) may use an OAuth access token (ro_oat_..., RO-284).
In: header
Header Parameters
Id of the workspace to act on (must be a member).
Response Body
curl -X GET "http://localhost:8000/api/v1/assistant/tools" \ -H "X-Workspace-Id: string"{
"groups": [
{
"key": "string",
"label": "string",
"tools": [
{
"name": "string",
"title": "string",
"effect": "read",
"needs_confirmation": true,
"scope": "string",
"method": "string",
"path": "string"
}
]
}
],
"human_only": [
{
"key": "string",
"label": "string",
"reason": "string",
"href": "string"
}
],
"bulk_max": 0
}List Assistant Threads
The signed-in user's assistant conversations in this workspace, pinned first, then most recent (at most 50), and today's message budget (RO-303). Archived chats only with `archived=true`; `q` searches titles and messages, archived ones included (RO-319). Signed-in users only (API keys: 403).
Post Assistant Message
Send the assistant a message (RO-303): 202 at once with the stored message and the assistant's `running` one; the turn runs in the background (poll the thread). The planner may ask questions (`question`, `form`), read data with the user's permissions, or propose writes as a `confirm` card (nothing changes until it is confirmed). It never sends email, calls, approves drafts or starts campaigns. A new message expires earlier unconfirmed plans. 429 when the workspace's daily message budget (`ASSISTANT_DAILY_MESSAGES`) is used up; 409 while the previous turn is still running.