AFMR Discovery API

Read-only discovery for AFMR 1.0, the AFMR Reputation Attestation Working Draft and configuration-only Lift Evidence: 21 operations over the discovery documents (afmr.json, agent-card.json, mcp.json, resources.json, server.json, agents.json, llms.txt, status.json, changelog.json, feed.xml, sitemap.xml), the Reputation Attestation specification, JSON Schema and verifier requirements, the governance-voting contract, the endpoint-conformance registry, the evidence map and the Lift Evidence index, plus the MCP JSON-RPC and A2A SendMessage protocol endpoints. No authentication; errors are RFC 9457 application/problem+json.

Operations 22

GET /.well-known/afmr.json Get the AFMR authority map and machine action path #
GET /.well-known/agent-card.json Get the public A2A Agent Card #
GET /.well-known/mcp.json Get the non-normative MCP discovery pointer #
GET /resources.json Get every public machine resource and protocol endpoint #
GET /server.json Get the official MCP Registry server manifest #
GET /agents.json Get the consolidated A2A and MCP endpoint index #
GET /llms.txt Get the compact agent-first orientation #
GET /llms-full.txt Get expanded terminology, verification, lifecycle, and limit documentation #
GET /status.json Get publication, draft, dependency, and lifecycle status #
GET /changelog.json Get AFMR.ai public-work revisions #
GET /feed.xml Get the Atom update feed #
GET /sitemap.xml Get the human and machine resource sitemap #
GET /evidence/index.json Get public evidence and source surfaces #
GET /lift-evidence/index.json Get the empty configuration-only Lift Evidence index #
GET /standards/reputation-attestation/0.1/specification Get the AFMR Reputation Attestation Working Draft 0.1 #
GET /standards/governance-voting/1.0/contract.json Get the pinned Agentic Substrate ADR-022 Batch-42 governance and voting binding #
GET /standards/reputation-attestation/0.1/schema.json Get the Working Draft 0.1 JSON Schema #
GET /standards/reputation-attestation/0.1/verifier.json Get Working Draft verifier requirements and outcomes #
GET /registries/endpoints/v0.1/index.json Get the intentionally empty pre-publication endpoint registry #
POST /api/rpc Call the public read-only AFMR MCP server #
GET /api/rpc Probe for an optional MCP SSE listening stream #
POST /a2a Send a read-only discovery message to the AFMR A2A agent #

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/afmr-discovery-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

afmr-ai-discovery-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: AFMR Discovery API
  version: 1.0.1
  description: Institutionally neutral, read-oriented discovery for AFMR 1.0, the AFMR Reputation Attestation
    Working Draft, and configuration-only Lift Evidence. Nothing described here issues an attestation,
    confers market admission, establishes universal trust or safety, or authorizes a transaction.
  contact:
    name: Agent Failure Mode Registry
    url: https://afmr.ai/
  license:
    name: CC BY 4.0
    url: https://creativecommons.org/licenses/by/4.0/
servers:
- url: https://afmr.ai
paths:
  /.well-known/afmr.json:
    get:
      operationId: getAfmrDiscovery
      summary: Get the AFMR authority map and machine action path
      responses:
        '200':
          $ref: '#/components/responses/JsonDocument'
  /.well-known/agent-card.json:
    get:
      operationId: getA2aAgentCard
      summary: Get the public A2A Agent Card
      responses:
        '200':
          $ref: '#/components/responses/JsonDocument'
  /.well-known/mcp.json:
    get:
      operationId: getMcpDiscoveryPointer
      summary: Get the non-normative MCP discovery pointer
      description: Names the official server.json manifest and the Streamable HTTP endpoint at /api/rpc;
        /mcp is served as an equivalent alias.
      responses:
        '200':
          $ref: '#/components/responses/JsonDocument'
  /resources.json:
    get:
      operationId: getMachineResourceIndex
      summary: Get every public machine resource and protocol endpoint
      responses:
        '200':
          $ref: '#/components/responses/JsonDocument'
  /server.json:
    get:
      operationId: getMcpRegistryManifest
      summary: Get the official MCP Registry server manifest
      responses:
        '200':
          $ref: '#/components/responses/JsonDocument'
  /agents.json:
    get:
      operationId: getAgentAndToolIndex
      summary: Get the consolidated A2A and MCP endpoint index
      responses:
        '200':
          $ref: '#/components/responses/JsonDocument'
  /llms.txt:
    get:
      operationId: getCompactAgentOrientation
      summary: Get the compact agent-first orientation
      responses:
        '200':
          $ref: '#/components/responses/TextDocument'
  /llms-full.txt:
    get:
      operationId: getExpandedAgentDocumentation
      summary: Get expanded terminology, verification, lifecycle, and limit documentation
      responses:
        '200':
          $ref: '#/components/responses/TextDocument'
  /status.json:
    get:
      operationId: getPublicationStatus
      summary: Get publication, draft, dependency, and lifecycle status
      responses:
        '200':
          $ref: '#/components/responses/JsonDocument'
  /changelog.json:
    get:
      operationId: getPublicWorkChangelog
      summary: Get AFMR.ai public-work revisions
      responses:
        '200':
          $ref: '#/components/responses/JsonDocument'
  /feed.xml:
    get:
      operationId: getUpdateFeed
      summary: Get the Atom update feed
      responses:
        '200':
          $ref: '#/components/responses/XmlDocument'
  /sitemap.xml:
    get:
      operationId: getSitemap
      summary: Get the human and machine resource sitemap
      responses:
        '200':
          $ref: '#/components/responses/XmlDocument'
  /evidence/index.json:
    get:
      operationId: getEvidenceMap
      summary: Get public evidence and source surfaces
      responses:
        '200':
          $ref: '#/components/responses/JsonDocument'
  /lift-evidence/index.json:
    get:
      operationId: getLiftEvidenceIndex
      summary: Get the empty configuration-only Lift Evidence index
      description: No Lift result cards are published. Both the canonical public-card schema and the governed
        index schema are external to AFMR.ai and currently resolve.
      responses:
        '200':
          $ref: '#/components/responses/JsonDocument'
  /standards/reputation-attestation/0.1/specification:
    get:
      operationId: getReputationAttestationSpecification
      summary: Get the AFMR Reputation Attestation Working Draft 0.1
      responses:
        '200':
          $ref: '#/components/responses/HtmlDocument'
  /standards/governance-voting/1.0/contract.json:
    get:
      operationId: getGovernanceVotingContract
      summary: Get the pinned Agentic Substrate ADR-022 Batch-42 governance and voting binding
      description: Working-draft internal transfer contract. It defines fail-closed conformance evidence
        and does not represent any valve as conforming.
      responses:
        '200':
          $ref: '#/components/responses/JsonDocument'
  /standards/reputation-attestation/0.1/schema.json:
    get:
      operationId: getReputationAttestationSchema
      summary: Get the Working Draft 0.1 JSON Schema
      responses:
        '200':
          $ref: '#/components/responses/SchemaDocument'
  /standards/reputation-attestation/0.1/verifier.json:
    get:
      operationId: getVerifierRequirements
      summary: Get Working Draft verifier requirements and outcomes
      responses:
        '200':
          $ref: '#/components/responses/JsonDocument'
  /registries/endpoints/v0.1/index.json:
    get:
      operationId: getEndpointConformanceRegistry
      summary: Get the intentionally empty pre-publication endpoint registry
      responses:
        '200':
          $ref: '#/components/responses/JsonDocument'
  /api/rpc:
    post:
      operationId: mcpJsonRpc
      summary: Call the public read-only AFMR MCP server
      description: MCP 2025-11-25 Streamable HTTP at the exact /api/rpc path. The server is stateless
        and does not expose an SSE listening stream.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JsonRpcRequest'
      responses:
        '200':
          description: JSON-RPC response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonRpcResponse'
        '202':
          description: Notification accepted
        '403':
          description: Browser Origin is not permitted
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
    get:
      operationId: mcpListeningStream
      summary: Probe for an optional MCP SSE listening stream
      description: This stateless server returns 405 because it does not offer an SSE listening stream.
        JSON-RPC messages use POST.
      responses:
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
  /a2a:
    post:
      operationId: a2aSendMessage
      summary: Send a read-only discovery message to the AFMR A2A agent
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JsonRpcRequest'
      responses:
        '200':
          description: A2A JSON-RPC response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonRpcResponse'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
components:
  responses:
    JsonDocument:
      description: Machine-readable JSON document
      content:
        application/json:
          schema:
            type: object
    SchemaDocument:
      description: JSON Schema document
      content:
        application/schema+json:
          schema:
            type: object
    TextDocument:
      description: Plain-text agent documentation
      content:
        text/plain:
          schema:
            type: string
    HtmlDocument:
      description: Human-readable HTML document
      content:
        text/html:
          schema:
            type: string
    XmlDocument:
      description: XML discovery document
      content:
        application/xml:
          schema:
            type: string
    MethodNotAllowed:
      description: Method is not supported; inspect Allow and the machine-readable problem document
      headers:
        Allow:
          schema:
            type: string
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
  schemas:
    JsonRpcRequest:
      type: object
      required:
      - jsonrpc
      - method
      properties:
        jsonrpc:
          const: '2.0'
        id:
          oneOf:
          - type: string
          - type: number
          - type: 'null'
        method:
          type: string
        params:
          type: object
          additionalProperties: true
    JsonRpcResponse:
      type: object
      required:
      - jsonrpc
      - id
      properties:
        jsonrpc:
          const: '2.0'
        id: {}
        result: {}
        error:
          type: object
    Problem:
      type: object
      required:
      - type
      - title
      - status
      properties:
        type:
          type: string
        title:
          type: string
        status:
          type: integer
        detail:
          type: string
        instance:
          type: string