Hermes Plant Agent Safety API

The agent-safety API from Hermes Plant — 4 operation(s) for agent-safety.

GitHub OpenAPI

Operations 4

POST /api/agent-services/action-safety/quick Agent Action Safety Quick Gate #
POST /api/agent-services/action-safety/run Agent Action Safety Loop #
POST /api/agent-services/destructguard/score DestructGuard Command Score #
POST /api/agent-services/reviewqueue/submit ReviewQueue Agent Submit #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hermesplant-com:hermesplant-com-agent-safety-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

hermesplant-com-agent-safety-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Hermes Plant - Agent Action Safety and Commerce Assurance…
  description: 'Deterministic, test-backed controls for AI agents before consequential shell, Git, SQL, infrastructure, deployment, wallet, and x402 payment actions. Use the one-cent Action Safety quick gate for classification; the complete workflow for score, conditional review triage, execution evidence, and a signed receipt; and payment-policy endpoints for spend assurance. Finance and quant utilities remain available as component services. Pay per call over x402 (USDC on Base); no API key required. Pricing: https://hermesplant.com/pricing. Errors: https://hermesplant.com/docs/api/errors. Changelog: https://hermesplant.com/changelog.'
  version: 1.0.0
  contact:
    name: Hermes Plant support
    email: contact@hermesplant.com
    url: https://hermesplant.com/contact
  termsOfService: https://hermesplant.com/legal/terms
  license:
    name: Proprietary — see Terms of Service
    url: https://hermesplant.com/legal/terms
  x-pricing-url: https://hermesplant.com/pricing
  x-errors-contract-url: https://hermesplant.com/docs/api/errors
  x-changelog-url: https://hermesplant.com/changelog
  x-changelog-feeds:
    rss: https://hermesplant.com/changelog/feed.xml
    jsonFeed: https://hermesplant.com/changelog/feed.json
  x-x402-manifest-url: https://hermesplant.com/.well-known/x402
  x-mcp-server-card-url: https://hermesplant.com/.well-known/mcp/server-card.json
  x-llms-txt-url: https://hermesplant.com/llms.txt
  x-risk-reversal:
  - Refund any settled call whose documented inputs do not reproduce the same output.
  - First $1 of calls free for the first 100 verified agents.
  x-guidance: Call Hermes Plant before a consequential agent action or x402 payment. Start with POST /api/agent-services/action-safety/quick for a $0.01 deterministic preflight risk classification. Use POST /api/agent-services/action-safety/run when you need the complete $0.25 workflow with conditional review triage, execution evidence, status, and a signed receipt. Use POST /api/agent-services/payment-policy/decide to validate amount, asset, network, recipient, and buyer policy before signing. Use focused component endpoints only when you already own orchestration. Payment is x402 USDC on Base; see https://hermesplant.com/pricing and https://hermesplant.com/docs/api/errors.
  x-hermes-guidance:
    summary: Call Hermes Plant before a consequential agent action or x402 payment.
    workflows:
    - name: Agent Action Safety quick gate
      start: POST /api/agent-services/action-safety/quick
      priceUsd: '0.01'
      useWhen: You need a deterministic preflight risk classification before shell, Git, SQL, infrastructure, or deployment work.
    - name: Agent Action Safety complete workflow
      start: POST /api/agent-services/action-safety/run
      priceUsd: '0.25'
      useWhen: You need scoring, conditional review triage, execution evidence, status, and a signed receipt.
    - name: Agent spend assurance
      start: POST /api/agent-services/payment-policy/decide
      useWhen: You need to validate a proposed x402 payment against amount, asset, network, recipient, and buyer policy before signing.
    selectionRules:
    - Use quick for a low-cost preflight; use run when an auditable end-to-end record is required.
    - Use focused component endpoints only when the caller already owns workflow orchestration.
    - A review recommendation is not a claim that a human approved the action.
    payment:
      protocol: x402
      network: Base
      asset: USDC
      pricingUrl: https://hermesplant.com/pricing
      errorsUrl: https://hermesplant.com/docs/api/errors
    proof:
      manifest: https://hermesplant.com/.well-known/x402
      agentCard: https://hermesplant.com/.well-known/agent.json
      changelog: https://hermesplant.com/changelog
servers:
- url: https://hermesplant.com
tags:
- name: agent-safety
paths:
  /api/agent-services/action-safety/quick:
    post:
      summary: Agent Action Safety Quick Gate
      description: 'AI agent action safety: one-cent deterministic preflight for every consequential agent command. Returns risk, matched rule ids, and an exact machine-readable escalation call: full DestructGuard evidence for medium risk or the complete Action Safety workflow for high and critical risk.'
      operationId: action_safety_quick_gate
      tags:
      - agent-safety
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.01'
        protocols:
        - x402: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                command:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 2000
                  description: Exact shell, SQL, Git, deploy, cloud, MCP, wallet, or x402 action to preflight.
                repo:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 500
                cwd:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 500
                branch:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 500
                actor:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 500
                intent:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 1000
                diffStat:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 1500
                environment:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 500
                target:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 1000
                commit:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 200
                diffHash:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 200
                failClosedOnUnmatched:
                  type: boolean
                  description: When true, an unmatched consequential action routes to review instead of returning low risk.
              required:
              - command
            examples:
              lowRiskRead:
                summary: 'Low-risk read: returns low risk with no escalation call'
                value:
                  command: git status --short
                  repo: github.com/acme/app
                  actor: codex
              criticalForcePush:
                summary: 'Critical action: recommends the full Action Safety workflow'
                value:
                  command: git push --force-with-lease origin main
                  environment: production
                  target: origin/main
                  commit: abc123
                  diffHash: sha256:def456
                  failClosedOnUnmatched: true
                  repo: github.com/acme/app
                  branch: main
                  actor: codex
                  intent: release the verified production build
      responses:
        '200':
          description: Agent Action Safety Quick Gate result
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - service
                - risk
                - requiresApproval
                - matchedRuleIds
                - actionBindingVersion
                - actionHash
                - nextRecommendedCall
                properties:
                  status:
                    type: string
                    const: scored
                  service:
                    type: string
                    const: action-safety-quick-gate
                  risk:
                    type: string
                    enum:
                    - low
                    - medium
                    - high
                    - critical
                  requiresApproval:
                    type: boolean
                  matchedRuleIds:
                    type: array
                    items:
                      type: string
                  actionBindingVersion:
                    type: string
                    const: hermes-action-v1
                  actionHash:
                    type: string
                    pattern: ^[a-f0-9]{64}$
                  nextRecommendedCall:
                    type:
                    - object
                    - 'null'
              example:
                status: scored
                service: action-safety-quick-gate
                risk: critical
                requiresApproval: true
                matchedRuleIds:
                - git.force-push
                actionBindingVersion: hermes-action-v1
                actionHash: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                nextRecommendedCall:
                  method: POST
                  path: /api/agent-services/action-safety/run
                  priceCents: 25
        '400':
          description: Invalid request
        '402':
          description: Payment required - x402 challenge in PAYMENT-REQUIRED header
          headers:
            PAYMENT-REQUIRED:
              schema:
                type: string
              description: Base64-encoded x402 payment challenge
        '503':
          description: x402 not configured
  /api/agent-services/action-safety/run:
    post:
      summary: Agent Action Safety Loop
      description: Complete AI agent action safety workflow for consequential agent actions. Runs the complete DestructGuard evidence score, conditionally creates ReviewQueue triage for high or critical risk, returns an honest allow or needs_review decision, a signed receipt, and a free 30-day status record. Human approval itself requires a connected approval system or hosted Assurance plan.
      operationId: agent_action_safety_loop
      tags:
      - agent-safety
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.25'
        protocols:
        - x402: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                command:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 2000
                  description: Exact shell, SQL, Git, deploy, cloud, MCP, wallet, or x402 action to assess.
                repo:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 500
                cwd:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 500
                branch:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 500
                actor:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 500
                intent:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 1000
                diffStat:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 1500
                environment:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 500
                target:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 1000
                commit:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 200
                diffHash:
                  type: string
                  minLength: 1
                  pattern: ^(?:\S|\S[\s\S]*\S)$
                  maxLength: 200
                failClosedOnUnmatched:
                  type: boolean
                  description: When true, an unmatched consequential action routes to review.
              required:
              - command
            example:
              command: wrangler deploy
              repo: github.com/acme/app
              branch: main
              environment: production
              target: hermes-api
              commit: abc123
              diffHash: sha256:def456
              failClosedOnUnmatched: true
              actor: codex
              intent: deploy the verified release
              diffStat: 12 files changed
      responses:
        '200':
          description: Agent Action Safety Loop result
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - service
                - workflowId
                - decision
                - risk
                - allowed
                - requiresHumanReview
                - actionBindingVersion
                - actionHash
                - boundaries
                - nextRecommendedCall
                - statusUrl
                properties:
                  status:
                    type: string
                    enum:
                    - completed
                    - review_required
                  service:
                    type: string
                    const: agent-action-safety-loop
                  workflowId:
                    type: string
                    pattern: ^asw_[0-9a-f-]{36}$
                  decision:
                    type: string
                    enum:
                    - allow
                    - allow_with_controls
                    - needs_review
                  risk:
                    type: string
                    enum:
                    - low
                    - medium
                    - high
                    - critical
                  allowed:
                    type: boolean
                  requiresHumanReview:
                    type: boolean
                  actionBindingVersion:
                    type: string
                    const: hermes-action-v1
                  actionHash:
                    type: string
                    pattern: ^[a-f0-9]{64}$
                  boundaries:
                    type: object
                    required:
                    - humanApprovalIncluded
                    - note
                    properties:
                      humanApprovalIncluded:
                        type: boolean
                        const: false
                      note:
                        type: string
                  nextRecommendedCall:
                    type: object
                  statusUrl:
                    type: string
                    format: uri
              example:
                status: review_required
                service: agent-action-safety-loop
                workflowId: asw_00000000-0000-4000-8000-000000000000
                decision: needs_review
                risk: high
                allowed: false
                requiresHumanReview: true
                actionBindingVersion: hermes-action-v1
                actionHash: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                statusUrl: https://hermesplant.com/api/agent-workflows/action-safety/status/asw_00000000-0000-4000-8000-000000000000
                boundaries:
                  humanApprovalIncluded: false
                  note: Review triage only.
                nextRecommendedCall:
                  method: GET
                  path: /api/agent-workflows/action-safety/status/asw_00000000-0000-4000-8000-000000000000
                  priceCents: 0
        '400':
          description: Invalid request
        '402':
          description: Payment required - x402 challenge in PAYMENT-REQUIRED header
          headers:
            PAYMENT-REQUIRED:
              schema:
                type: string
              description: Base64-encoded x402 payment challenge
        '503':
          description: x402 not configured
  /api/agent-services/destructguard/score:
    post:
      summary: DestructGuard Command Score
      description: Deterministic risk scorer for autonomous-agent commands. Scores a shell, SQL, or git action for destructive, deployment, and data-mutation risk before execution and returns a risk level, the matched policy rules, and an approve-or-block recommendation. Pure rules, evidence per match, no fabrication.
      operationId: destructguard_command_score
      tags:
      - agent-safety
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.10'
        protocols:
        - x402: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                command:
                  type: string
                  description: Shell command or agent action to score
                repo:
                  type: string
                cwd:
                  type: string
                actor:
                  type: string
                intent:
                  type: string
                diffStat:
                  type: string
              required:
              - command
            example:
              command: rm -rf /
              repo: github.com/acme/app
              cwd: /workspace/app
              actor: codex
              intent: cleanup generated files
              diffStat: 3 files changed, 18 insertions(+), 44 deletions(-)
      responses:
        '200':
          description: DestructGuard Command Score result
          content:
            application/json:
              schema:
                type: object
              example:
                status: scored
                service: destructguard-command-score
                requestId: dg_<uuid>
                risk: critical
                requiresApproval: true
                recommendedAction: block_until_explicit_human_or_policy_approval
        '400':
          description: Invalid request
        '402':
          description: Payment required - x402 challenge in PAYMENT-REQUIRED header
          headers:
            PAYMENT-REQUIRED:
              schema:
                type: string
              description: Base64-encoded x402 payment challenge
        '503':
          description: x402 not configured
  /api/agent-services/reviewqueue/submit:
    post:
      summary: ReviewQueue Agent Submit
      description: 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.
      operationId: reviewqueue_agent_submit
      tags:
      - agent-safety
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.25'
        protocols:
        - x402: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                command:
                  type: string
                  description: Shell command or agent action being requested
                repo:
                  type: string
                branch:
                  type: string
                actor:
                  type: string
                reason:
                  type: string
                diffStat:
                  type: string
              required:
              - command
            example:
              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(-)
      responses:
        '200':
          description: ReviewQueue Agent Submit result
          content:
            application/json:
              schema:
                type: object
              example:
                status: review_queued
                service: reviewqueue-agent-submit
                requestId: rq_<uuid>
                risk: critical
                requiresHuman: true
                recommendedAction: pause_agent_and_request_human_approval
        '400':
          description: Invalid request
        '402':
          description: Payment required - x402 challenge in PAYMENT-REQUIRED header
          headers:
            PAYMENT-REQUIRED:
              schema:
                type: string
              description: Base64-encoded x402 payment challenge
        '503':
          description: x402 not configured
components:
  securitySchemes:
    oauth2:
      type: oauth2
      description: Register at POST /api/auth/register, then obtain a token from POST /api/auth/token using client_credentials.
      flows:
        clientCredentials:
          tokenUrl: https://hermesplant.com/api/auth/token
          scopes:
            catalog:read: Read the product catalog
            checkout:create: Start checkout sessions
            billing:manage: Open Stripe billing portal for subscribers
    assuranceBearer:
      type: http
      scheme: bearer
      description: Organization-scoped Hermes Plant bearer token. A signed-in organization session is also accepted by the application.
externalDocs:
  description: API documentation, error contract, pricing, and changelog
  url: https://hermesplant.com/docs/api