Search threads legacy
Search agent threads the caller is allowed to read.
The repo enforces a filter whitelist (thread_id, title,
created, created_by, status, visibility,
created_from_agent_id, subject_id) and a sort whitelist
(created). status accepts the lowercase AgentThreadStatus
values (not_started, user_turn, roboto_turn,
client_tool_turn, goals_failed); visibility accepts the
lowercase ThreadVisibility values (private, org).
Two structural authz gates are bound from caller identity and AND-ed onto every query — both are unreachable from the request body:
org_idpins the result set to the caller’s org.visibility = 'org' OR created_by = caller_user_idhidesPRIVATEthreads created by other users; the caller sees everyORG-visible thread plus their own private rows. Admins (identity.is_roboto_admin) bypass this gate so the admin thread explorer continues to see every thread in an org — mirroring the per-row check inget_thread_by_id_with_access_check.
Common UI compositions: the dataset-detail “Agent Threads” tab pins
subject_id == <dataset_id> as a scope filter; the agent detail
page’s “threads launched from this agent” list passes
created_from_agent_id == <id>.
Access control
- requires_org
- Restricted tokens need the API scope
api.everything_else
/v1/ai/chats/searchAuthorizationBearer token · headerrequiredX-Roboto-Org-IdstringX-Roboto-User-Idstringapplication/jsonconditionCondition | ConditionGroup | nullShow propertiesHide properties
fieldstringrequiredcomparatorComparatorrequiredThe comparator to use when comparing a field to a value.
EQUALSNOT_EQUALSGREATER_THANGREATER_THAN_OR_EQUALLESS_THANLESS_THAN_OR_EQUALCONTAINSNOT_CONTAINSIS_NULLIS_NOT_NULLEXISTSNOT_EXISTSBEGINS_WITHLIKENOT_LIKEvaluestring | boolean | integer | number | string<date-time> | nullShow propertiesHide properties
stringbooleanintegernumberstringstring<date-time>nulloperatorConditionOperatorrequiredThe operator to use when combining multiple conditions.
ANDORNOTconditionsCondition | ConditionGroup[]requiredShow propertiesHide properties
Condition | ConditionGroupfieldstringrequiredcomparatorComparatorrequiredThe comparator to use when comparing a field to a value.
EQUALSNOT_EQUALSGREATER_THANGREATER_THAN_OR_EQUALLESS_THANLESS_THAN_OR_EQUALCONTAINSNOT_CONTAINSIS_NULLIS_NOT_NULLEXISTSNOT_EXISTSBEGINS_WITHLIKENOT_LIKEvaluestring | boolean | integer | number | string<date-time> | nullShow propertiesHide properties
stringbooleanintegernumberstringstring<date-time>nullConditionGroup.nulllimitintegermax_resultsinteger | nullShow propertiesHide properties
integernullafterstring | nullShow propertiesHide properties
stringnullsort_bystring | nullShow propertiesHide properties
stringnullsort_directionSortDirection | nullShow propertiesHide properties
stringnullOK
dataobjectrequiredShow propertiesHide properties
itemsAgentThreadRecord[]requiredShow propertiesHide properties
AgentThreadRecordthread_idstringrequiredcreatedstring<date-time>requiredcreated_bystringrequiredcreated_by_principalstring | nullShow propertiesHide properties
stringnullorg_idstringrequiredmessagesAgentMessage[]Show propertiesHide properties
AgentMessageroleAgentRolerequiredEnumeration of possible roles in an agent thread.
Defines the different participants that can send messages in a thread.
userassistantrobotocontentAgentTextContent | AgentToolUseContent | AgentToolResultContent | AgentErrorContent | AgentDeletedContent | AgentCompressionFillerContent | AgentClientContextEntry[]requiredShow propertiesHide properties
AgentTextContent | AgentToolUseContent | AgentToolResultContent | AgentErrorContent | AgentDeletedContent | AgentCompressionFillerContent | AgentClientContextEntrytextstringrequiredcontent_typestringtool_namestringrequiredtool_use_idstringrequiredinputobject | nullShow propertiesHide properties
objectnullraw_requestobject | nullShow propertiesHide properties
objectnullcontent_typestringtool_namestringrequiredtool_use_idstringrequiredruntime_msintegerrequiredstatusstringrequiredpayloadstring | object | any[] | nullShow propertiesHide properties
stringobjectanyanynullraw_responseobject | nullShow propertiesHide properties
objectnullcontent_typestringerror_messagestringrequirederror_codestring | nullShow propertiesHide properties
stringnullcontent_typestringcontent_typestringcontent_typestringcontextClientViewingContextrequiredWhat the Roboto client (e.g. the Web UI) is currently viewing when the user composed a message.
Passed to the agent as implicit context for resolving deictic references — "this dataset", "those files", "the visualizer state I'm looking at" — that the user would otherwise have to spell out. This type is purely informational; it is not enforced and never gates tool authorization.
Distinct from:
- :class:
AnalysisScope, which is a hard analysis window honored by individual tools on the server side. - :class:
~roboto.ai.goals.AgentGoal, which declares typed outcomes the agent runner must drive the turn to satisfy.
The corresponding wire-format field is client_context (with a
one-release context alias for migration).
Show propertiesHide properties
dataset_idsstring[]file_idsstring[]collection_idsstring[]device_idsstring[]view_idsstring[]table_stateobject | nullShow propertiesHide properties
objectnulldisplay_time_anchor_nsinteger | nullShow propertiesHide properties
integernulldisplay_time_anchor_labelstring | nullShow propertiesHide properties
stringnullvisualizer_stateobject | nullShow propertiesHide properties
objectnullmisc_contextobject | nullShow propertiesHide properties
objectnullstatusAgentMessageStatusEnumeration of possible message generation states.
Tracks the lifecycle of message generation from initiation to completion.
not_startedgeneratingcompletedfailedcancelledcreatedstring<date-time>continuation_tokenstringrequiredstatusAgentThreadStatusrequiredEnumeration of possible agent thread states.
Tracks the overall status of an agent thread from creation to termination.
not_starteduser_turnroboto_turnclient_tool_turngoals_failedtitlestring | nullShow propertiesHide properties
stringnullmodel_profilestring | nullShow propertiesHide properties
stringnullforked_from_thread_idstring | nullShow propertiesHide properties
stringnullforked_from_message_sequence_numinteger | nullShow propertiesHide properties
integernullvisibilityThreadVisibilityRead-scope for an :class:AgentThreadRecord.
Set when the thread is created, and changed afterwards only by the thread's creator,
via :meth:roboto.ai.agent_thread.AgentThread.set_visibility (POST /v1/ai/threads/<thread_id>/visibility).
Roboto admins read every thread but cannot re-scope one they did not create.
Import as :class:roboto.ai.agent_thread.ThreadVisibility.
privateorgcreated_from_agent_idstring | nullShow propertiesHide properties
stringnullcreated_from_trigger_idstring | nullShow propertiesHide properties
stringnulloriginThreadOrigin | nullShow propertiesHide properties
stringnullpinned_atstring<date-time> | nullShow propertiesHide properties
string<date-time>nullgoalsAgentThreadGoalRecord[] | nullShow propertiesHide properties
AgentThreadGoalRecordgoal_typestringrequiredgoal_dataobjectrequiredstatusAgentGoalStatusrequiredLifecycle of a per-turn declared goal.
Goals begin PENDING when registered. They transition to ACHIEVED when the corresponding achieve-tool reports success, or to FAILED when the runner's corrective re-prompt budget for the turn is exhausted (or when the worker cannot construct an achieve-tool for the goal).
pendingachievedfailedmessage_sequence_numintegerrequiredcreatedstring<date-time>requiredconcluded_atstring<date-time> | nullShow propertiesHide properties
string<date-time>nullachieve_tool_use_idstring | nullShow propertiesHide properties
stringnullnulltasksAgentTask[] | nullShow propertiesHide properties
AgentTasktask_idintegerrequiredpositionintegerrequiredtitlestringrequiredstatusAgentTaskStatusrequiredLifecycle state of a top-level agent task.
pendingin_progresscompleteddescriptionstring | nullShow propertiesHide properties
stringnullconclusionstring | nullShow propertiesHide properties
stringnullstartAgentTaskBoundary | nullShow propertiesHide properties
message_sequence_numintegerrequiredcontent_sequence_numintegerrequirednullendAgentTaskBoundary | nullShow propertiesHide properties
message_sequence_numintegerrequiredcontent_sequence_numintegerrequirednullsubtasksAgentSubtask[]Show propertiesHide properties
AgentSubtasktitlestringrequiredstatusAgentSubtaskStatusrequiredLifecycle state of a sub-task.
Sub-tasks are never activated independently — they are implicitly active
with their parent task — so they have no in_progress state.
pendingdonenullnext_tokenstring | nullShow propertiesHide properties
stringnulltotal_countinteger | nullShow propertiesHide properties
integernullThrown when the conversation context (messages, system prompt, tool results) exceeds the model's context window limit.
The token estimate and the model's context limit are not carried on the exception, so a caller cannot read usage numbers off it.
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown when authentication fails
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown if an operation would exceed a user or org level limit.
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown if a user is attempting to perform an action unrecognized by the Roboto platform.
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown if there is a conflict between a resource you're creating and another existing resource
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown if a resource is missing or expired.
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullAn error the platform reported that this SDK release cannot resolve to a specific exception class.
Reported for an element of a :py:class:~roboto.http.BatchResponse whose error names a code this release
defines no class for, or that arrived without a code, without a message, or as text that is not an
error envelope at all. It carries whatever code and message the platform sent, so a caller handling the
failure still learns what went wrong; when no message could be read, the message is the error's raw text.
The error envelope carries no status code, so http_status_code reports the 500 inherited from
:py:class:RobotoDomainException rather than the status the failure actually had.
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown by shimmed out APIs which have not yet been implemented
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown when a service is unavailable, such as when it's under heavy load and can't accept new requests. This is expected to be transient and ought to be retried.
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown when the service times out while processing a request. This is exepcted to be transient and ought to be retried.
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown when the server cannot complete the request because the response payload exceeds a storage or transport capacity limit (e.g., Lambda response size). This is NOT expected to be transient and should NOT be retried.
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | null