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: 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