# Submit\_tool\_outputs error 400

**URL:** <https://community.openai.com/t/submit-tool-outputs-error-400/875399>\
**Category:** API\
**Tags:** api, tools\
**Created:** [July 22, 2024, 4:45am UTC](https://community.openai.com/t/submit-tool-outputs-error-400/875399 "2024-07-22T04:45:18Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![bermaneyal](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/bermaneyal/32/413596_2.png) [@bermaneyal](https://community.openai.com/u/bermaneyal)\
**Post date:** [July 22, 2024, 4:45am UTC](https://community.openai.com/t/submit-tool-outputs-error-400/875399/1 "2024-07-22T04:45:18Z")

</div>

i build an assitant and i comunicate with him with the api.  
i add messages and run thread and get response, after i use tool,i want to submit the tool and i try to submit tool output

The newRun.RequiredAction.SubmitToolOutputs.ToolCalls[0].Id is correct

my code

```
var toolOutputResponse = await PostAsJsonAsync($"v1/threads/{threadId}/runs/{newRun.Id}/submit_tool_outputs",
                                    new ToolsOutput(newRun.RequiredAction.SubmitToolOutputs.ToolCalls[0].Id,"{\"Success\":\"true\"}"));

public class ToolsOutput
    {
        [JsonProperty("tool_call_id")]
        public string ToolCallId { get; set; }
        [JsonProperty("output")]
        public string Output { get; set; }

        public ToolsOutput(string toolCallId, string output)
        {
            ToolCallId = toolCallId;
            Output = output;
        }
    }

```

i always get 400 error - can’t find whats wrong  
how can i debug it?

---

<div class="post-metadata">

**Author:** ![bermaneyal](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/bermaneyal/32/413596_2.png) [@bermaneyal](https://community.openai.com/u/bermaneyal)\
**Post date:** [July 22, 2024, 7:32am UTC](https://community.openai.com/t/submit-tool-outputs-error-400/875399/2 "2024-07-22T07:32:35Z")

</div>

i found the problem  
i change the code to

```
 ToolsOutput toolsOutput = new ToolsOutput(newRun.RequiredAction.SubmitToolOutputs.ToolCalls[0].Id, "{\"Success\":\"true\"}");

                                // Initialize the SubmitToolOutputs object with an array of one ToolsOutput
                                SubmitToolOutputs submitToolOutputs = new SubmitToolOutputs
                                {
                                    ToolsOutput = new ToolsOutput[] { toolsOutput }
                                };

                                var toolOutputResponse = await PostAsJsonAsync($"v1/threads/{threadId}/runs/{newRun.Id}/submit_tool_outputs",
                                    submitToolOutputs);

public class SubmitToolOutputs
    {
        [JsonProperty("tool_outputs")]
        public ToolsOutput[] ToolsOutput { get; set; }
    }

    public class ToolsOutput
    {
        [JsonProperty("tool_call_id")]
        public string ToolCallId { get; set; }
        [JsonProperty("output")]
        public string Output { get; set; }

        public ToolsOutput(string toolCallId, string output)
        {
            ToolCallId = toolCallId;
            Output = output;
        }
    }

```
