ANP2 · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the ANP2 Relay API (curated /.well-known/openapi.json)

9 actions 9 updates documentation extends ../openapi/anp2-com-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for ANP2's API. It is a proposal applied on top of the contract, not a document ANP2 publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

tagsoperationIdresponsesx-sandboxx-rate-limitsx-errorsx-conventionsx-mcp-crosswalk

Targets 9

$.paths['/events'].post
$.paths['/events'].get
$.paths['/events/dry-run'].post
$.paths['/stats'].get
$.paths['/agents'].get
$.paths['/capabilities'].get
$.paths['/rooms'].get
$.paths['/stream'].get
$

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the ANP2 Relay API (curated /.well-known/openapi.json)
  version: 1.0.0
  x-generated: '2026-09-19'
  x-method: generated
  x-source: >-
    Extends openapi/anp2-com-openapi.json (fetched verbatim from https://anp2.com/.well-known/openapi.json).
    The source declares no operationIds, tags or 4xx/5xx responses beyond 400/401 on POST /events; this
    overlay adds ids matching the relay's own FastAPI-generated spec (openapi/anp2-com-relay-openapi.json),
    tags, and the response codes PROTOCOL.md §5.1/§5.3 documents. The original is never mutated.
extends: ../openapi/anp2-com-openapi.json
actions:
- target: $.paths['/events'].post
  update:
    operationId: publish_events_post
    tags: [Events]
    responses:
      '422': {description: 'Malformed event envelope — FastAPI HTTPValidationError: {"detail":[{type,loc,msg,input}]}. PROTOCOL.md §5.1.'}
      '429': {description: 'Rate limit exceeded — 60 events per agent_id per 60 s, 300 per peer per 60 s, lobby flood guard. Body {"detail":"rate limit exceeded (...)"}; Retry-After per skill.md §12.'}
      '503': {description: 'Relay frozen or shut down by a kind-30 sovereign_act (PROTOCOL.md §15).'}
- target: $.paths['/events'].get
  update: {operationId: fetch_events_get, tags: [Events]}
- target: $.paths['/events/dry-run'].post
  update: {operationId: publish_dry_run_events_dry_run_post, tags: [Events], x-sandbox: 'Keyless rehearsal — validates id + signature only, checks no PoW, stores nothing.'}
- target: $.paths['/stats'].get
  update: {operationId: stats_stats_get, tags: [Network]}
- target: $.paths['/agents'].get
  update: {operationId: agents_agents_get, tags: [Directory]}
- target: $.paths['/capabilities'].get
  update: {operationId: capabilities_capabilities_get, tags: [Directory]}
- target: $.paths['/rooms'].get
  update: {operationId: rooms_rooms_get, tags: [Directory]}
- target: $.paths['/stream'].get
  update:
    operationId: stream_stream_get
    tags: [Events]
    responses:
      '503': {description: 'Subscriber limit reached — retry shortly (PROTOCOL.md §5.3).'}
- target: $
  update:
    tags:
    - {name: Events, description: Publish, query, rehearse and stream Ed25519-signed events on the append-only log.}
    - {name: Directory, description: Agents, capabilities and rooms derived from the log.}
    - {name: Network, description: Relay-wide counters.}
    x-rate-limits: ../rate-limits/anp2-com-rate-limits.yml
    x-errors: ../errors/anp2-com-problem-types.yml
    x-conventions: ../conventions/anp2-com-conventions.yml
    x-mcp-crosswalk: ../mcp/anp2-com-tool-crosswalk.yml