FruxonDocs
AgentsApprovals

Records the human decision and reopens the parent task for worker resume

On approve, the parent execution is requeued from the parked step and the tool call proceeds with its original arguments; on reject, the rejection text is fed back into the flow as the tool result so the agent can react to (or surface) the operator's reasoning. The responder identity is captured from the caller's auth context, not the request body, so audit trails reflect the real user. Requires Admin role on the agent to prevent arbitrary viewers from authorizing privileged tool calls; to abandon a request without resuming, use `POST .../pendingApprovals/{approvalId}:cancel`.

POST
/v1/tenants/{tenant}/agents/{agent}/pendingApprovals/{approvalId}:respond
AuthorizationBearer <token>

JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.

In: header

Path Parameters

agent*string

The unique identifier of the agent.

approvalId*string

The approval request ID.

Formatuuid
tenant*string

The tenant identifier

The response text.

text?string|null

Free-text reply from the approver. Must be non-empty (empty replies are rejected as accidental submits — see the equivalent guard in HumanApprovalRequestService.RespondViaConnectorAsync).

[key: string]?never

Response Body

curl -X POST "https://api.fruxon.com/v1/tenants/string/agents/string/pendingApprovals/497f6eca-6276-4993-bfeb-53cbbbba6f08:respond" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "00000000-0000-0000-0000-000000000000",
  "agentId": "string",
  "agentRevision": 0,
  "flow": "string",
  "sessionId": "string",
  "taskQueueId": 0,
  "executionRecordId": "00000000-0000-0000-0000-000000000000",
  "gateType": "TOOL_FLOW_STEP",
  "stepIdentifier": "string",
  "toolCallId": "string",
  "toolKey": "string",
  "outboundMessage": "string",
  "proposedParameters": {},
  "authorizedApprovers": [
    "string"
  ],
  "deliveryRoute": {
    "id": "00000000-0000-0000-0000-000000000000",
    "connectorId": "00000000-0000-0000-0000-000000000000",
    "provider": "string",
    "parameters": {}
  },
  "deliveryMessageId": "string",
  "correlationToken": "string",
  "status": "PENDING",
  "expiresAt": 0,
  "respondedAt": 0,
  "respondedBy": "string",
  "decision": "APPROVE",
  "responseText": "string",
  "createdAt": 0,
  "modifiedAt": 0
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}