---
title: "Resolve an agent tool approval"
method: POST
path: "/api/agent/runs/{runId}/approvals/{approvalId}"
tags: ["Agent"]
---

# Resolve an agent tool approval

`POST /api/agent/runs/{runId}/approvals/{approvalId}`

Approves or rejects a pending approval-gated tool call for an agent run. Duplicate same-decision requests are idempotent.

## Path parameters

- `runId` string, required
- `approvalId` string, required

## Headers

- `X-Grafana-Org-Id` string

## Request body

- ApprovalDecisionRequest
  - `decision` 'approved' | 'rejected', required
  - `comment` string
  - `approvalScope` 'once' | 'always' — Use always to save a session-scoped grant for this tool after approving it.

## Response `200`

Approval resolved

- ApprovalResolvedEvent
  - `approvalId` string, required
  - `decision` string, required
  - `comment` string
  - `resolvedAt` string, date-time

## Other responses

- `400` — Bad request (invalid parameters or malformed request body)
- `403` — Forbidden (insufficient permissions or RBAC violation)
- `404` — Resource not found
- `409` — Conflict with current resource state

---

[API](https://skmtc.net/consensys/apis/ask-o11y-ai-powered-observability-assistant-api.md) · [All operations](https://skmtc.net/consensys/apis/ask-o11y-ai-powered-observability-assistant-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/consensys/ask-o11y-ai-powered-observability-assistant-api/revisions/9762a43a4598/schema)
