# POST /v1/sessions/{session_id}/tool-approvals

Source: <https://everruns.com/docs/api/operations/submit_tool_approvals/>

POST

/v1/sessions/{session\_id}/tool-approvals

Select code samplecURL (shell:curl)

```js
const url = 'https://app.everruns.com/api/v1/sessions/example/tool-approvals';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: '{"decisions":[{"decision":"allow","tool_call_id":"tool_approval_toolu_01933b5a00007000800000000000001"}]}'
};


try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```sh
curl --request POST \
  --url https://app.everruns.com/api/v1/sessions/example/tool-approvals \
  --header 'Content-Type: application/json' \
  --data '{ "decisions": [ { "decision": "allow", "tool_call_id": "tool_approval_toolu_01933b5a00007000800000000000001" } ] }'
```

* Production APIapp.everruns.com/api/v1/sessions/{session\_id}/tool-approvals

Records a person’s decisions about tool calls an agent’s `tool_approval` gate held back, and resumes the paused turn.

## Parameters

### Path Parameters

**session\_id**

required

string

Session ID (prefixed, e.g., session\_…)

## Request Bodyrequired

Media typeapplication/json

Request to answer pending tool-approval requests, `POST …/sessions/{id}/tool-approvals`.

object

**decisions**

required

Decisions for the pending requests. A pending request in the same batch that is left out is resolved as not approved: the turn resumes once, so every request in it is settled now, and silence never approves.

Array\<object>

One decision in a submission.

object

**decision**

required

The person’s decision.

string

Allowed values: allow allow\_always reject reject\_always

**tool\_call\_id**

required

The pending approval being answered.

string

##### Example

```plaintext
tool_approval_toolu_01933b5a00007000800000000000001
```

## Responses

### 200

Decisions recorded and workflow resumed

Media typeapplication/json

Result of answering tool-approval requests.

object

**resolved**

required

How every pending request in the batch was settled.

Array\<object>

How one pending request was settled.

object

**outcome**

required

`allow`, `allow_always`, `reject`, `reject_always`, `not_approved` (left out of the submission) or `expired`.

string

**tool**

required

The gated tool.

string

**tool\_call\_id**

required

The approval that was answered.

string

**status**

required

Session status after the decision.

string

##### Example

```json
{
  "resolved": [
    {
      "outcome": "allow"
    }
  ],
  "status": "active"
}
```

### 400

Invalid session ID or decisions

### 403

Caller may not manage this session

### 404

Session or pending approval request not found

### 409

Session is not waiting, the request expired, or it was already answered

### 500

Internal server error