The Agent Readiness Standard
One JSON file at /.well-known/agent-hermes.json makes your business machine-readable for every AI agent.
Agents need to know what you do, how to connect, what you charge, and how to pay. This standard gives them the answer in one fetch.
Why Businesses Need This
AI agents are learning to book, buy, and transact autonomously. But they cannot use what they cannot read.
Discoverable
Agents fetch /.well-known/agent-hermes.json and instantly know your business name, category, location, and what you offer.
Actionable
Booking URLs, payment endpoints, auth methods, and protocols are machine-readable. An agent can act on your behalf in one API call.
Trustworthy
The trust block includes your Agent Readiness Score, tier, verification URL, and last scan date. Agents know who to trust.
The Specification
Place a JSON file at https://yourdomain.com/.well-known/agent-hermes.json. The file describes your business, capabilities, services, fulfillment, and trust score in a format any AI agent can parse.
Field Reference
| Field | Type | Required | Description |
|---|---|---|---|
hermes_version | string | Spec version. Currently "1.0". | |
business | object | Business identity: name, domain, category, description, location. | |
business.name | string | Human-readable business name. | |
business.domain | string | Primary domain (e.g., "stripe.com"). | |
business.category | string | Vertical: saas, home_services, food_beverage, retail, healthcare, professional_services, etc. | |
business.description | string | One-line description optimized for LLMs. | |
business.location | object | optional | Physical location or service area. Include city, state, country, service_radius_miles. |
agent_capabilities | object | What an AI agent can do with this business. | |
agent_capabilities.can_book | boolean | Can an agent book appointments or reservations? | |
agent_capabilities.can_quote | boolean | Can an agent get pricing or quotes programmatically? | |
agent_capabilities.can_pay | boolean | Can an agent complete a payment? | |
agent_capabilities.auth_method | string | Authentication: "api_key", "oauth2", "none", "bearer". | |
agent_capabilities.protocols | string[] | Supported protocols: "rest", "graphql", "mcp", "a2a", "webhooks". | |
services | array | List of services with name, price_range or pricing_model, and availability. | |
fulfillment | object | How services are delivered: "api", "on_site", "delivery", "mixed". Include lead times. | |
trust | object | optional | AgentHermes trust metadata. Auto-populated when you generate via our API. |
trust.hermes_score | number | optional | Agent Readiness Score (0-100). |
trust.hermes_tier | string | optional | Tier: platinum, gold, silver, bronze, or unaudited. |
trust.verify_url | string | optional | URL to verify the score is authentic. |
Examples by Vertical
The standard works for every type of business. Here are three real-world examples showing how a local service, a restaurant, and a SaaS company each describe themselves.
Local Service: Plumber
{
"hermes_version": "1.0",
"business": {
"name": "Rapid Flow Plumbing",
"domain": "rapidflowplumbing.com",
"category": "home_services",
"subcategory": "plumbing",
"description": "24/7 emergency plumbing, drain cleaning, and water heater repair in Austin, TX.",
"location": {
"city": "Austin",
"state": "TX",
"country": "US",
"service_radius_miles": 30
}
},
"agent_capabilities": {
"can_book": true,
"can_quote": true,
"can_pay": false,
"booking_url": "https://rapidflowplumbing.com/api/book",
"quote_url": "https://rapidflowplumbing.com/api/quote",
"auth_method": "api_key",
"protocols": ["rest"]
},
"services": [
{
"name": "Emergency Drain Cleaning",
"price_range": { "min": 150, "max": 400, "currency": "USD" },
"availability": "24/7"
},
{
"name": "Water Heater Install",
"price_range": { "min": 800, "max": 2500, "currency": "USD" },
"availability": "mon-sat 7am-6pm"
}
],
"fulfillment": {
"type": "on_site",
"lead_time_hours": 2,
"service_area": "Austin metro, TX"
},
"trust": {
"hermes_score": 72,
"hermes_tier": "silver",
"hermes_id": "AH-2026-A3F2C",
"verified": true,
"last_scanned": "2026-03-30T14:00:00Z",
"verify_url": "https://agenthermes.ai/api/v1/score/rapidflowplumbing.com"
}
}Restaurant: Ramen House
{
"hermes_version": "1.0",
"business": {
"name": "Sakura Ramen House",
"domain": "sakuraramen.com",
"category": "food_beverage",
"subcategory": "restaurant",
"description": "Authentic Tokyo-style ramen with 12-hour bone broth. Dine-in, takeout, and delivery.",
"location": {
"city": "San Francisco",
"state": "CA",
"country": "US"
}
},
"agent_capabilities": {
"can_book": true,
"can_quote": false,
"can_pay": true,
"can_order": true,
"booking_url": "https://sakuraramen.com/api/reservations",
"order_url": "https://sakuraramen.com/api/orders",
"payment_url": "https://sakuraramen.com/api/pay",
"auth_method": "oauth2",
"protocols": ["rest", "webhooks"]
},
"services": [
{
"name": "Dine-in Reservation",
"price_range": { "min": 15, "max": 45, "currency": "USD" },
"availability": "tue-sun 11:30am-10pm"
},
{
"name": "Delivery Order",
"price_range": { "min": 20, "max": 60, "currency": "USD" },
"availability": "tue-sun 11:30am-9pm",
"delivery_radius_miles": 5
}
],
"fulfillment": {
"type": "mixed",
"options": ["dine_in", "takeout", "delivery"],
"lead_time_minutes": 30,
"delivery_partners": ["doordash", "ubereats"]
},
"trust": {
"hermes_score": 81,
"hermes_tier": "gold",
"hermes_id": "AH-2026-7B1E9",
"verified": true,
"last_scanned": "2026-03-29T10:15:00Z",
"verify_url": "https://agenthermes.ai/api/v1/score/sakuraramen.com"
}
}SaaS: Stripe (Payments)
{
"hermes_version": "1.0",
"business": {
"name": "Stripe",
"domain": "stripe.com",
"category": "saas",
"subcategory": "payments",
"description": "Payment infrastructure for the internet. Accept payments, send payouts, and manage businesses online.",
"location": {
"country": "US",
"global": true
}
},
"agent_capabilities": {
"can_book": false,
"can_quote": true,
"can_pay": true,
"booking_url": null,
"quote_url": "https://api.stripe.com/v1/prices",
"payment_url": "https://api.stripe.com/v1/payment_intents",
"auth_method": "api_key",
"protocols": ["rest", "webhooks", "mcp"],
"mcp_endpoint": "https://mcp.stripe.com",
"openapi_spec": "https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json",
"docs_url": "https://docs.stripe.com"
},
"services": [
{
"name": "Payment Processing",
"pricing_model": "per_transaction",
"price": { "rate": "2.9% + $0.30", "currency": "USD" }
},
{
"name": "Stripe Connect",
"pricing_model": "per_transaction",
"price": { "rate": "0.25% + $0.25", "currency": "USD" }
}
],
"fulfillment": {
"type": "api",
"latency_p50_ms": 200,
"uptime_sla": "99.99%",
"rate_limit": "100 req/sec"
},
"trust": {
"hermes_score": 56,
"hermes_tier": "bronze",
"hermes_id": "AH-2026-E4D01",
"verified": true,
"certified": false,
"last_scanned": "2026-03-30T08:00:00Z",
"verify_url": "https://agenthermes.ai/api/v1/score/stripe.com"
}
}How to Implement
Three options. Pick whichever fits your stack.
Option 1: Static File (Any Host)
Drop the JSON file in your .well-known/ directory. Works with any static host, CDN, or web server.
# Create the directory
mkdir -p .well-known
# Generate your agent-hermes.json via the API
curl -s "https://agenthermes.ai/api/v1/agent-hermes-json?domain=yourdomain.com" \
| jq '.hermes_json' > .well-known/agent-hermes.json
# Deploy with your siteOption 2: Next.js Route Handler
import { NextResponse } from 'next/server'
const hermesJson = {
hermes_version: '1.0',
business: {
name: 'Your Business',
domain: 'yourdomain.com',
category: 'saas',
description: 'What your business does in one sentence.',
},
agent_capabilities: {
can_book: false,
can_quote: true,
can_pay: true,
auth_method: 'api_key',
protocols: ['rest'],
},
services: [
{
name: 'Your Service',
pricing_model: 'subscription',
price: { amount: 29, currency: 'USD', interval: 'month' },
},
],
fulfillment: {
type: 'api',
latency_p50_ms: 150,
},
}
export function GET() {
return NextResponse.json(hermesJson, {
headers: {
'Cache-Control': 'public, max-age=3600',
'Access-Control-Allow-Origin': '*',
},
})
}Option 3: Express / Node.js
const express = require('express')
const app = express()
app.get('/.well-known/agent-hermes.json', (req, res) => {
res.json({
hermes_version: '1.0',
business: {
name: 'Your Business',
domain: 'yourdomain.com',
category: 'saas',
description: 'What your business does.',
},
agent_capabilities: {
can_book: false,
can_quote: true,
can_pay: true,
auth_method: 'api_key',
protocols: ['rest'],
},
services: [],
fulfillment: { type: 'api' },
})
})Validate Your File
After deploying, verify your file is accessible and valid:
# Check it's accessible
curl -s https://yourdomain.com/.well-known/agent-hermes.json | jq .
# Verify with AgentHermes (checks signature + score)
curl -s -X POST https://agenthermes.ai/api/v1/hermes-json/verify \
-H "Content-Type: application/json" \
-d '{"domain": "yourdomain.com"}'Impact on Your Score
Having a valid agent-hermes.json directly boosts your Agent Readiness Score.
Agents can find and understand your business in one fetch.
Machine-readable capabilities, services, and fulfillment config.
Verified score and tier help agents prioritize trusted businesses.
Get Your agent-hermes.json
We auto-generate the file from your scan results. Connect your business and deploy it in under a minute.