---
title: "Submit Tool Outputs for a Run"
method: POST
path: "/threads/{thread_id}/runs/{run_id}/submit-tool-outputs"
tags: ["Threads"]
---

# Submit Tool Outputs for a Run

`POST /threads/{thread_id}/runs/{run_id}/submit-tool-outputs`

Submit the outputs of tool calls that an assistant message previously requested. This will continue the run. If stream=true, returns a Server-Sent Events stream.

## Path parameters

- `thread_id` string, uuid, required
- `run_id` string, required

## Query parameters

- `stream` boolean

## Headers

- `authorization` string, nullable
- `x_session_token` string, nullable

## Request body

- SubmitToolOutputsRequest
  - `tool_outputs` ToolOutput[], required — A list of tool outputs to submit.
    - `tool_call_id` string, required — The ID of the tool call this output is for.
    - `output` string, required — The output of the tool call (stringified).
  - `thinking` ThinkingConfig
    - `effort` string, nullable — Reasoning effort level: low, medium, high, or max.
    - `budget_tokens` integer, nullable — Reasoning token budget for providers that use token budgets.
    - `max_tokens` integer, nullable — Reasoning max_tokens cap for providers that support it.
    - `exclude_reasoning` boolean, nullable — Whether reasoning tokens should be excluded when supported.
  - `tools` object[], nullable — Optional override for the assistant's tool list, applied only to this run. Each entry is an OpenAI-style tool definition (e.g. `{type: 'function', function: {...}}`).

## Response `200`

Successful Response

- ToolOutputsResponse — Response for tool outputs submission
  - `message` string, required
  - `thread_id` string, uuid, required
  - `run_id` string, required
  - `content` string, nullable
  - `message_id` string, uuid, nullable
  - `role` 'user' | 'assistant' | 'tool'
  - `status` 'IN_PROGRESS' | 'REQUIRES_ACTION' | 'COMPLETED' | 'FAILED' | 'CANCELLED'
  - `tool_calls` object[], nullable
  - `memory_operation_id` string, nullable
  - `retrieved_memories` RetrievedMemory[], nullable
    - `id` string, nullable
    - `memory` string, required
    - `score` number, nullable
  - `retrieved_files` string[], nullable
  - `retrieved_files_count` integer
  - `reasoning` string, nullable
  - `model_provider` string, nullable
  - `model_name` string, nullable
  - `input_tokens` integer, nullable
  - `output_tokens` integer, nullable
  - `total_tokens` integer, nullable
  - `created_at` string, date-time, nullable
  - `generated_media` GeneratedMediaInfo[], nullable
    - `document_id` string, required
    - `media_type` string, required
    - `mime_type` string, required
    - `url` string, required
    - `file_size_bytes` integer, nullable
    - `transcript` string, nullable
  - `timestamp` string, date-time, required
  - `context_usage` object, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/backboard/apis/backboard-api.md) · [All operations](https://skmtc.dev/backboard/apis/backboard-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/backboard/backboard-api/revisions/e732d11ca11a/schema)
