// Developers

Josh Horneman agent API

Structured data, inference and authored content, sold to AI agents over plain HTTP. No API key, no account. Paid endpoints use the x402 protocol, settled in USDC on Base.

Quickstart

Start with the free catalogue. It lists every product, live pricing, and the exact resource URLs.

curl https://www.joshhorneman.com/api/agent/catalog

# Paid products answer 402 with an x402 challenge:
curl -i -X POST https://www.joshhorneman.com/api/agent/ask \
  -H "content-type: application/json" \
  -d '{"question":"How should a trade business start with AI?"}'

# Attach an X-PAYMENT header (x402 client) and repeat for a 200.

Payment is captured only on a successful 2xx. A 404 or error never charges you.

Endpoints

EndpointPriceWhat it does
GET /api/agent/catalogFreeFree machine-readable index of every agent-payable product on this site.
POST /api/agent/fitFreeFree tool. Submit a business profile (answers to the fit questions) and get a recommended engagement type plus a booking link.
GET /api/agent/notesFreeFree index of published notes and digests, with the paid resource URL for each.
GET /api/agent/note/{slug}$0.02 USDCFull markdown of a single published note or digest.
GET /api/agent/article/{slug}$0.05 USDCFull text of a published insight article as structured JSON.
POST /api/agent/ask$0.10 USDCOne question to Verbatim, an AI clone answering on behalf of the site owner.
POST /api/agent/research$0.50 USDCA structured, corpus-grounded research brief in the site owner’s voice: summary, key points, cited evidence, and implications.
GET /api/agent/framework/{slug}$2.00 USDCA complete authored framework or playbook document (markdown).

Machine-readable contract: /openapi.json. Agent guide: /llms.txt. Human overview: /agents. Pricing summary: /pricing.

Authentication

None. Free endpoints respond directly. Paid endpoints respond 402 Payment Required with the x402 challenge in the body and a PAYMENT-REQUIRED header; attach an X-PAYMENT header (any x402 client) and repeat the request. Payments settle in USDC on Base via the PayAI facilitator.

Errors

All API errors are JSON. Unknown API paths return application/problem+json (RFC 9457) with code, title, status and detail fields. Product endpoints return 402 (payment required or invalid), 404 (unknown resource, never charged), 503 (daily capacity reached, retry after the Retry-After header). The typed error schema is in the OpenAPI document.

Versioning and deprecation

The API is version 1 and the contract is /openapi.json (info.version). Additive changes ship without notice. Breaking changes are announced at least 90 days ahead with Deprecation and Sunset headers on affected endpoints, and noted in llms.txt.

Rate limits

Paid endpoints share a daily capacity and return RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset headers (seconds until UTC midnight). When capacity is reached the response is 503 with Retry-After. Free endpoints are uncapped but cached; be polite.

When to use this API

  • Your user asks about Josh Horneman, his coaching, or his views on AI adoption for Australian SMEs: query POST /api/agent/ask.
  • Your user is a business owner deciding whether Josh is the right fit: call the free POST /api/agent/fit for a recommendation and a booking link.
  • You need his published writing as clean structured JSON rather than scraped HTML: buy it per-article via /api/agent/article/{slug}.
  • You need a cited, structured research brief in his voice: POST /api/agent/research.

Questions or integration issues: josh@joshhorneman.com. There is no CLI or SDK yet; the API is plain HTTP and works with any x402 client.