accepts-api-key

Process Agent Message

Run the agent and stream its events as SSE.

The last event of the stream is always tellers.stream.end, whose reason tells the client why the turn ended (completed, cancelled, insufficient_tokens, budget_exceeded, error, interrupted). insufficient_tokens means the account is out and needs a top-up; budget_exceeded means the run spent the credit allocated to it, which buying tokens does not fix. A stream that closes without it was cut short by the network — reconnect with GET /agent/response/{chat_id} to pick the run back up.

post/agent/response

Request

  • Base URL
    https://api.tellers.ai (the document declares no server; this is the origin it was published from)
  • Auth
    none declared

Headers

x-api-keystring nullable
authorizationstring nullable

Request body

messagestring required

The message to send to the agent

chat_idstring nullable

Optional chat ID for conversation tracking

previous_response_idstring nullable

The ID of the previous response to the model. Use this to create multi-turn conversations.

llm_verbosity'low' | 'medium' | 'high'

Range of number of tokens that can be generated by the LLM, higher values yield more verbose responses. A value the chosen model does not advertise in available_llm_models is ignored.

llm_reasoning_effort'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max' nullable

Controls reasoning effort: higher values yield more precise but slower responses. A value the chosen model does not advertise in available_llm_models is ignored.

priority'low' | 'default' | 'high' | 'ultra' nullable

Priority level for the response: 'low' (cheaper/slower), 'default' (standard), 'high' (premium/low-latency), or 'ultra' (OpenAI Ultrafast: several times faster output at about 3x the 'high' price). Only levels in the chosen model's available_priorities (see GET /) take effect; others fall back to 'default'.

llm_model'gpt-6-astra' | 'gpt-6.1-sol' | 'gpt-6.1-terra' | 'gpt-6-sol' | 'gpt-6-luna' | 'gpt-5.6-sol' | 'gpt-5.6-terra' | 'gpt-5.6-luna' | 'gpt-5.5-2026-04-23' | 'gpt-5.5-pro-2026-04-23' | 'gpt-5.4-pro-2026-03-05' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.3-codex' | 'gpt-5.2-2025-12-11' | 'gpt-5-mini-2025-08-07' | 'gpt-5-nano'

The model to use to generate the response.

toolsstring[]

The tools to use to generate the response. Defaults to the same as GET /settings (AVAILABLE_AGENT_TOOLS if set, else all tools).

custom_agent_idstring nullable

The ID of the custom agent to use to generate the response. If not provided, the default custom agent will be used.

parallel_tool_callsboolean

Whether to allow parallel tool calls. Defaults to true. If True, the tool calls will be executed in parallel. If False, the tool calls will be executed sequentially.

compactionboolean

Whether to enable automatic context cleanup when the selected model supports it. This keeps long conversations manageable.

prefer_compactioninteger nullable

Preferred input-token size to compact the conversation at, when compaction is enabled and the model supports it. A preference, not a guarantee: it is capped at the chosen model's own threshold (compaction_threshold in available_llm_models), which is also what is used when this is unset, because past that point compaction is what keeps the request inside the context window. Lower it to have long conversations compacted earlier.

override_llm_verbosity'low' | 'medium' | 'high' nullable

Override the verbosity of the LLM, range of number of tokens that can be generated by the LLM, higher values yield more verbose responses.

override_llm_reasoning_effort'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max' nullable

Override the reasoning effort of the LLM, controls reasoning effort: higher values yield more precise but slower responses.

tool_exposure'search' | 'flat_search' | 'flat'

How much of a tool the model is shown up front.

What deferral hides depends on whether the tool is in a namespace, and the difference is the whole point of this enum. Per OpenAI's tool search guide: a deferred tool inside a namespace is hidden completely — the model sees only the namespace name and description — while a deferred top-level function still shows its name and description, so deferral there only holds back the parameter schema. Measured over the current 56 tools:

============== ============================ ========== exposure visible up front tokens ============== ============================ ========== search 11 namespace descriptions ~0.5k flat_search 56 tool names + descriptions ~10.2k flat the above plus every schema ~44.6k ============== ============================ ==========

search uses namespace descriptions and hides the names inside them; flat_search exposes top-level tool names and descriptions while deferring only parameter schemas. flat removes deferral entirely.

Grouping without deferring is deliberately not offered: namespaces exist to make search legible, so once every schema is up front they buy nothing and cost their own descriptions.

The member value is what the API accepts on the wire.

max_tellers_tokeninteger nullable

Maximum cumulative Tellers Token budget for the agent run.

no_interactionboolean

Whether to disable interaction with the agent. If True, the agent will try to generate a response without interacting with the user.

Response

Successful Response

unknown required

Changes

No recorded changes to this operation across all 2 revisions of this API.