Hermes Plant logo

Hermes Plant

Finance & quant APIs for AI agents

ReviewQueue Agent Submit

$0.25/call

Route risky agent actions to human approval.

POST /api/agent-services/reviewqueue/submit
agent-safetyapproval-workflowsx402reviewqueue

What it does

Submit an autonomous-agent command for paid risk triage and human-approval routing. Returns a deterministic risk decision, a request id, whether a human is required, and a recommended action — pause-and-escalate on critical risk. Evidence-backed, nothing fabricated.

  • Paid risk triage + approval routing
  • Request id and recommended action
  • Pause-and-escalate on critical risk

Example request

POST /api/agent-services/reviewqueue/submit

{
  "command": "git push --force origin main",
  "repo": "github.com/acme/app",
  "branch": "main",
  "actor": "codex",
  "reason": "release automation requested deploy",
  "diffStat": "12 files changed, 240 insertions(+), 17 deletions(-)"
}

Example response (HTTP 200)

Deterministic — the same inputs always return the same audited output.

{
  "status": "review_queued",
  "service": "reviewqueue-agent-submit",
  "requestId": "rq_<uuid>",
  "risk": "critical",
  "requiresHuman": true,
  "recommendedAction": "pause_agent_and_request_human_approval"
}

Input schema

Top-level request fields. Nested shapes are shown in the example above and the OpenAPI spec.

FieldTypeRequiredDescription
commandstringYesShell command or agent action being requested
repostring
branchstring
actorstring
reasonstring
diffStatstring

How to call it over x402

  1. 1. Send the request. The first unpaid call returns HTTP 402 with an x402 payment challenge — $0.25, USDC on Base, and the recipient.
  2. 2. Pay per call. Your x402 client signs the USDC payment and retries automatically — no API key, no account, no subscription. New to x402?
  3. 3. Read the result. HTTP 200 returns the computed values plus evidence-backed findings.

With the x402 fetch client (Node / TypeScript)

import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.AGENT_WALLET_KEY);
const pay = wrapFetchWithPayment(fetch, account); // USDC on Base

const res = await pay("https://hermesplant.com/api/agent-services/reviewqueue/submit", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
  "command": "git push --force origin main",
  "repo": "github.com/acme/app",
  "branch": "main",
  "actor": "codex",
  "reason": "release automation requested deploy",
  "diffStat": "12 files changed, 240 insertions(+), 17 deletions(-)"
}),
});

const result = await res.json();

Inspect the 402 with curl

curl -i -X POST https://hermesplant.com/api/agent-services/reviewqueue/submit \
  -H "content-type: application/json" \
  -d '{"command":"git push --force origin main","repo":"github.com/acme/app","branch":"main","actor":"codex","reason":"release automation requested deploy","diffStat":"12 files changed, 240 insertions(+), 17 deletions(-)"}'
# → HTTP/1.1 402 Payment Required  (x402 challenge: price, USDC asset, Base network, recipient)
# → sign the USDC-on-Base payment and retry to receive HTTP 200

Prefer zero code? This endpoint is also exposed as a tool on the Hermes Plant MCP server, so an MCP-capable agent can call it with its own x402 wallet.

Other agent services

← All agent servicesAPI docsOpenAPI spec

Need a calculator that isn’t here yet? contact@hermesplant.com