Hermes Plant Action Safety API

The action-safety API from Hermes Plant — 1 operation(s) for action-safety.

GitHub OpenAPI

Operations 1

GET /api/agent-workflows/action-safety/status/{workflowId} Get Action Safety workflow status #

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-action-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-action-safety-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Hermes Plant - Agent and Commerce Assurance Action Safety…
  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: action-safety
paths:
  /api/agent-workflows/action-safety/status/{workflowId}:
    get:
      summary: Get Action Safety workflow status
      description: Returns the free retained status for a complete Action Safety workflow. New records expose the versioned canonical action binding; legacy records explicitly report that a versioned binding is unavailable.
      operationId: get_action_safety_workflow_status
      tags:
      - action-safety
      parameters:
      - name: workflowId
        in: path
        required: true
        schema:
          type: string
          pattern: ^asw_[0-9a-f-]{36}$
        description: Workflow id returned by the complete Action Safety workflow.
      responses:
        '200':
          description: Persisted workflow status
          content:
            application/json:
              schema:
                oneOf:
                - title: Versioned action binding
                  type: object
                  required:
                  - workflowId
                  - status
                  - risk
                  - decision
                  - requiresHumanReview
                  - audit
                  - createdAt
                  - expiresAt
                  - boundaries
                  - actionBindingVersion
                  - actionHash
                  properties:
                    workflowId:
                      type: string
                      pattern: ^asw_[0-9a-f-]{36}$
                    status:
                      type: string
                      enum:
                      - completed
                      - review_required
                    risk:
                      type: string
                      enum:
                      - low
                      - medium
                      - high
                      - critical
                    decision:
                      type: string
                      enum:
                      - allow
                      - allow_with_controls
                      - needs_review
                    requiresHumanReview:
                      type: boolean
                    audit:
                      type: object
                      required:
                      - destructGuardRequestId
                      - reviewQueueRequestId
                      properties:
                        destructGuardRequestId:
                          type:
                          - string
                          - 'null'
                        reviewQueueRequestId:
                          type:
                          - string
                          - 'null'
                    createdAt:
                      type: string
                    expiresAt:
                      type: string
                    receipt:
                      type: object
                      required:
                      - record
                      - integrity
                      - verify
                      properties:
                        record:
                          type: object
                        integrity:
                          type: object
                        verify:
                          type: object
                          required:
                          - url
                          - method
                          properties:
                            url:
                              type: string
                              format: uri
                            method:
                              type: string
                              const: POST
                    boundaries:
                      type: object
                      required:
                      - humanApprovalIncluded
                      - note
                      properties:
                        humanApprovalIncluded:
                          type: boolean
                          const: false
                        note:
                          type: string
                    actionBindingVersion:
                      type: string
                      const: hermes-action-v1
                    actionHash:
                      type: string
                      pattern: ^[a-f0-9]{64}$
                - title: Legacy record without versioned action binding
                  type: object
                  required:
                  - workflowId
                  - status
                  - risk
                  - decision
                  - requiresHumanReview
                  - audit
                  - createdAt
                  - expiresAt
                  - boundaries
                  - binding
                  properties:
                    workflowId:
                      type: string
                      pattern: ^asw_[0-9a-f-]{36}$
                    status:
                      type: string
                      enum:
                      - completed
                      - review_required
                    risk:
                      type: string
                      enum:
                      - low
                      - medium
                      - high
                      - critical
                    decision:
                      type: string
                      enum:
                      - allow
                      - allow_with_controls
                      - needs_review
                    requiresHumanReview:
                      type: boolean
                    audit:
                      type: object
                      required:
                      - destructGuardRequestId
                      - reviewQueueRequestId
                      properties:
                        destructGuardRequestId:
                          type:
                          - string
                          - 'null'
                        reviewQueueRequestId:
                          type:
                          - string
                          - 'null'
                    createdAt:
                      type: string
                    expiresAt:
                      type: string
                    receipt:
                      type: object
                      required:
                      - record
                      - integrity
                      - verify
                      properties:
                        record:
                          type: object
                        integrity:
                          type: object
                        verify:
                          type: object
                          required:
                          - url
                          - method
                          properties:
                            url:
                              type: string
                              format: uri
                            method:
                              type: string
                              const: POST
                    boundaries:
                      type: object
                      required:
                      - humanApprovalIncluded
                      - note
                      properties:
                        humanApprovalIncluded:
                          type: boolean
                          const: false
                        note:
                          type: string
                    binding:
                      type: object
                      required:
                      - available
                      - reason
                      properties:
                        available:
                          type: boolean
                          const: false
                        reason:
                          type: string
                          const: legacy_status_record_without_versioned_action_binding
        '400':
          description: Invalid workflow id
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
        '404':
          description: Workflow status not found or expired
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
        '503':
          description: Workflow status is temporarily unavailable
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
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