<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-rehfeld-apix-services-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="APIX Services">APIX Services Profile: Discovery Infrastructure for Web API and Bot Services</title>
    <seriesInfo name="Internet-Draft" value="draft-rehfeld-apix-services-01"/>
    <author initials="C." surname="Rehfeld" fullname="Carsten Rehfeld">
      <organization/>
      <address>
        <email>carsten@botstandards.org</email>
      </address>
    </author>
    <date year="2026" month="May" day="27"/>
    <abstract>
      <?line 65?>

<t>This document defines the APIX Services Profile: an extension to the
APIX Core Infrastructure specification that enables discovery and
automated verification of web API and bot-consumable services. It
specifies the APM field set for API services, the APIX Spider
verification protocol, liveness monitoring configuration, search and
filter query semantics, and the service record schemas (Level 1 summary
and Level 2 full record) returned to consuming agents. Autonomous agents
that implement this profile can discover API services globally from a
single entry point, evaluate their trust posture without any out-of-band
knowledge, and select services that satisfy their own Trust Policy.</t>
    </abstract>
  </front>
  <middle>
    <?line 78?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The APIX Core Infrastructure <xref target="APIX-CORE"/> defines the common foundation
for agent-oriented service discovery: the governance model, trust model
dimensions, commercial onboarding, sanctions compliance, and the base
Index API. That document is the authoritative reference for all concepts
and normative requirements shared across service types.</t>
      <t>This document extends APIX Core for web API and bot-consumable services:
services that expose a stable HTTPS endpoint, publish a machine-readable
specification document, and are verifiable by an automated crawler. These
are the primary service type for which APIX was originally conceived. The
defining characteristics of an API service, as distinct from an IoT device
service, are:</t>
      <ul spacing="normal">
        <li>
          <t>A stable, publicly accessible <tt>entry_point</tt> URL.</t>
        </li>
        <li>
          <t>A machine-readable specification at a public <tt>spec.url</tt> (OpenAPI,
MCP, AsyncAPI, or GraphQL SDL).</t>
        </li>
        <li>
          <t>Liveness maintained by Spider health checks, not device presence signals.</t>
        </li>
        <li>
          <t>No instance layer: the service is the service; there is no per-physical-unit
record.</t>
        </li>
      </ul>
      <t>Implementors MUST satisfy all normative requirements in <xref target="APIX-CORE"/>
before applying the additional requirements in this document.</t>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in <xref target="RFC2119"/>.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The following terms are defined in <xref target="APIX-CORE"/> and used here without
redefinition: APIX, APM, APIX Manifest, service_id, trust model,
organisation trust level (O-0 through O-5), service verification level
(S-0 through S-4), liveness, commercial contract, sanctions screening.</t>
        <t>Additional terms defined in this document:</t>
        <t><strong>API Service</strong> — A service registered with <tt>spec.type</tt> set to a
web-protocol value (openapi, mcp, asyncapi, graphql). Has a stable
<tt>entry_point</tt> URL and a machine-readable spec document. Verified by
the APIX Spider.</t>
        <t><strong>APIX Spider</strong> — The automated crawler component that verifies API
service registrations by fetching health endpoints and specification
documents, comparing them against registered snapshots, and updating
service verification levels.</t>
        <t><strong>Registered Spec Snapshot</strong> — The machine-readable specification
document fetched and stored by the Spider at first registration, or at
each APM update that increments <tt>api_version</tt>. The snapshot is the
reference for structural consistency checks on subsequent Spider runs.</t>
        <t><strong>Liveness Monitoring Configuration</strong> — The per-service setting that
determines how frequently the Spider rechecks a service's health
endpoint and specification document.</t>
        <t><strong>Liveness</strong> — Defined in <xref target="APIX-CORE"/> Section 2. For API services,
liveness is measured by the APIX Spider via periodic HTTPS health checks
against <tt>{entry_point}/health</tt>. The Spider records response availability,
response time, and uptime percentage. Device service liveness uses a
different mechanism (see <xref target="APIX-IOT"/>).</t>
        <t><strong>Service Record</strong> — The APIX-maintained record for an API service,
combining the APM submitted by the Service Owner with Spider-verified
trust metadata. Available at two granularity levels: Level 1 (summary,
returned in search results) and Level 2 (full record, returned on
detail fetch).</t>
        <t><strong>Lifecycle Stage</strong> — The current development and support status of a
service: <tt>experimental</tt>, <tt>beta</tt>, <tt>stable</tt>, <tt>deprecated</tt>, or <tt>sunset</tt>.</t>
        <t><strong>spec_consistency</strong> — A Spider-maintained field with three values:
<tt>consistent</tt> (spec matches snapshot), <tt>mismatch</tt> (spec changed without
APM version update), <tt>unreachable</tt> (spec URL not fetchable or parseable).</t>
        <t><strong>Accredited Verifier</strong> — An organisation accredited by the governing
body to perform O-4 and O-5 organisation trust assessments.</t>
      </section>
      <section anchor="apm-for-api-services">
        <name>APM for API Services</name>
        <section anchor="required-fields">
          <name>Required Fields</name>
          <t>The APIX Manifest for an API service extends the base APM format defined
in <xref target="APIX-CORE"/>. The following complete schema applies to all services
with <tt>spec.type</tt> in the Protocol Type Registry (Section 4):</t>
          <artwork><![CDATA[
{
  "apm_version": "1.0",
  "service_id": "unique stable ID -- UUID v4 or APIX-issued",
  "name": "human-readable service name",
  "description": "machine-parseable capability summary",
  "language": ["en"],
  "api_version": "semantic version string -- e.g. 2.1.0",
  "lifecycle_stage": "experimental|beta|stable|deprecated|sunset",
  "supersedes": "service_id this entry supersedes -- OPTIONAL",
  "owner": {
    "organisation_name": "legal entity name",
    "jurisdiction": "ISO 3166-1 alpha-2 country code",
    "registration_number": "reg. number -- required for O-2+",
    "contacts": {
      "operations": "email -- incident and spec-failure alerts",
      "escalation": "email -- Cluster 3 escalation; OPTIONAL"
    }
  },
  "spec": {
    "type": "value from protocols registry",
    "url": "URL to the machine-readable specification document",
    "version": "spec version string"
  },
  "capabilities": [
    "term from capabilities registry",
    "term from capabilities registry"
  ],
  "entry_point": "base URL of the service",
  "trust": {
    "organisation_level": "O-0 to O-5 -- set by index only",
    "service_level": "S-0 to S-4 -- set by index only",
    "spec_consistency": "null|consistent|mismatch|unreachable",
    "spec_fetch_consecutive_failures": 0,
    "next_spider_run_at": "ISO 8601 timestamp -- next Spider run",
    "liveness": {
      "last_ping_at": "ISO 8601 timestamp",
      "ping_interval_seconds": 300,
      "uptime_30d_percent": 99.9,
      "avg_response_ms": 142.0
    }
  },
  "notifications": {
    "supported": true,
    "channels": [
      {
        "type": "value from notification-channels registry",
        "registration_url": "URL to register a subscription",
        "events": ["event-type"],
        "spec_url": "URL to event schema -- OPTIONAL"
      }
    ]
  },
  "legal": {
    "terms_of_service_url": "URL",
    "privacy_policy_url": "URL",
    "data_processing_agreement_url": "URL -- required for O-3+",
    "gdpr_applicable": true,
    "jurisdiction_flags": ["ISO 3166-1 alpha-2 country code"]
  },
  "authentication": {
    "methods": ["oauth2 | api_key | bearer | mtls | none"],
    "oauth2_discovery_url": "URL to OAuth2 discovery endpoint"
  },
  "pricing": {
    "model": "free | freemium | paid | enterprise | dynamic",
    "pricing_url": "URL to human-readable pricing page -- OPTIONAL",
    "pricing_endpoint": "machine-readable price endpoint -- dynamic"
  },
  "standard_warnings": [
    {
      "field": "APM field path",
      "value": "the deprecated value in use",
      "registry_status": "deprecated",
      "deprecated_in_apix_version": "version string",
      "sunset_date": "ISO 8601 date",
      "replacement": "replacement value",
      "message": "human-readable warning"
    }
  ],
  "custom": [
    "com.example.coverage_polygon",
    "com.example.seasonal_availability"
  ]
}
]]></artwork>
          <t><strong>Field notes:</strong></t>
          <t><tt>owner.contacts.operations</tt> MUST be provided. It is the primary notification
address for all automated Spider alerts: spec fetch failures at Cluster 2
entry, liveness degradation, and recovery confirmations. This address
SHOULD reach the team responsible for keeping the service registration
current.</t>
          <t><tt>owner.contacts.escalation</tt> is OPTIONAL but RECOMMENDED. It is the
escalation address sent to when failures reach Cluster 3 — indicating
a persistent problem that has not been resolved through the Cluster 1
and Cluster 2 retry windows and likely requires management attention or
a deliberate APM configuration update. This address SHOULD reach a team
lead, service owner, or on-call manager. It MUST NOT be identical to
<tt>operations</tt> — if the same person handles both, the escalation path
provides no additional coverage.</t>
          <t><tt>api_version</tt> MUST follow Semantic Versioning 2.0.0. It describes
the version of the service's own API, not the APM format version.</t>
          <t>Each <tt>api_version</tt> value is bound to exactly one registered spec snapshot
and carries an immutable field structure definition. The schema associated
with a published <tt>api_version</tt> MUST NOT change after first publication:</t>
          <ul spacing="normal">
            <li>
              <t>Adding a field requires a new minor version (e.g., <tt>2.3.0</tt> → <tt>2.4.0</tt>).</t>
            </li>
            <li>
              <t>Removing a field, changing a field type, or making any other breaking
change requires a new major version (e.g., <tt>2.4.0</tt> → <tt>3.0.0</tt>).</t>
            </li>
          </ul>
          <t>This is not a convention — it is a hard invariant enforced by the snapshot
model. A consuming agent that targets <tt>v2.4</tt> receives a permanent contract:
every service matching that version will expose exactly the fields defined
for <tt>v2.4</tt>, no more and no less, for the lifetime of that registration.
Service Owners are therefore free to drop outdated fields at a major version
boundary without deprecation gymnastics — the major bump is the explicit,
sufficient notice to consumers.</t>
          <t>A Service Owner who modifies the live spec document at <tt>spec.url</tt> without
submitting an APM update with a new <tt>api_version</tt> value WILL produce a
structural mismatch between the live document and the stored snapshot. The
Spider MUST record this as an S-2 consistency failure and MUST surface it
in the Service Record as a <tt>standard_warnings</tt> entry.</t>
          <t>Operators who need to change their API MUST register a new <tt>api_version</tt>.
This protects consuming agents from silent contract breakage.</t>
          <t><tt>language</tt> is OPTIONAL. When present, it MUST be a non-empty JSON array
of BCP 47 language tags (<xref target="RFC5646"/>). It declares the natural languages
in which the service's API responses, documentation, and user-facing
content are available. If omitted, the default value is <tt>["en"]</tt>. Agents
MAY use this field to select services that operate in a required language.
Example: <tt>["de", "en"]</tt> for a service supporting German and English.</t>
          <t><tt>authentication</tt> is OPTIONAL but RECOMMENDED. When present, it MUST
contain a <tt>methods</tt> array listing one or more of the following values:
<tt>"oauth2"</tt>, <tt>"api_key"</tt>, <tt>"bearer"</tt>, <tt>"mtls"</tt>, <tt>"none"</tt>. A service that
requires no authentication MUST declare <tt>["none"]</tt> explicitly. When
<tt>"oauth2"</tt> is in <tt>methods</tt>, <tt>oauth2_discovery_url</tt> MUST be provided; it
MUST point to a valid OAuth2 discovery document (RFC 8414 or OpenID
Connect Discovery). The <tt>authentication</tt> field enables agents to
pre-qualify whether they can authenticate with a service before
invocation, avoiding wasted round-trips and quota consumption against
services the agent cannot use. The APIX Spider does not verify credential
validity; it verifies only that <tt>oauth2_discovery_url</tt>, when declared, is
reachable and returns a parseable discovery document.</t>
          <t><tt>pricing</tt> is OPTIONAL. When present, it MUST contain a <tt>model</tt> field with
one of the following values:</t>
          <ul spacing="normal">
            <li>
              <t><tt>"free"</tt> — no charge for any usage; <tt>pricing_url</tt> MAY be omitted.</t>
            </li>
            <li>
              <t><tt>"freemium"</tt> — a free tier exists; <tt>pricing_url</tt> SHOULD be provided.</t>
            </li>
            <li>
              <t><tt>"paid"</tt> — all usage is charged; <tt>pricing_url</tt> MUST be provided.</t>
            </li>
            <li>
              <t><tt>"enterprise"</tt> — pricing is individually negotiated; <tt>pricing_url</tt> MUST
be provided.</t>
            </li>
            <li>
              <t><tt>"dynamic"</tt> — price varies based on service load or other real-time
factors; <tt>pricing_endpoint</tt> MUST be provided.</t>
            </li>
          </ul>
          <t><tt>pricing.model</tt> is self-declared and is not verified by the APIX Spider.
The index stores and exposes only the declared <tt>model</tt> value and the
<tt>pricing_endpoint</tt> URL; it does not fetch, cache, or display current
prices. Consuming agents are solely responsible for querying the
<tt>pricing_endpoint</tt> directly before invocation and for evaluating the
returned price against their operator-configured budget constraints.
Misrepresentation of the pricing model (e.g., declaring <tt>"free"</tt> while
charging) constitutes a breach of the service owner's registration
contract and MUST result in suspension at O-3+.</t>
          <t><tt>pricing.pricing_url</tt> MUST be a stable HTTPS URL pointing to a
human-readable pricing page. Agents MAY follow this URL for full pricing
detail.</t>
          <t><tt>pricing.pricing_endpoint</tt> is REQUIRED when <tt>model</tt> is <tt>"dynamic"</tt> and
MUST NOT be present for any other model value. It is a stable HTTPS URL
that agents query immediately before service invocation to obtain the
current price. The endpoint MUST respond with:</t>
          <sourcecode type="json"><![CDATA[
{
  "price_per_unit": 0.005,
  "currency": "ISO 4217 currency code -- e.g. USD, EUR",
  "unit": "request | token | minute | kb | device_hour",
  "valid_until": "ISO 8601 timestamp -- quote expires at this time",
  "quote_id": "single-use price reservation token",
  "load_factor": 1.2
}
]]></sourcecode>
          <t><tt>quote_id</tt> is a single-use price reservation token issued by the service
for this specific price quote. It MUST be treated as a binding commitment:
the service MUST honour the quoted <tt>price_per_unit</tt> when the agent presents
a valid, non-expired <tt>quote_id</tt> at invocation time. The <tt>quote_id</tt> expires
at <tt>valid_until</tt> and MUST NOT be accepted after that timestamp. A <tt>quote_id</tt>
is single-use — once presented in an invocation it is consumed and MUST NOT
be accepted again. How the agent presents the <tt>quote_id</tt> during invocation
(HTTP header, request body field, or other mechanism) is defined by the
service's own API documentation; APIX does not specify the invocation
protocol.</t>
          <t>An agent MUST NOT invoke the service after <tt>valid_until</tt> without re-querying
the pricing endpoint to obtain a fresh <tt>quote_id</tt>. An agent MAY compare
<tt>price_per_unit</tt> against its operator-configured budget ceiling and MUST
abandon the invocation and discard the <tt>quote_id</tt> if the ceiling is exceeded.</t>
          <t><tt>load_factor</tt> is OPTIONAL and indicates the current multiplier relative
to the service's baseline price (1.0 = baseline).</t>
          <t><tt>lifecycle_stage</tt> defines the publication maturity of this API service.
API service lifecycle is defined by this profile. Valid values are
<tt>experimental</tt>, <tt>beta</tt>, <tt>stable</tt>, <tt>deprecated</tt>, and <tt>sunset</tt>. Default
if omitted is <tt>stable</tt>. Services at <tt>experimental</tt> or <tt>beta</tt> are
excluded from default search results (see Section 7.2).</t>
          <table>
            <thead>
              <tr>
                <th align="left">Stage</th>
                <th align="left">Meaning</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>experimental</tt></td>
                <td align="left">Pre-release. Interface may change without notice.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>beta</tt></td>
                <td align="left">Feature-complete but not yet declared stable. Breaking changes possible.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>stable</tt></td>
                <td align="left">Production-ready. Breaking changes require a new <tt>api_version</tt>.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>deprecated</tt></td>
                <td align="left">Service owner is winding down. Successor SHOULD be declared via <tt>supersedes</tt>.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>sunset</tt></td>
                <td align="left">Service endpoint will go dark at the declared <tt>sunset_date</tt>. Agents MUST stop using the service by that date.</td>
              </tr>
            </tbody>
          </table>
          <t>Transitions are unidirectional: <tt>experimental</tt> → <tt>beta</tt> → <tt>stable</tt> →
<tt>deprecated</tt> → <tt>sunset</tt>.</t>
          <t><tt>supersedes</tt> is OPTIONAL. When set, the index MUST automatically set
<tt>superseded_by</tt> on the referenced entry. The referencing service MUST be
registered under the same organisation account.</t>
          <t><tt>trust</tt> fields are set exclusively by the index operator based on
verification outcomes. APM submissions that include <tt>trust</tt> field values
MUST have those values overwritten by the index upon processing.</t>
          <t><tt>standard_warnings</tt> is set exclusively by the index operator. It is
populated only after the grace period for the relevant deprecation has
elapsed (see <xref target="APIX-CORE"/> Section 4.3). During the grace period the
field MUST be empty even if the service uses a deprecated value. Service
Owners MUST NOT submit this field; submitted values MUST be ignored.</t>
          <t><tt>custom</tt> is OPTIONAL. When present, it MUST be a JSON array of strings.
Each string MUST use reverse-domain notation (e.g.,
<tt>"com.example.coverage_polygon"</tt>) to prevent key collisions between
independent adopters. The array MUST NOT contain more than 20 entries.
Each entry MUST NOT exceed 128 characters.</t>
          <t>The <tt>custom</tt> array is a capability declaration list — it signals that
the service exposes properties not yet covered by the standard schema,
without encoding their values in the index. Values associated with
declared custom properties are defined and published by the registrant
outside the index (e.g., in their API documentation or spec document)
and are retrieved directly from the service. The index stores and
exposes only the declared key names.</t>
          <t>The <tt>custom</tt> field is the governed extension mechanism for early
adoption of field patterns that may be standardised in a future APM
version. The APIX Spider records declared key names in the index's
custom key registry. Consuming agents can discover services that
declare a known custom property via the <tt>custom_key</tt> search parameter;
interpretation of a custom property's semantics requires out-of-band
agreement between registrant and consumer.</t>
          <t>The promotion path: when a custom key appears in APM submissions from
five (5) or more independent organisations, The governing body MAY open a governance
track to evaluate the pattern as a candidate standard field in a future
APM version. Registrants are encouraged to document custom property
semantics publicly to support interoperability and accelerate
standardisation.</t>
          <t><tt>notifications</tt> is OPTIONAL for <tt>experimental</tt> and <tt>beta</tt> lifecycle stages
and RECOMMENDED for <tt>stable</tt>. If <tt>notifications.supported</tt> is <tt>true</tt>,
<tt>notifications.channels</tt> MUST contain at least one entry.</t>
          <t><tt>entry_point</tt> is the base HTTPS URL of the service, used by consuming agents
to construct API calls. The following normative requirements apply:</t>
          <ul spacing="normal">
            <li>
              <t><tt>entry_point</tt> MUST use the <tt>https</tt> scheme. HTTP entry points MUST be
rejected at registration.</t>
            </li>
            <li>
              <t><tt>entry_point</tt> MUST remain stable for the lifetime of the service
registration. A change to <tt>entry_point</tt> MUST be submitted as an APM
update and MUST trigger immediate Spider re-verification.</t>
            </li>
            <li>
              <t>The Spider MUST NOT hit <tt>entry_point</tt> directly for liveness checks.
Instead, the Spider checks <tt>entry_point + /health</tt> (see Section 5.2).</t>
            </li>
            <li>
              <t>HTTP redirects from <tt>entry_point</tt> are permitted for consuming agents
but MUST NOT be present at <tt>entry_point/health</tt> (the health endpoint
MUST respond directly without redirect).</t>
            </li>
          </ul>
          <t><tt>entry_point/health</tt> is the mandatory liveness endpoint. Every registered
service MUST expose a health endpoint at the path <tt>/health</tt> relative to
<tt>entry_point</tt>. This endpoint:</t>
          <ul spacing="normal">
            <li>
              <t>MUST return HTTP 2xx when the service is operational.</t>
            </li>
            <li>
              <t>MUST return without requiring authentication.</t>
            </li>
            <li>
              <t>MUST respond within a reasonable timeout (RECOMMENDED: 5 seconds).</t>
            </li>
            <li>
              <t>SHOULD return a JSON body of the form <tt>{"status": "ok", "api_version":
"&lt;semver&gt;"}</tt>. If <tt>api_version</tt> is present, the Spider SHOULD cross-check
it against the APM <tt>api_version</tt> field; a mismatch MUST be recorded as
a warning in the Service Record.</t>
            </li>
            <li>
              <t>MUST NOT be used by consuming agents for API calls — it is a
Spider-facing infrastructure endpoint only.</t>
            </li>
          </ul>
          <t><tt>spec.url</tt> is the URL to the machine-readable API specification document
(OpenAPI JSON/YAML, MCP manifest, AsyncAPI document, or GraphQL SDL).</t>
          <ul spacing="normal">
            <li>
              <t><tt>spec.url</tt> MUST use the <tt>https</tt> scheme.</t>
            </li>
            <li>
              <t><tt>spec.url</tt> MUST be publicly accessible without authentication. A spec
behind authentication cannot be fetched by the Spider and permanently
prevents the service from reaching S-2.</t>
            </li>
            <li>
              <t>On the initial Spider run following registration, the Spider fetches
the spec document and stores it as the registered spec snapshot.
All subsequent Spider runs compare the live document at <tt>spec.url</tt>
against this snapshot to detect breaking changes (S-3 assessment).
The snapshot is updated when the Service Owner submits an APM update
that increments <tt>api_version</tt>.</t>
            </li>
            <li>
              <t>An APM update that changes <tt>spec.url</tt> MUST trigger immediate Spider
re-verification and snapshot replacement (see Section 5.1).</t>
            </li>
          </ul>
          <t>The <tt>service_id</tt> MUST be stable across re-registrations and version updates.
It is the canonical identity of the service in the APIX and MUST be a UUID v4
or an APIX-issued deterministic identifier.</t>
        </section>
      </section>
      <section anchor="protocol-type-registry-v10-starter-set">
        <name>Protocol Type Registry (v1.0 starter set)</name>
        <t>The <tt>spec.type</tt> field MUST contain a value from the Protocol Type Registry
at <tt>apix.example.org/registry/protocols</tt>. The registry is the authoritative
and always-current list of valid values. The entries below are the v1.0
starter set for API services; the governing body extends the registry as
additional protocol types reach sufficient adoption. Registry entries
follow the lifecycle defined in <xref target="APIX-CORE"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Registry value</th>
              <th align="left">Standard</th>
              <th align="left">Spider behaviour</th>
              <th align="left">Status</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>openapi</tt></td>
              <td align="left">OpenAPI 3.x</td>
              <td align="left">Parses paths, schemas, auth requirements</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>mcp</tt></td>
              <td align="left">Model Context Protocol</td>
              <td align="left">Parses tool definitions and capability list</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>asyncapi</tt></td>
              <td align="left">AsyncAPI 2.x / 3.x</td>
              <td align="left">Parses channels, message schemas</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>graphql</tt></td>
              <td align="left">GraphQL SDL</td>
              <td align="left">Introspection query to <tt>entry_point</tt>; see below</td>
              <td align="left">active</td>
            </tr>
          </tbody>
        </table>
        <t>Note: IoT device service types (<tt>device-class</tt>, <tt>hub</tt>) are defined in
<xref target="APIX-IOT"/> and are not governed by this profile.</t>
        <section anchor="graphql-spider-behaviour">
          <name>GraphQL Spider Behaviour</name>
          <t>For services with <tt>spec.type: graphql</tt>, the <tt>spec.url</tt> field MUST point to
the GraphQL endpoint (identical to <tt>entry_point</tt> in most deployments). The
Spider MUST issue a standard GraphQL introspection query to that endpoint:</t>
          <sourcecode type="graphql"><![CDATA[
{ __schema {
    queryType { name }
    mutationType { name }
    subscriptionType { name }
    types {
      name
      kind
      fields(includeDeprecated: true) {
        name
        isDeprecated
        type { name kind ofType { name kind } }
        args { name type { name kind ofType { name kind } } }
      }
    }
} }
]]></sourcecode>
          <t>The Spider MUST POST this query as <tt>Content-Type: application/json</tt> with
<tt>{"query": "&lt;introspection query&gt;"}</tt>. A 200 response with a valid JSON
body containing a <tt>data.__schema</tt> object constitutes a successful spec
fetch (S-2 prerequisite).</t>
          <t><strong>Normalised schema representation:</strong> The Spider MUST normalise the
introspection result into a canonical form before storage as the registered
spec snapshot. The canonical form is a sorted JSON object containing:</t>
          <ul spacing="normal">
            <li>
              <t><tt>types</tt>: alphabetically sorted list of non-introspection type names
(excluding built-in scalar and introspection types: <tt>__Schema</tt>, <tt>__Type</tt>,
<tt>__TypeKind</tt>, <tt>__Field</tt>, <tt>__InputValue</tt>, <tt>__EnumValue</tt>, <tt>__Directive</tt>,
<tt>__DirectiveLocation</tt>, <tt>Boolean</tt>, <tt>Int</tt>, <tt>Float</tt>, <tt>String</tt>, <tt>ID</tt>)</t>
            </li>
            <li>
              <t>Per type: <tt>kind</tt>, sorted <tt>fields</tt> list, per field: name, required/optional
status, argument names and types, return type name</t>
            </li>
          </ul>
          <t>Normalisation eliminates cosmetic differences (field order, whitespace) from
breaking change detection.</t>
          <t><strong>Breaking change definition for GraphQL:</strong></t>
          <table>
            <thead>
              <tr>
                <th align="left">Change</th>
                <th align="left">Breaking</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Removed type</td>
                <td align="left">Yes</td>
              </tr>
              <tr>
                <td align="left">Removed field on existing type</td>
                <td align="left">Yes</td>
              </tr>
              <tr>
                <td align="left">Added required argument to existing field</td>
                <td align="left">Yes</td>
              </tr>
              <tr>
                <td align="left">Changed return type of existing field</td>
                <td align="left">Yes</td>
              </tr>
              <tr>
                <td align="left">Added optional field</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">Added new type</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">Added optional argument</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">Deprecated field (marked <tt>isDeprecated: true</tt>)</td>
                <td align="left">No — recorded as metadata warning only</td>
              </tr>
            </tbody>
          </table>
          <t><strong>Introspection disabled:</strong> Some production GraphQL services disable
introspection as a security measure. If the introspection query returns an
error (HTTP 200 with <tt>{"errors": [...]}</tt> containing a message indicating
introspection is disabled, or HTTP 4xx), the Spider MUST set
<tt>spec_consistency: unreachable</tt> and record a metadata warning with code
<tt>graphql_introspection_disabled</tt>. The service CANNOT achieve S-2 without
enabling introspection for the Spider's IP range, or by providing an
alternative static SDL document at a dedicated <tt>spec.url</tt> (in which case
<tt>spec.type</tt> MUST be <tt>graphql</tt> and the Spider will fetch and parse the SDL
document directly instead of issuing the introspection query).</t>
          <t>Services whose specification type is not yet in the registry SHOULD request
addition via the governing body's registry extension process before
registering. Until the type is added, such services cannot achieve S-2 or
above, as the Spider has no parser for unregistered types.</t>
        </section>
      </section>
      <section anchor="capability-taxonomy-registry-v10-starter-set">
        <name>Capability Taxonomy Registry (v1.0 starter set)</name>
        <t>The <tt>capabilities</tt> field MUST contain terms from the Capability Taxonomy
Registry at <tt>apix.example.org/registry/capabilities</tt>. The registry is the
authoritative and always-current list of valid terms. Terms are
hierarchical, dot-separated (e.g., <tt>commerce.marketplace</tt>), and follow
the lifecycle defined in <xref target="APIX-CORE"/>.</t>
        <t>The following are the v1.0 starter set for API services. IoT-specific
capability terms (<tt>iot</tt>, <tt>home.*</tt>) are defined in
<xref target="APIX-IOT"/>. The live registry is the authoritative
source; this list is illustrative only.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Term</th>
              <th align="left">Description</th>
              <th align="left">Status</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>commerce</tt></td>
              <td align="left">E-commerce and marketplaces</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>commerce.marketplace</tt></td>
              <td align="left">Multi-vendor marketplace</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>commerce.retail</tt></td>
              <td align="left">Single-vendor retail</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>payments</tt></td>
              <td align="left">Payment processing</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>payments.card</tt></td>
              <td align="left">Card payment processing</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>payments.crypto</tt></td>
              <td align="left">Cryptocurrency payments</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>data.financial</tt></td>
              <td align="left">Financial data and markets</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>data.legal</tt></td>
              <td align="left">Legal documents and data</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>nlp</tt></td>
              <td align="left">Natural language processing</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>nlp.translation</tt></td>
              <td align="left">Language translation</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>identity</tt></td>
              <td align="left">Authentication and identity</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>communication</tt></td>
              <td align="left">Messaging and notifications</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>storage</tt></td>
              <td align="left">File and object storage</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>compute</tt></td>
              <td align="left">Code execution and computing</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>media</tt></td>
              <td align="left">Image, audio, video services</td>
              <td align="left">active</td>
            </tr>
            <tr>
              <td align="left">
                <tt>search</tt></td>
              <td align="left">Information retrieval</td>
              <td align="left">active</td>
            </tr>
          </tbody>
        </table>
        <t>A Service MUST declare at least one capability term. Declared capabilities
are validated by the Spider against the parsed specification where the spec
type supports it. Services using deprecated taxonomy terms receive a
<tt>standard_warnings</tt> entry in their Service Record.</t>
        <section anchor="hierarchical-semantics">
          <name>Hierarchical semantics</name>
          <t>Capability terms form a strict containment hierarchy expressed by their
dot-separated segments. A term is a <em>sub-capability</em> of every term obtained by
removing one or more trailing segments: <tt>payments.card</tt> is a sub-capability of
<tt>payments</tt>; <tt>logistics.tracking.express</tt> is a sub-capability of both
<tt>logistics.tracking</tt> and <tt>logistics</tt>. Equivalently, declaring a service under a
term asserts that the service is an instance of every ancestor term
(<tt>is_instance_of</tt>).</t>
          <t>Containment MUST be evaluated on whole dot-separated segments, never on raw
character prefixes. A term <tt>T</tt> contains a term <tt>U</tt> if and only if <tt>U</tt> equals
<tt>T</tt>, or <tt>U</tt> begins with <tt>T</tt> immediately followed by a <tt>.</tt> separator. Thus
<tt>payments</tt> contains <tt>payments.card</tt> but does not contain a distinct term that
merely shares a leading substring.</t>
          <t>A service that declares a sub-capability is discoverable under every ancestor
term without separately declaring the ancestors; ancestor expansion is
performed by the index, not by the registrant. This hierarchy is the basis for
hierarchical capability search (see the <tt>capability</tt> search parameter) and for
graph-based discovery.</t>
        </section>
        <section anchor="capability-taxonomy-governance">
          <name>Capability Taxonomy Governance</name>
          <t>The Capability Taxonomy Registry is maintained by the governing body.
The following process governs additions, deprecations, and removals:</t>
          <t><strong>Proposing new terms:</strong></t>
          <t>Any organisation may propose a new taxonomy term. A proposal MUST include:
a candidate term (dot-separated, max 4 levels), a definition (max 200 words),
examples of services that would use it, and evidence of adoption (at minimum
3 registered or planned APIX services that require the term). Proposals
MUST be submitted via the governing body's designated public proposal
mechanism.</t>
          <t><strong>Review cycle:</strong> the governing body reviews taxonomy proposals quarterly. A proposal
is accepted when: the definition is unambiguous, the term does not overlap
with an existing term, and the adoption evidence is credible. Accepted terms
are added as <tt>active</tt> in the next quarterly registry update.</t>
          <t><strong>Versioning:</strong> The Capability Taxonomy Registry is independently versioned.
The registry version is exposed in the APIX root resource (see <xref target="APIX-CORE"/>
Section 9.2). The taxonomy version advances on any addition or deprecation.</t>
          <t><strong>Deprecation:</strong> A term is deprecated when a more precise replacement term
is accepted. Deprecation follows the lifecycle defined in <xref target="APIX-CORE"/>
Section 4.3: 12-month minimum window, 90-day grace period.</t>
          <t><strong>IANA considerations:</strong> The taxonomy is not maintained by IANA. The governing body
is the designated authority. Should a future version of this specification
transfer maintenance to IANA, a mapping document MUST be published.</t>
        </section>
      </section>
      <section anchor="notification-channel-registry-v10-starter-set">
        <name>Notification Channel Registry (v1.0 starter set)</name>
        <t>The <tt>notifications.channels[].type</tt> field MUST contain a value from the
Notification Channel Registry at <tt>apix.example.org/registry/notification-channels</tt>.
The following are the v1.0 starter set. Registry entries follow the lifecycle
defined in <xref target="APIX-CORE"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Registry value</th>
              <th align="left">Transport</th>
              <th align="left">Direction</th>
              <th align="left">Applicable to</th>
              <th align="left">Semantics</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>webhook</tt></td>
              <td align="left">HTTPS POST</td>
              <td align="left">Server → agent</td>
              <td align="left">All service types</td>
              <td align="left">Service posts event payloads to an agent-registered callback URL. Agent provides the callback URL at subscription time via the <tt>registration_url</tt> endpoint. The service MUST include a shared secret in each delivery; agents MUST verify it. At-least-once delivery; agents MUST be idempotent.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>sse</tt></td>
              <td align="left">HTTP Server-Sent Events</td>
              <td align="left">Server → agent</td>
              <td align="left">API services only</td>
              <td align="left">Agent opens a long-lived HTTP GET connection to the service's event stream. No subscription management endpoint required; the <tt>registration_url</tt> field carries the SSE stream URL. Agent reconnects on disconnect per the SSE specification (<xref target="W3C-SSE"/>).</td>
            </tr>
            <tr>
              <td align="left">
                <tt>websocket</tt></td>
              <td align="left">WebSocket (RFC 6455)</td>
              <td align="left">Bidirectional</td>
              <td align="left">API services only</td>
              <td align="left">Agent opens a WebSocket connection to the service. <tt>registration_url</tt> is the WebSocket endpoint. Enables request/response and push notification in a single persistent connection.</td>
            </tr>
          </tbody>
        </table>
        <t><strong>Subscription management:</strong> For <tt>webhook</tt>, the <tt>registration_url</tt> MUST point
to an HTTPS endpoint that accepts a subscription registration payload. The
minimum subscription registration format is:</t>
        <sourcecode type="json"><![CDATA[
{
  "callback_url": "https://agent.example/events",
  "events": ["spec.updated", "status.changed"],
  "secret": "agent-supplied shared secret for HMAC verification"
}
]]></sourcecode>
        <t>The registration endpoint MUST return the subscription identifier and
expiry time. Agents are responsible for renewing subscriptions before expiry.</t>
        <t><strong>Event types:</strong> The <tt>events</tt> field in the APM notification channel and in
subscription requests MUST contain values from the APIX Event Type Registry
at <tt>apix.example.org/registry/event-types</tt>. The v1.0 starter set:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Event type</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>spec.updated</tt></td>
              <td align="left">The service's spec document has changed (new <tt>api_version</tt>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>status.changed</tt></td>
              <td align="left">Service operational status has changed (up/down/degraded)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>trust.changed</tt></td>
              <td align="left">Organisation or service trust level has changed</td>
            </tr>
          </tbody>
        </table>
        <t><strong>Notification channel requirements are OPTIONAL for registration.</strong> Services
that do not support push notifications MUST set <tt>notifications.supported</tt> to
<tt>false</tt>. Consuming agents that require push notifications SHOULD filter by
<tt>notifications.supported: true</tt> before subscribing.</t>
      </section>
      <section anchor="registration-and-onboarding">
        <name>Registration and Onboarding</name>
        <section anchor="push-registration-human-initiated">
          <name>Push Registration (Human-Initiated)</name>
          <t>Service registration MUST be human-initiated. The registrant MUST agree
to the index operator's Terms of Service before any service record is
activated. For O-0 and O-1, self-service portal registration with
accepted Terms of Service satisfies this requirement. For O-2 and above,
registration MUST additionally involve a formal B2B contractual
relationship between the Service Owner and the index operator or its
Accredited Regional Representative.</t>
          <t>Registration MUST be scoped at the <strong>organisation level</strong>. An organisation
registers once and undergoes identity verification once; multiple services
may then be registered under that organisational identity. This requirement
ensures:</t>
          <ul spacing="normal">
            <li>
              <t>Identity verification and sanctions screening are performed once per
legal entity, not repeated per service.</t>
            </li>
            <li>
              <t>Organisation trust (O-level) established at registration propagates
to all services registered under that organisation without re-verification
of the organisation's identity.</t>
            </li>
          </ul>
          <t><strong>Definition:</strong> one service equals one APIX Manifest (APM) document
with one distinct <tt>entry_point</tt>. Logical bundling of API paths under a
single entry point is the registrant's responsibility and is permitted.</t>
          <t>The registration process:</t>
          <ol spacing="normal" type="1"><li>
              <t>The Service Owner (or their Accredited Regional Representative) creates
an Organisation Account in the APIX Registration Portal. The index
operator MUST screen the Service Owner against applicable sanctions
lists before account activation per <xref target="APIX-CORE"/>.</t>
            </li>
            <li>
              <t>The Service Owner provides organisation details sufficient for the
target Organisation trust level. This step is performed once per
organisation.</t>
            </li>
            <li>
              <t>The Service Owner submits an APIX Manifest for each service to be
registered, including the spec URL and entry point. Each service is
associated with a liveness monitoring configuration that determines
Spider check frequency (see Section 5.3).</t>
            </li>
            <li>
              <t>For O-1: email and domain ownership verification is completed
automatically.</t>
            </li>
            <li>
              <t>For O-2: the index operator or Regional Representative verifies the
declared company registration number.</t>
            </li>
            <li>
              <t>For O-3: APIX automatically checks security.txt, DMARC/SPF records,
and declared legal document URLs. No human review required.</t>
            </li>
            <li>
              <t>For O-4 and O-5: the Service Owner engages an Accredited Verifier
(O-4) or submits an audit certificate directly to the governing body (O-5).</t>
            </li>
            <li>
              <t>Upon completion of applicable checks, the service is activated in the
index and the Spider is triggered.</t>
            </li>
          </ol>
        </section>
        <section anchor="accredited-verifier-requirements">
          <name>Accredited Verifier Requirements</name>
          <t>Organisation levels O-4 and O-5 require an Accredited Verifier. To be
accredited by the governing body, a candidate Verifier organisation
MUST satisfy all of the following:</t>
          <t><strong>Independence:</strong> The Verifier MUST have no ownership relationship, employment
relationship, or consulting engagement with any organisation it assesses.
Independence is evaluated per assessment: a Verifier that provided consulting
services to the candidate organisation within the prior 24 months MUST recuse
itself from that assessment and the governing body MUST assign an
alternate Verifier.</t>
          <t><strong>Demonstrated audit competence:</strong> The Verifier organisation MUST hold at
least one of: ISO/IEC 27001 Lead Auditor certification (per ISO/IEC 17021),
SOC 2 attestation authority (AICPA CPA firm licensed for attestation
engagements), or ISAE 3402 Type II authority. At least one named individual
from the Verifier organisation MUST hold a current relevant professional
certification (CISA, CISSP, or equivalent recognised by the governing body).</t>
          <t><strong>APIX trust level:</strong> The Verifier organisation MUST itself be registered
in APIX at O-2 or above.</t>
          <t><strong>Contractual obligation:</strong> The Verifier MUST sign the Verifier Agreement,
which binds it to: the Verifier Standard, liability for negligent
assessments, incident reporting obligations, and annual re-accreditation.</t>
          <t><strong>Annual review:</strong> Accreditation is reviewed annually by the governing body. Failure to
maintain the requirements above or material error in an assessment MUST result
in suspension pending review. The governing body MUST maintain a public registry of all
accredited Verifiers and their current accreditation status.</t>
          <t><strong>Revocation:</strong> the governing body MAY revoke accreditation at any time for material
breach of the Verifier Agreement, demonstrated conflict of interest, or failure
to maintain competence requirements. Revocation is immediate; pending
assessments are transferred to an alternate Verifier at no additional cost to
the assessed organisation.</t>
        </section>
        <section anchor="spider-verification-automated">
          <name>Spider Verification (Automated)</name>
          <t>The APIX Spider is triggered automatically at two points:</t>
          <ul spacing="normal">
            <li>
              <t><strong>At registration</strong>: once a service is activated, the Spider performs
an initial verification run to establish the baseline Service
Verification Level.</t>
            </li>
            <li>
              <t><strong>On schedule</strong>: thereafter, the Spider rechecks the service at the
interval defined by the service's commercial tier (see Section 5.3).</t>
            </li>
          </ul>
          <t>During a Spider run, the Spider:</t>
          <ol spacing="normal" type="1"><li>
              <t>Performs an HTTPS request to <tt>{entry_point}/health</tt> and records the
response code, response time, and timestamp (Liveness: S-1).</t>
            </li>
            <li>
              <t>Fetches the spec document from <tt>spec.url</tt> (HTTPS, no authentication).</t>
            </li>
            <li>
              <t>Parses the fetched document and compares it structurally against the
registered spec snapshot (S-2 if fetchable and consistent; S-3 assessed
if no breaking changes detected across three or more consecutive runs).</t>
            </li>
            <li>
              <t>Updates all Liveness metrics in the Service Record.</t>
            </li>
            <li>
              <t>Records any failures and increments <tt>consecutive_failures</tt>.</t>
            </li>
            <li>
              <t>If the APM contains a <tt>custom</tt> field, records each declared key name
in the index's custom key registry. No values are stored; the <tt>custom</tt>
array contains only key name strings.</t>
            </li>
          </ol>
          <t>The Spider MUST NOT call any API endpoint beyond <tt>{entry_point}/health</tt>
and <tt>spec.url</tt>. The Spider MUST NOT submit data to, create resources in,
or otherwise interact with the production API of a registered service.</t>
          <t>The Spider MUST respect HTTP rate limits declared by the service. Spider
requests MUST include a <tt>User-Agent</tt> header identifying the APIX Spider
and version.</t>
        </section>
        <section anchor="service-verification-level-ceilings">
          <name>Service Verification Level Ceilings</name>
          <t>Certain service configuration states and governing body actions create
hard ceilings on the maximum Service Verification Level achievable or
maintainable. The following table defines all ceiling conditions for
API services. The index MUST enforce these ceilings automatically.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Condition</th>
                <th align="left">Maximum S-level</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>spec.url</tt> requires authentication</td>
                <td align="left">S-1</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>spec.url</tt> unreachable or unparseable</td>
                <td align="left">S-1</td>
              </tr>
              <tr>
                <td align="left">Spec type not in APIX Protocol Type Registry</td>
                <td align="left">S-1</td>
              </tr>
              <tr>
                <td align="left">GraphQL service with introspection disabled and no SDL at <tt>spec.url</tt></td>
                <td align="left">S-1</td>
              </tr>
              <tr>
                <td align="left">Fewer than three consecutive Spider runs completed</td>
                <td align="left">S-2</td>
              </tr>
              <tr>
                <td align="left">Liveness frequency set to <tt>initial</tt> (Spider runs once only)</td>
                <td align="left">S-2</td>
              </tr>
              <tr>
                <td align="left">Active <tt>security_incident</tt> flag set by governing body</td>
                <td align="left">S-2</td>
              </tr>
              <tr>
                <td align="left">No completed security scan or pen test certificate on file</td>
                <td align="left">S-3</td>
              </tr>
            </tbody>
          </table>
          <t><tt>security_incident</tt> is an index-maintained flag, not an APM field. It
is set by the governing body upon receipt of credible breach intelligence
and cleared only after the service owner demonstrates full remediation
and passes a new security scan. The process for setting, contesting, and
clearing this flag — including the evidence threshold, contestation
procedure, and integration with external security feeds — is an open
question (see Section Open Questions).</t>
        </section>
        <section anchor="free-registration-tier-and-abuse-deterrence">
          <name>Free Registration Tier and Abuse Deterrence</name>
          <t>Service registration at O-0 and O-1 trust levels constitutes the free
registration tier. No payment information is required for these levels.
This is a deliberate design choice: requiring payment for O-0 would create a
barrier to early adoption and conflict with the open infrastructure mission.</t>
          <t>The following controls are sufficient at the free tier:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Mandatory Terms of Service acceptance:</strong> All registrations — including
free tier — require agreement to the index operator's Terms of Service
before account activation. For O-0 and O-1, this self-service acceptance
is the sole contractual requirement and creates legal accountability
regardless of tier. For O-2 and above, a formal B2B contract is
additionally required.</t>
            </li>
            <li>
              <t><strong>Sanctions screening at activation:</strong> All organisations are screened
before account activation per <xref target="APIX-CORE"/> Section 7. Sanctioned entities
cannot register at any tier.</t>
            </li>
            <li>
              <t><strong>Default discovery exclusion:</strong> Consuming agents applying standard Trust
Policies (org_level_min O-1 or higher) structurally exclude O-0 services
from results. Abuse at O-0 cannot reach consuming agents that apply
minimum recommended trust filters. Consuming agents that accept O-0
services MUST do so deliberately.</t>
            </li>
            <li>
              <t><strong>Liveness gating:</strong> O-0 services configured at <tt>initial</tt> liveness
frequency are excluded from default search results by default (see
Section 5.3). An abusive operator that registers a fake service and
then takes it offline will be gated out by both trust filtering and
liveness filtering simultaneously.</t>
            </li>
          </ol>
          <t><strong>Payment information on file is NOT required for O-0 or O-1 registration.</strong>
A future version of this specification MAY require payment information on
file (without charge) for O-1 as an additional identity anchor if operational
experience shows the above controls insufficient. This is not normative for
the current version.</t>
        </section>
        <section anchor="liveness-monitoring-configuration">
          <name>Liveness Monitoring Configuration</name>
          <t>Each registered API service MUST have a liveness monitoring configuration
that determines Spider check frequency. This configuration:</t>
          <ul spacing="normal">
            <li>
              <t>Is set per service, not per organisation account. An organisation
MAY configure different check frequencies for different services
registered under the same account.</t>
            </li>
            <li>
              <t>MUST be agreed in the commercial contract between the Service Owner
and the index operator.</t>
            </li>
            <li>
              <t>Determines the maximum age of <tt>last_ping_at</tt> data available to
consuming agents for that service.</t>
            </li>
          </ul>
          <t>Implementations MUST support at minimum the following frequency
classes, identified by their normative <tt>spider_interval</tt> value in
the Service Record:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Frequency class</th>
                <th align="left">Maximum spider_interval</th>
                <th align="left">Normative label</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Initial only</td>
                <td align="left">N/A (one run at activation)</td>
                <td align="left">
                  <tt>"initial"</tt></td>
              </tr>
              <tr>
                <td align="left">Daily</td>
                <td align="left">86,400 seconds</td>
                <td align="left">
                  <tt>"daily"</tt></td>
              </tr>
              <tr>
                <td align="left">Hourly</td>
                <td align="left">3,600 seconds</td>
                <td align="left">
                  <tt>"hourly"</tt></td>
              </tr>
              <tr>
                <td align="left">High-frequency</td>
                <td align="left">300 seconds</td>
                <td align="left">
                  <tt>"high"</tt></td>
              </tr>
            </tbody>
          </table>
          <t>Implementations MAY define additional frequency classes. The
<tt>spider_interval</tt> field in the Service Record MUST reflect the
actual configured interval in seconds.</t>
          <t><strong>Effect on trust signal quality:</strong> A consuming agent applying a
<tt>last_ping_age &lt; N</tt> filter will structurally exclude services whose
check frequency cannot produce sufficiently fresh liveness data.
Liveness monitoring configuration is therefore a market signal:
services requiring discovery by latency-sensitive agents must invest
in check frequency sufficient to satisfy those agents' trust policies.</t>
          <t>Services configured at initial-only frequency MUST be excluded from
standard discovery query results by default. Consuming agents MUST
explicitly opt in to include initial-only services in result sets.</t>
        </section>
      </section>
      <section anchor="spider-and-crawler-specification">
        <name>Spider and Crawler Specification</name>
        <section anchor="crawl-triggers">
          <name>Crawl Triggers</name>
          <t>The Spider is triggered by the following events:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Trigger</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Registration activation</td>
                <td align="left">Immediate first run when a service is activated</td>
              </tr>
              <tr>
                <td align="left">Scheduled interval</td>
                <td align="left">Recurring, per service liveness monitoring configuration (Section 5.3)</td>
              </tr>
              <tr>
                <td align="left">Manual re-trigger</td>
                <td align="left">Service Owner may request a manual re-trigger once per 24 hours</td>
              </tr>
              <tr>
                <td align="left">Spec URL change</td>
                <td align="left">An APM update that changes the <tt>spec.url</tt> triggers an immediate run</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="automated-verification-scope">
          <name>Automated Verification Scope</name>
          <t>The Spider performs the following checks in sequence. Each check's result
is stored independently; a failure at one level does not prevent checks
at other levels from being recorded.</t>
          <t>The Spider MUST use HTTPS for all outbound requests. The Spider MUST NOT
send authentication credentials to any registered service. Spider requests
to <tt>entry_point/health</tt> or <tt>spec.url</tt> MUST NOT include Authorization headers,
API keys, cookies, or client certificates.</t>
          <t>If a request returns an HTTP redirect (3xx), the Spider MUST follow the
redirect only if the redirect target also uses HTTPS. The Spider MUST NOT
follow redirects from HTTPS to HTTP.</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Liveness check</strong>: HTTPS GET to <tt>{entry_point}/health</tt>. Record HTTP
status code, response time, and timestamp. A 2xx response without
authentication constitutes a successful liveness check (S-1). If the
response body is valid JSON containing an <tt>api_version</tt> field, the Spider
MUST cross-check this value against the <tt>api_version</tt> declared in the APM.
A mismatch is recorded as a metadata warning, not a liveness failure.</t>
            </li>
            <li>
              <t><strong>Spec fetch</strong>: HTTPS GET to <tt>spec.url</tt>. The Spider MUST NOT send
authentication credentials. A successful fetch (2xx response, non-empty
body) is the prerequisite for steps 3 and 4. Record content type and
document size.</t>
            </li>
            <li>
              <t><strong>Spec parse and consistency check</strong>: Parse the fetched document
according to the declared <tt>spec.type</tt>. Compare it structurally against
the registered spec snapshot stored at initial registration time.
The Spider MUST set <tt>spec_consistency</tt> to one of three values after
every run:
              </t>
              <ul spacing="normal">
                <li>
                  <t><tt>consistent</tt> — document is fetchable, parseable, and structurally
matches the registered snapshot. Constitutes S-2 verification.</t>
                </li>
                <li>
                  <t><tt>mismatch</tt> — document is fetchable and parseable, but structurally
differs from the snapshot (paths removed, required fields changed,
response schemas changed). S-2 is revoked; <tt>standard_warnings</tt> is
updated. This indicates operator-caused contract breakage.</t>
                </li>
                <li>
                  <t><tt>unreachable</tt> — <tt>spec.url</tt> returned a non-2xx response, was not
reachable, or the document could not be parsed. S-2 is not achieved
or is suspended. This indicates an availability problem, not a
contract violation.
<tt>spec_consistency</tt> MUST be <tt>null</tt> only before the Spider's first run
on a newly registered service. Once any run completes, the field MUST
carry one of the three values above.
The Spider MUST NOT call any API endpoint declared in the spec. Spec
verification is document comparison only.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><strong>Breaking change detection</strong>: Compare the current parsed spec against
the registered spec snapshot. Flag removed paths, changed required
fields, or changed response schemas as breaking changes. Three or more
consecutive runs with no breaking changes detected are required for
S-3 verification.</t>
            </li>
            <li>
              <t><strong>Liveness metrics update</strong>: Update <tt>last_ping_at</tt>, <tt>uptime_30d_percent</tt>,
<tt>avg_response_ms</tt>, <tt>consecutive_failures</tt>, and <tt>next_spider_run_at</tt>.</t>
            </li>
          </ol>
        </section>
        <section anchor="failure-handling">
          <name>Failure Handling</name>
          <t><strong>Liveness failures (<tt>entry_point/health</tt> unreachable):</strong></t>
          <ul spacing="normal">
            <li>
              <t>A single failed ping increments <tt>consecutive_failures</tt> and updates
<tt>last_ping_at</tt> with the failure timestamp.</t>
            </li>
            <li>
              <t>After 3 consecutive failures, the Service Record is flagged as
<tt>status: degraded</tt> in the index.</t>
            </li>
            <li>
              <t>After 10 consecutive failures, the Service Record is flagged as
<tt>status: unreachable</tt> and is excluded from standard search results.</t>
            </li>
            <li>
              <t><tt>contacts.operations</tt> is notified at the 3-failure threshold (incident
warning). Both <tt>contacts.operations</tt> and <tt>contacts.escalation</tt> are
notified at the 10-failure threshold (service unreachable escalation).</t>
            </li>
            <li>
              <t>A service that recovers (next ping succeeds) has its status restored
and <tt>consecutive_failures</tt> reset to 0 automatically.</t>
            </li>
          </ul>
          <t><strong>Spec fetch failures (<tt>spec_consistency: unreachable</tt>):</strong></t>
          <t>Spec fetch failures have distinct probable causes depending on how long
the failure persists. The Spider MUST apply a three-cluster retry model
that targets the likely cause window at each stage. Cluster escalation
is triggered by <tt>spec_fetch_consecutive_failures</tt> crossing a threshold.</t>
          <dl>
            <dt>Cluster 1 — Infrastructure / network (failures 1–3):</dt>
            <dd>
              <t>Cause: transient network loss, host restart, or CDN hiccup.
Retry: 5 min → 15 min → 30 min. No notification.</t>
            </dd>
            <dt>Cluster 2 — Application (failures 4–6):</dt>
            <dd>
              <t>Cause: software instability (crash loop, OOM, startup failure).
Retry: 2 h → 4 h → 8 h.
Notification: email to <tt>contacts.operations</tt> at failure 4.</t>
            </dd>
            <dt>Cluster 3 — Configuration (failures 7+):</dt>
            <dd>
              <t>Cause: persistent misconfiguration — wrong <tt>spec.url</tt>, auth gate
added, URL moved. Retry: 24 h → 72 h (cap).
Notification: email to <tt>contacts.operations</tt> AND
<tt>contacts.escalation</tt> at failure 7.</t>
            </dd>
          </dl>
          <ul spacing="normal">
            <li>
              <t><tt>spec_consistency</tt> is set to <tt>unreachable</tt> on the first failure and
remains <tt>unreachable</tt> until a successful fetch.</t>
            </li>
            <li>
              <t><tt>next_spider_run_at</tt> is set to the next retry timestamp after each
failed run so Service Owners can observe when the retry will occur.</t>
            </li>
            <li>
              <t>A successful spec fetch resets <tt>spec_fetch_consecutive_failures</tt> to 0
and sets <tt>spec_consistency</tt> to <tt>consistent</tt> or <tt>mismatch</tt> as
appropriate.</t>
            </li>
            <li>
              <t><tt>spec_fetch_consecutive_failures</tt> MUST be visible in the Service Record
so Service Owners can monitor retry cluster state without contacting
the Index operator.</t>
            </li>
          </ul>
          <t><strong>Manual re-trigger:</strong></t>
          <t>The Index operator SHOULD provide a mechanism for Service Owners to
request an immediate Spider re-run outside of the scheduled interval.
This is the primary recovery mechanism when a service has been repaired
and the operator does not want to wait for the next scheduled retry.</t>
          <t>When a manual re-trigger is requested:
- <tt>next_spider_run_at</tt> MUST be set to the current timestamp.
- <tt>spec_fetch_consecutive_failures</tt> MUST be reset to 0, returning the
  service to Cluster 1 retry behaviour for the next run.
- The Spider MUST execute the run as soon as scheduling permits.</t>
          <t>The Index MAY rate-limit manual re-triggers to at most once per hour
per service to prevent abuse.</t>
        </section>
      </section>
      <section anchor="index-api-services-layer">
        <name>Index API — Services Layer</name>
        <section anchor="search-and-filter-api">
          <name>Search and Filter API</name>
          <t>The search endpoint applies server-side filters to reduce result sets before
transmission. Only filters on indexed scalar values are server-side;
filters requiring deep metadata evaluation are applied client-side after
fetching the Level 2 Service Record (Section 7.4).</t>
          <t><strong>API version scoping (path segment):</strong></t>
          <t>The optional <tt>{api_version}</tt> path segment scopes the search to services
whose <tt>api_version</tt> starts with the specified major or major.minor prefix.
The segment uses the <tt>v</tt> prefix followed by the semver major or major.minor
value (e.g., <tt>v2</tt>, <tt>v2.4</tt>). When absent, no version constraint is applied.</t>
          <artwork><![CDATA[
GET /search/v2/?capability=payments.card   ← v2.x.x services only
GET /search/v2.4/?q=payment               ← v2.4.x services only
GET /search/?q=payment                    ← no version constraint
]]></artwork>
          <t>The <tt>api_version</tt> immutability invariant (see <xref target="APIX-CORE"/>) means that a
consuming agent pinned to <tt>/search/v2.4/</tt> receives a stable, permanent
schema contract: every result exposes exactly the fields defined for v2.4.</t>
          <t>The index does not perform cross-version mapping. A service registered at
v3.0 does not appear in <tt>/search/v2/</tt> results and is never synthesised into
a v2-shaped response. There are no null substitutions for dropped fields and
no type coercions for changed fields across version boundaries. If a
pinned-version query returns empty results, the agent SHOULD follow the
<tt>superseded_by</tt> link in any previously known Level 2 record to discover the
current version, or issue <tt>GET /search/</tt> with no path segment and no query
parameters to retrieve the version landscape (see <xref target="APIX-CORE"/>). The
parameter-less <tt>/search/</tt> endpoint returns version metadata only and executes
no content query — it is a discovery resource, not a full-index dump.</t>
          <t><strong>Example — buying bot querying for marketplace services:</strong></t>
          <artwork><![CDATA[
GET /search/v2/?capability=commerce.marketplace
              &protocol=mcp,openapi
              &org_level_min=O-2
              &service_level_min=S-2
              &max_ping_age=3600
              &uptime_30d_min=95.0
              &lifecycle_stage=stable
              &page=1
              &page_size=20
]]></artwork>
          <t><strong>Version landscape response (<tt>GET /search/</tt> — no path segment, no query parameters):</strong></t>
          <t>When the search endpoint is called with no <tt>api_version</tt> path segment and
no query parameters, it MUST return the version landscape and MUST NOT
return service records:</t>
          <sourcecode type="json"><![CDATA[
{
  "version_landscape": [
    {
      "api_version_prefix": "v1",
      "service_count": 0,
      "lifecycle_status": "sunset"
    },
    {
      "api_version_prefix": "v2",
      "service_count": 1847,
      "lifecycle_status": "stable",
      "_links": {
        "search": {
          "href": "https://apix.example.org/search/v2/{?...}",
          "templated": true
        }
      }
    },
    {
      "api_version_prefix": "v3",
      "service_count": 4201,
      "lifecycle_status": "stable",
      "_links": {
        "search": {
          "href": "https://apix.example.org/search/v3/{?...}",
          "templated": true
        }
      }
    }
  ]
}
]]></sourcecode>
          <t>Consuming agents that receive empty results from a pinned-version query
MUST use this endpoint to survey the current version landscape before
re-issuing a content query. The <tt>_links.search</tt> template in each entry
provides the correctly scoped search URL for that version prefix.</t>
          <t><strong>Normative server-side filter parameters:</strong></t>
          <table>
            <thead>
              <tr>
                <th align="left">Parameter</th>
                <th align="left">Type</th>
                <th align="left">Default</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>q</tt></td>
                <td align="left">string</td>
                <td align="left">—</td>
                <td align="left">Free-text search across <tt>name</tt> and <tt>description</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>capability</tt></td>
                <td align="left">string</td>
                <td align="left">—</td>
                <td align="left">Capability taxonomy term. MUST be an <tt>active</tt> or <tt>deprecated</tt> registry value. Matched hierarchically by default — see "Hierarchical capability matching" below</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>capability_match</tt></td>
                <td align="left">enum</td>
                <td align="left">
                  <tt>subtree</tt></td>
                <td align="left">Capability match mode: <tt>subtree</tt> returns the term and all its sub-capabilities; <tt>exact</tt> returns only services declaring the exact term</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>protocol</tt></td>
                <td align="left">string</td>
                <td align="left">—</td>
                <td align="left">Comma-separated protocol type values. MUST be values from the Protocol Type Registry</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>org_level_min</tt></td>
                <td align="left">enum</td>
                <td align="left">
                  <tt>O-0</tt></td>
                <td align="left">Minimum Organisation trust level. Excludes services below threshold</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>service_level_min</tt></td>
                <td align="left">enum</td>
                <td align="left">
                  <tt>S-0</tt></td>
                <td align="left">Minimum Service verification level</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>max_ping_age</tt></td>
                <td align="left">integer</td>
                <td align="left">—</td>
                <td align="left">Maximum seconds since <tt>last_ping_at</tt>. Excludes services with older liveness data</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>uptime_30d_min</tt></td>
                <td align="left">float</td>
                <td align="left">—</td>
                <td align="left">Minimum 30-day uptime percentage</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>lifecycle_stage</tt></td>
                <td align="left">enum</td>
                <td align="left">
                  <tt>stable</tt></td>
                <td align="left">Filter by lifecycle stage. Default excludes <tt>experimental</tt>, <tt>beta</tt>, <tt>deprecated</tt>, and <tt>sunset</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>include_superseded</tt></td>
                <td align="left">boolean</td>
                <td align="left">
                  <tt>false</tt></td>
                <td align="left">When <tt>false</tt>, excludes services for which <tt>superseded_by</tt> is set. When <tt>true</tt>, all matching versions are returned</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>spec_consistency</tt></td>
                <td align="left">enum</td>
                <td align="left">—</td>
                <td align="left">Filter by spec consistency status. Values: <tt>consistent</tt>, <tt>mismatch</tt>, <tt>unreachable</tt>. <tt>null</tt> (Spider not yet run) is excluded when any value is specified. When absent, no constraint is applied. Agents performing consequential tasks SHOULD explicitly pass <tt>consistent</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>language</tt></td>
                <td align="left">string</td>
                <td align="left">—</td>
                <td align="left">BCP 47 language tag (<xref target="RFC5646"/>). Returns only services whose <tt>language</tt> array contains the specified tag. Services with no <tt>language</tt> field are treated as <tt>["en"]</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>pricing_model</tt></td>
                <td align="left">enum</td>
                <td align="left">—</td>
                <td align="left">Filter by declared pricing model. Values: <tt>free</tt>, <tt>freemium</tt>, <tt>paid</tt>, <tt>enterprise</tt>, <tt>dynamic</tt>. When absent, no pricing constraint is applied</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>auth_method</tt></td>
                <td align="left">enum</td>
                <td align="left">—</td>
                <td align="left">Filter by supported authentication method. Values: <tt>oauth2</tt>, <tt>api_key</tt>, <tt>bearer</tt>, <tt>mtls</tt>, <tt>none</tt>. Returns services whose <tt>authentication.methods</tt> array contains the specified value</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>deployment_region</tt></td>
                <td align="left">string</td>
                <td align="left">—</td>
                <td align="left">Cloud or jurisdiction region identifier (e.g. <tt>eu-west-1</tt>, <tt>eu</tt>). Returns only services that declare the specified region in <tt>deployment_regions</tt>. Candidate field — see Open Question 8</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>near</tt></td>
                <td align="left">string</td>
                <td align="left">—</td>
                <td align="left">Decimal <tt>lat,lon</tt> coordinate pair (e.g. <tt>48.137,11.576</tt>). When combined with <tt>coverage_radius_km</tt>, returns only services whose declared coverage area overlaps the specified point. Candidate field — see Open Question 8</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>coverage_radius_km</tt></td>
                <td align="left">integer</td>
                <td align="left">—</td>
                <td align="left">Radius in kilometres around the <tt>near</tt> coordinate. Only meaningful when <tt>near</tt> is also specified. Candidate field — see Open Question 8</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>custom_key</tt></td>
                <td align="left">string</td>
                <td align="left">—</td>
                <td align="left">Reverse-domain key name (e.g. <tt>com.example.coverage_polygon</tt>). Returns only services whose <tt>custom</tt> object contains the specified top-level key. Values are not searchable; key presence only</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>page</tt></td>
                <td align="left">integer</td>
                <td align="left">
                  <tt>1</tt></td>
                <td align="left">Result page number</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>page_size</tt></td>
                <td align="left">integer</td>
                <td align="left">
                  <tt>20</tt></td>
                <td align="left">Results per page. Maximum: 100</td>
              </tr>
            </tbody>
          </table>
          <t>All filter parameters are OPTIONAL. When absent, the parameter imposes no
constraint except <tt>lifecycle_stage</tt> (default <tt>stable</tt>), <tt>include_superseded</tt>
(default <tt>false</tt>), and <tt>capability_match</tt> (default <tt>subtree</tt>).</t>
          <t><strong>Hierarchical capability matching.</strong> A <tt>?capability=T</tt> query MUST return every
service whose declared <tt>capabilities</tt> array contains <tt>T</tt> or any sub-capability
of <tt>T</tt>, using the whole-segment containment rule defined under "Hierarchical
semantics" in the Capability Taxonomy Registry section. For example,
<tt>?capability=payments</tt> MUST return services that declared <tt>payments.card</tt> or
<tt>payments.crypto</tt>, not only those that declared <tt>payments</tt> exactly. Setting
<tt>capability_match=exact</tt> restricts the result to services declaring <tt>T</tt>
exactly. Ancestor expansion is performed by the index at query time; a service
need not declare ancestor terms to be discoverable under them.</t>
          <t>Results are returned as paginated Level 1 Search Result records (Section 7.2)
with HATEOAS links to Level 2 Service Records. Pagination is REQUIRED.</t>
          <t><strong>Design note — natural language search is out of scope for the base
specification:</strong>
The APIX search endpoint provides keyword and structured-filter search
only. Semantic or natural-language query processing — where a free-text
prompt such as "find me a low-latency European payment API that handles
refunds" is resolved to a ranked service list by embedding or language
model inference — is explicitly excluded from this version of the
specification. The I-D draft-cui-ai-agent-discovery-invocation
(<xref target="I-D.cui-ai-agent-discovery-invocation"/>) describes this pattern as
an optional registry capability (MAY); APIX does not exercise this
option in the base specification for the reasons stated below.</t>
          <t>Two factors motivate this exclusion. First, semantic search is
computationally expensive at index scale: inference on every incoming
query creates a load profile incompatible with the latency and cost
targets of a globally shared, freely accessible discovery endpoint.
Second, short free-text queries — the form agents will most commonly
submit — are insufficient input for embedding-based retrieval to
reliably outperform structured keyword and capability-taxonomy filters;
the signal-to-noise ratio degrades rapidly below approximately 50 tokens
of context, producing ranking instability that would erode agent trust in
the index.</t>
          <t>The <tt>q</tt> parameter (free-text across <tt>name</tt> and <tt>description</tt>) combined
with the structured filters defined above covers the precision requirements
of well-formed agent queries. Agents requiring relevance ranking beyond
what structured filters provide SHOULD perform client-side re-ranking
over a filtered candidate set fetched from the index.</t>
          <t>Agents requiring semantic selection over a filtered candidate set are
encouraged to implement — or delegate to — a Semantic Routing Platform
(SRP) as described in draft-cui-ai-agent-discovery-invocation
(<xref target="I-D.cui-ai-agent-discovery-invocation"/>): an optional control-plane
layer that performs semantic matching and ranking against a structured
candidate pool. APIX is the natural source for that pool; an SRP queries
APIX with structured filters to obtain a trusted, governed candidate set
and then applies semantic ranking above that foundation. This separation
keeps index infrastructure costs predictable while enabling full semantic
selection capability for agents that need it.</t>
          <t>A future premium tier of the APIX MAY introduce semantic search as a
priced capability (charged per request) once a quality and cost model
acceptable to the governing body and the operator community has
been established. Any such capability would be offered as an optional
endpoint and would not alter the behaviour of the base search endpoint
defined in this specification.</t>
        </section>
        <section anchor="search-result-schema-level-1">
          <name>Search Result Schema (Level 1)</name>
          <t>Search results return lightweight summary records. These contain only the
fields needed to evaluate candidates and decide which detail pages to fetch.
Complex metadata (auth requirements, version history, notifications, legal,
<tt>standard_warnings</tt>) is available only at Level 2 and is evaluated
client-side after fetching the detail resource.</t>
          <sourcecode type="json"><![CDATA[
{
  "service_id": "svc-examplepay-v2",
  "name": "ExamplePay Payment API",
  "description": "Card and subscription payment processing",
  "api_version": "2.4.1",
  "lifecycle_stage": "stable",
  "capabilities": ["payments.card", "payments.subscription"],
  "protocol": "openapi",
  "trust": {
    "organisation_level": "O-4",
    "service_level": "S-2",
    "spec_consistency": "consistent",
    "spec_fetch_consecutive_failures": 0,
    "next_spider_run_at": "2026-04-20T14:55:00Z",
    "liveness": {
      "last_ping_at": "2026-04-20T13:55:00Z",
      "ping_interval_seconds": 3600,
      "uptime_30d_percent": 99.87,
      "consecutive_failures": 0
    }
  },
  "_links": {
    "self": {
      "href": "https://apix.example.org/services/svc-examplepay-v2"
    },
    "latest_stable": {
      "href": "https://apix.example.org/services/svc-examplepay-v2"
    }
  }
}
]]></sourcecode>
          <t>The <tt>latest_stable</tt> link points to the leaf version of the service's version
chain. When <tt>latest_stable</tt> differs from <tt>self</tt>, a newer stable version
exists and the agent SHOULD follow the link before proceeding.</t>
        </section>
        <section anchor="service-record-schema-level-2">
          <name>Service Record Schema (Level 2)</name>
          <t>The full Service Record is returned when a consuming agent fetches the
detail resource via the <tt>self</tt> link. It is the APM plus Spider-enriched
trust metadata, versioning links, and any <tt>standard_warnings</tt>.</t>
          <sourcecode type="json"><![CDATA[
{
  "service_id": "svc-examplepay-v2",
  "apm_version": "1.0",
  "name": "ExamplePay Payment API",
  "description": "Card and subscription payment processing",
  "api_version": "2.4.1",
  "lifecycle_stage": "stable",
  "supersedes": "svc-examplepay-v1",
  "superseded_by": null,
  "owner": { "...": "..." },
  "spec": {
    "type": "openapi",
    "url": "https://example.com/openapi.json",
    "version": "2.4.1"
  },
  "capabilities": ["payments.card", "payments.subscription"],
  "entry_point": "https://api.example.com/v2",
  "trust": {
    "organisation_level": "O-4",
    "organisation_verified_at": "2026-03-01T00:00:00Z",
    "organisation_verifier_id": "verifier-ch-001",
    "service_level": "S-2",
    "service_level_updated_at": "2026-04-19T08:00:00Z",
    "spec_consistency": "consistent",
    "spec_consistency_checked_at": "2026-04-20T13:55:00Z",
    "spec_fetch_consecutive_failures": 0,
    "next_spider_run_at": "2026-04-20T14:55:00Z",
    "liveness": {
      "last_ping_at": "2026-04-20T13:55:00Z",
      "ping_interval_seconds": 3600,
      "uptime_30d_percent": 99.87,
      "avg_response_ms": 142.3,
      "consecutive_failures": 0
    }
  },
  "notifications": { "...": "..." },
  "legal": { "...": "..." },
  "standard_warnings": [],
  "registered_at": "2026-01-15T00:00:00Z",
  "last_updated_at": "2026-04-20T13:00:00Z",
  "_links": {
    "self": {
      "href": "https://apix.example.org/services/svc-examplepay-v2"
    },
    "owner": {
      "href": "https://apix.example.org/organisations/org-examplepay"
    },
    "spec": { "href": "https://example.com/openapi.json" },
    "previous_version": {
      "href": "https://apix.example.org/services/svc-examplepay-v1"
    },
    "latest_stable": {
      "href": "https://apix.example.org/services/svc-examplepay-v2"
    }
  }
}
]]></sourcecode>
        </section>
        <section anchor="trust-metadata-schema">
          <name>Trust Metadata Schema</name>
          <t>Trust metadata is always included in full Service Records (Level 2) and
MUST NOT be omitted or summarised. Consuming agents rely on the full set
of trust fields to evaluate their Trust Policy. Partial trust metadata
MUST be represented with explicit <tt>null</tt> values, not omitted fields.</t>
          <t>Trust metadata is included in summary form (Level 1) for server-side
filter compatibility. The Level 1 trust object omits verification
timestamps and verifier IDs; these are available only at Level 2.</t>
        </section>
        <section anchor="transport-encoding">
          <name>Transport Encoding</name>
          <t>The Index API is consumed by autonomous agents at machine speed. Response
payloads are structured JSON with highly repetitive field names across
result arrays. Transport-layer compression achieves 70–85% size reduction
on typical search result payloads with no information loss and no
application-layer schema changes.</t>
          <t><strong>Compression support requirements:</strong></t>
          <t>The Index API MUST support the following <tt>Accept-Encoding</tt> values:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Encoding</th>
                <th align="left">Requirement</th>
                <th align="left">Notes</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>gzip</tt></td>
                <td align="left">MUST</td>
                <td align="left">Universally supported baseline</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>br</tt> (Brotli)</td>
                <td align="left">SHOULD</td>
                <td align="left">Higher compression ratio than gzip</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>zstd</tt></td>
                <td align="left">SHOULD</td>
                <td align="left">Similar ratio to Brotli; faster decompression</td>
              </tr>
            </tbody>
          </table>
          <t>The Index API MUST perform content negotiation via the <tt>Accept-Encoding</tt>
request header. Responses MUST include a <tt>Content-Encoding</tt> header
identifying the applied encoding. If a client sends no <tt>Accept-Encoding</tt>
header, the server MAY respond uncompressed.</t>
          <t>Consuming agents SHOULD include <tt>Accept-Encoding: zstd, br, gzip</tt> in
all Index API requests.</t>
          <t><strong>Binary encoding (optional):</strong></t>
          <t>The Index API MAY additionally support CBOR (<xref target="RFC8949"/>) as a binary
alternative to JSON. A client that prefers CBOR MUST signal this via
<tt>Accept: application/cbor</tt>. The server MAY respond with
<tt>Content-Type: application/cbor</tt>. CBOR responses carry identical
information to JSON responses; the encoding difference is transparent
to the data model.</t>
          <t>Clients MUST NOT assume CBOR support. JSON over compressed transport
is the normative interchange format.</t>
        </section>
      </section>
      <section anchor="security-considerations">
        <name>Security Considerations</name>
        <section anchor="abuse-and-fake-listings">
          <name>Abuse and Fake Listings</name>
          <t>The mandatory Terms of Service acceptance at registration provides a first
barrier against malicious actors listing fake or harmful services. For O-0
and O-1, identity verification is limited; consuming agents SHOULD NOT rely
solely on index presence for trust at these levels. For O-2 and above, the
formal B2B contractual relationship and progressively stronger identity and
compliance verification substantially raise the cost of abuse.</t>
          <t>Consuming agents SHOULD apply Trust Policies that exclude O-0 services for
any task involving sensitive data or consequential actions.</t>
          <t>The governing body MUST maintain an abuse reporting mechanism and
MUST be able to suspend or remove a Service Record within 24 hours of
confirmed abuse. Suspended service records MUST remain in the index with a
<tt>status: suspended</tt> flag and MUST NOT be silently deleted, to provide
transparency to agents that had cached the record.</t>
        </section>
        <section anchor="trust-level-spoofing">
          <name>Trust Level Spoofing</name>
          <t>Organisation and Service trust levels in the Service Record are set only
by the APIX itself, not by the Service Owner. APM submissions that include
<tt>trust</tt> field values MUST have those values overwritten by the APIX upon
processing. The Index API MUST NOT expose self-asserted trust values.</t>
        </section>
        <section anchor="transport-security-requirements">
          <name>Transport Security Requirements</name>
          <t>All URLs submitted as <tt>entry_point</tt> or <tt>spec.url</tt> values in an APM MUST use
the <tt>https</tt> scheme. The Index MUST reject APM submissions that provide HTTP
(non-TLS) values for these fields.</t>
          <t>The <tt>{entry_point}/health</tt> endpoint MUST NOT require authentication of any
kind. Requiring authentication at <tt>/health</tt> defeats liveness verification and
MUST be treated as a registration defect. The Index MUST record a metadata
warning if the <tt>/health</tt> endpoint returns a 401 or 407 status.</t>
          <t>The <tt>spec.url</tt> endpoint MUST be publicly accessible without authentication.
A <tt>spec.url</tt> that requires authentication cannot be verified by the Spider and
MUST be treated as an S-2 failure until authentication is removed.</t>
          <t>The Spider MUST enforce HTTPS for all outbound requests and MUST NOT follow
redirects from HTTPS to HTTP.</t>
        </section>
        <section anchor="spider-targeted-attacks">
          <name>Spider-Targeted Attacks</name>
          <t>A service that knows when the Spider will visit could serve compliant
responses only to Spider requests, presenting a different interface to
consuming agents. Mitigations:</t>
          <ul spacing="normal">
            <li>
              <t>Spider visit timing MUST be randomised within the liveness monitoring
interval window.</t>
            </li>
            <li>
              <t>Spider <tt>User-Agent</tt> headers MUST be versioned but MUST NOT include
the specific visit schedule.</t>
            </li>
            <li>
              <t>The APIX operator SHOULD perform periodic unannounced spot-checks
from non-Spider infrastructure.</t>
            </li>
          </ul>
        </section>
        <section anchor="bot-consumer-risks">
          <name>Bot Consumer Risks</name>
          <t>The APIX provides discovery and trust metadata. It does not guarantee the
safety, correctness, or availability of listed services. Consuming agents
MUST NOT assume that a service listed in the APIX is safe to use without
applying their own Trust Policy.</t>
          <t>Consuming agents SHOULD treat Index API responses as untrusted input and
validate the structure of Service Records before acting on them.</t>
          <t>The Index API MUST be served exclusively over TLS. Certificate validity
MUST be verified by consuming agents. Agents MUST NOT bypass TLS
certificate verification when querying the Index API.</t>
        </section>
      </section>
      <section anchor="open-questions">
        <name>Open Questions</name>
        <t>The following questions are unresolved and explicitly invited for community
input:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>APM spec type extensions</strong>: What is the formal process for registering
new <tt>spec.type</tt> values? Should this be an IANA registry, or remain under
the governing body governance analogous to the capability taxonomy process?</t>
          </li>
          <li>
            <t><strong>Trust Policy standardisation</strong>: Should the APIX define a standard Trust
Policy expression language, or leave this entirely to consuming agents?
A standard language would enable Index API server-side filtering but risks
constraining agent-side policy flexibility.</t>
          </li>
          <li>
            <t><strong>Regional Representative model</strong>: How are jurisdictional boundaries
defined for Regional Representatives? What happens in jurisdictions with
no appointed Representative — does the central index operator serve as
fallback, or is registration simply unavailable?</t>
          </li>
          <li>
            <t><strong>Bot identity</strong>: This document explicitly excludes bot identity from
scope. Should a future version of the APIX include optional bot consumer
registration to enable personalised discovery, rate limit management, or
abuse tracking?</t>
          </li>
          <li>
            <t><strong>Centralised index vs. decentralised discovery</strong>: The APIX architecture
takes a deliberate position: a single authoritative global index, governed
by a neutral non-profit, with a commercial sustainability model. An
alternative approach — represented by proposals such as
draft-vandemeent-ains-discovery (AINS — AInternet Name Service), which
uses signed, append-only replication logs with no central authority — takes
the opposite position: cryptographic verifiability and censorship resistance
over governed accountability.  </t>
            <t>
Arguments for the APIX model: business adoption requires a contractual
counterparty; institutional co-sponsorship is only available to an
accountable entity; a single entry point minimises agent-side integration
complexity; the supply-side funding model creates a regional development
flywheel that decentralised models cannot replicate.  </t>
            <t>
Arguments for the decentralised model: censorship resistance; no single
point of failure or organisational control; cryptographic verifiability
without trusting the governor.  </t>
            <t>
Community input is explicitly invited on whether the APIX and AINS-style
approaches are mutually exclusive or whether a future APIX version could
expose a verifiable, signed export of index records that enables
third-party verification without requiring a federated registry.</t>
          </li>
          <li>
            <t><strong>Geographic distribution of the index infrastructure</strong>: This specification
defines a single globally stable root entry point (<tt>https://apix.example.org/</tt>)
and leaves index deployment topology to the operator. A conformant
implementation MAY use CDN edge nodes, read replicas, or geographically
distributed origin servers provided the HATEOAS link structure and the
canonical entry-point URL remain stable. The specification intentionally
does not mandate a replication or failover architecture: these are
operational concerns for the governing body as index operator.
A future operational profile MAY specify minimum availability, recovery
time objectives, and regional failover requirements.</t>
          </li>
          <li>
            <t><strong>Breach-driven trust degradation and security feed integration</strong>:
This specification defines a <tt>security_incident</tt> flag that caps
a service at S-2 while active. The following questions are unresolved
and invited for community input:  </t>
            <ul spacing="normal">
              <li>
                <t><strong>Evidence threshold</strong>: What constitutes sufficient evidence for the
governing body to set the <tt>security_incident</tt> flag? A confirmed
breach notification from the service owner, a credible third-party
report, or an entry in a recognised security feed (BSI, CISA KEV,
CERT-Bund, or equivalent national CERT)?</t>
              </li>
              <li>
                <t><strong>Feed integration</strong>: Should APIX consume external security feeds
automatically to detect affected services, or require human review
before setting a flag? Automated feed integration requires APIX to
maintain knowledge of software stacks and versions per service —
information not currently indexed.</t>
              </li>
              <li>
                <t><strong>Aftermath window</strong>: Should a service that has suffered a confirmed
breach be required to remain at a degraded trust level for a minimum
period after remediation is declared (analogous to a probationary
period), or does passing a new security scan immediately restore
the full S-level? If a minimum period applies, what is the appropriate
duration and who determines it?</t>
              </li>
              <li>
                <t><strong>Contestation process</strong>: What is the process by which a service
owner can contest a <tt>security_incident</tt> flag they believe was set
in error?</t>
              </li>
              <li>
                <t><strong>Real-time attack detection</strong>: The current model is retrospective —
the flag is set after a breach is confirmed. Should a future version
define a real-time signal path (for example, a service owner-initiated
incident declaration that immediately and automatically caps the
S-level) to allow proactive trust degradation during an active
attack, before a formal breach is confirmed?</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong>Dynamic pricing negotiation</strong>: This specification defines the
<tt>"dynamic"</tt> pricing model with a <tt>pricing_endpoint</tt> that agents query
to obtain the current price before invocation. The current model is
accept-or-abandon: the agent queries the price, compares it against
its budget ceiling, and either proceeds or abandons the invocation.
A richer interaction model is conceivable — particularly for IoT
services where load-based pricing varies continuously — in which an
agent can submit a counter-offer (maximum acceptable price), request
scheduling at a lower-load time window, or enter a brief negotiation
exchange before committing to an invocation. Such a negotiation
protocol would require a standardised request/response schema beyond
the current pricing endpoint response, and potentially a reservation
or commitment mechanism to hold a quoted price while the agent
confirms with its operator. Community input is invited on whether
dynamic pricing negotiation should be standardised in a future
revision of this specification, and on the appropriate protocol model
(synchronous counter-offer, asynchronous scheduling request, or
market-based auction).</t>
          </li>
          <li>
            <t><strong>Deployment region and service coverage area</strong>: Service geography
is two distinct concepts that the current APM schema does not
distinguish, and both are increasingly relevant for agent-driven
discovery.  </t>
            <t><strong>Deployment region</strong> is a data-residency and compliance concept: in
which cloud regions or legal jurisdictions does the service process
and store data? This matters for GDPR controller obligations, data
localisation regulations, and enterprise procurement rules that
prohibit cross-border data transfer. A service deployed exclusively
in <tt>eu-west</tt> cannot lawfully serve queries whose data must not leave
the European Economic Area.  </t>
            <t><strong>Service coverage area</strong> is a relevance concept: for which
geographic area does the service actually provide value, independent
of where its infrastructure runs? A regional organic food delivery
platform running on US-hosted cloud infrastructure is still only
useful to buyers and sellers located within its delivery catchment.
An agent sourcing local produce for a household in Munich has no use
for a service whose coverage area is the Pacific Northwest, regardless
of that service's technical availability. Coverage area is a
statement about the service's value proposition, not its
infrastructure topology. For sustainability-oriented use cases — such
as minimising transport distance as a proxy for carbon footprint — the
coverage area radius directly determines whether a service is a
candidate for selection at all.  </t>
            <t>
The two concepts can diverge: a globally deployed CDN-backed service
may have a coverage area restricted to a single city; a locally
hosted service may lawfully serve any jurisdiction. Conflating them
into a single <tt>region</tt> field would produce incorrect filtering in
both directions.  </t>
            <t>
A candidate schema extension would introduce two optional fields in
the APM:  </t>
            <t><tt>json
"deployment_regions": ["eu-west-1", "eu-central-1"],
"coverage": {
  "type": "radius",
  "center": { "lat": 48.137, "lon": 11.576 },
  "radius_km": 150
}
</tt>  </t>
            <t>
or alternatively a GeoJSON polygon for irregular coverage areas.
Corresponding search parameters (<tt>deployment_region</tt>, <tt>near</tt>,
<tt>coverage_radius_km</tt>) would allow agents to filter by both dimensions
independently.  </t>
            <t>
Community input is invited on: (a) the appropriate geometry
primitives for coverage area (radius, bounding box, GeoJSON polygon,
or NUTS/ISO 3166-2 administrative codes); (b) whether deployment
region should reference cloud provider region identifiers or legal
jurisdiction codes; (c) how coverage area interacts with the existing
capability taxonomy for services where proximity is intrinsic to the
capability (local logistics, in-person services, regional
marketplaces); and (d) whether coverage area belongs in the base APM
or as a profile extension.</t>
          </li>
        </ol>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC5646">
          <front>
            <title>Tags for Identifying Languages</title>
            <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips"/>
            <author fullname="M. Davis" initials="M." role="editor" surname="Davis"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object. It also describes how to register values for use in language tags and the creation of user-defined extensions for private interchange. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="47"/>
          <seriesInfo name="RFC" value="5646"/>
          <seriesInfo name="DOI" value="10.17487/RFC5646"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC6455">
          <front>
            <title>The WebSocket Protocol</title>
            <author fullname="I. Fette" initials="I." surname="Fette"/>
            <author fullname="A. Melnikov" initials="A." surname="Melnikov"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>The WebSocket Protocol enables two-way communication between a client running untrusted code in a controlled environment to a remote host that has opted-in to communications from that code. The security model used for this is the origin-based security model commonly used by web browsers. The protocol consists of an opening handshake followed by basic message framing, layered over TCP. The goal of this technology is to provide a mechanism for browser-based applications that need two-way communication with servers that does not rely on opening multiple HTTP connections (e.g., using XMLHttpRequest or s and long polling). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6455"/>
          <seriesInfo name="DOI" value="10.17487/RFC6455"/>
        </reference>
        <reference anchor="RFC8414">
          <front>
            <title>OAuth 2.0 Authorization Server Metadata</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <date month="June" year="2018"/>
            <abstract>
              <t>This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8414"/>
          <seriesInfo name="DOI" value="10.17487/RFC8414"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8615">
          <front>
            <title>Well-Known Uniform Resource Identifiers (URIs)</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
              <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8615"/>
          <seriesInfo name="DOI" value="10.17487/RFC8615"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="APIX-CORE" target="https://datatracker.ietf.org/doc/draft-rehfeld-apix-core/">
          <front>
            <title>API Index (APIX): Core Infrastructure for Autonomous Agent Service Discovery</title>
            <author initials="C." surname="Rehfeld">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-rehfeld-apix-core-04"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="W3C-SSE" target="https://html.spec.whatwg.org/multipage/server-sent-events.html">
          <front>
            <title>Server-Sent Events</title>
            <author>
              <organization>WHATWG</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="APIX-IOT" target="https://datatracker.ietf.org/doc/draft-rehfeld-apix-iot/">
          <front>
            <title>APIX IoT Device Profile: Discovery and Presence for Connected Device Services</title>
            <author initials="C." surname="Rehfeld">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-rehfeld-apix-iot-01"/>
        </reference>
        <reference anchor="OPENAPI" target="https://spec.openapis.org/oas/v3.1.0">
          <front>
            <title>OpenAPI Specification 3.1.0</title>
            <author>
              <organization>OpenAPI Initiative</organization>
            </author>
            <date year="2021" month="February" day="15"/>
          </front>
        </reference>
        <reference anchor="MCP" target="https://modelcontextprotocol.io">
          <front>
            <title>Model Context Protocol</title>
            <author>
              <organization>Anthropic</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="ASYNCAPI" target="https://www.asyncapi.com/docs/reference/specification/v3.0.0">
          <front>
            <title>AsyncAPI Specification 3.0.0</title>
            <author>
              <organization>AsyncAPI Initiative</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.meunier-webbotauth-registry">
          <front>
            <title>Registry and Signature Agent card for Web bot auth</title>
            <author fullname="Maxime Guerreiro" initials="M." surname="Guerreiro">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Ulas Kirazci" initials="U." surname="Kirazci">
              <organization>Amazon</organization>
            </author>
            <author fullname="Thibault Meunier" initials="T." surname="Meunier">
              <organization>Cloudflare</organization>
            </author>
            <date day="26" month="May" year="2026"/>
            <abstract>
              <t>   This document describes a JSON based format for clients using
   [DIRECTORY] to advertise information about themselves.

   This document describes a JSON-based "Signature Agent Card" format
   for signature agent using [DIRECTORY] to advertise metadata about
   themselve.  This includes identity, purpose, rate expectations, and
   cryptographic keys.  It also establishes an IANA registry for
   Signature Agent Card parameters, enabling extensible and
   interoperable discovery of agent information.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-meunier-webbotauth-registry-02"/>
        </reference>
        <reference anchor="I-D.cui-ai-agent-discovery-invocation">
          <front>
            <title>AI Agent Discovery and Invocation Protocol</title>
            <author fullname="Yong Cui" initials="Y." surname="Cui">
              <organization>Tsinghua University</organization>
            </author>
            <author fullname="Yihan Chao" initials="Y." surname="Chao">
              <organization>Zhongguancun Laboratory</organization>
            </author>
            <author fullname="Chenguang Du" initials="C." surname="Du">
              <organization>Zhongguancun Laboratory</organization>
            </author>
            <date day="12" month="February" year="2026"/>
            <abstract>
              <t>   This document proposes a standardized protocol for discovery and
   invocation of AI agents.  It defines a common metadata format for
   describing AI agents (including capabilities, I/O specifications,
   supported languages, tags, authentication methods, etc.), a
   capability-based discovery mechanism, and a unified RESTful
   invocation interface.

   This revision additionally specifies an optional extension that
   enables intent-based agent selection prior to discovery and
   invocation, without changing existing discovery or invocation
   semantics.

   The goal is to enable cross-platform interoperability among AI agents
   by providing a discover-and-match mechanism and a unified invocation
   entry point.  Security considerations, including authentication and
   trust measures, are also discussed.  This specification aims to
   facilitate the formation of multi-agent systems by making it easy to
   find the right agent for a task and invoke it in a consistent manner
   across different vendors and platforms.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-cui-ai-agent-discovery-invocation-01"/>
        </reference>
      </references>
    </references>
    <?line 1674?>

<section anchor="change-log">
      <name>Change Log</name>
      <t><strong>-00:</strong> Initial submission.</t>
      <t><strong>-01:</strong> Stream and intended status changed: the document moves from the
Independent Submission stream (Informational) to the IETF stream (Standards
Track), following IETF dispatch guidance. Capability string hierarchy
formalised — "Hierarchical semantics" (<tt>is_instance_of</tt>, whole-segment
containment) added to the Capability Taxonomy Registry, and "Hierarchical
capability matching" (<tt>?capability=</tt> is subtree-match by default,
<tt>capability_match=exact</tt> opt-out, query-time ancestor expansion) added to the
search parameters. Editorial: sentence-initial capitalisation corrected.</t>
      <section anchor="iana-considerations">
        <name>IANA Considerations</name>
        <section anchor="additions-to-the-apix-protocol-type-registry">
          <name>Additions to the APIX Protocol Type Registry</name>
          <t>This document requests the following additions to the Protocol Type
Registry maintained by the governing body at
<tt>apix.example.org/registry/protocols</tt>:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Registry value</th>
                <th align="left">Standard</th>
                <th align="left">Spider behaviour</th>
                <th align="left">Status</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>openapi</tt></td>
                <td align="left">OpenAPI 3.x</td>
                <td align="left">Parses paths, schemas, auth requirements</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>mcp</tt></td>
                <td align="left">Model Context Protocol</td>
                <td align="left">Parses tool definitions and capability list</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>asyncapi</tt></td>
                <td align="left">AsyncAPI 2.x / 3.x</td>
                <td align="left">Parses channels, message schemas</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>graphql</tt></td>
                <td align="left">GraphQL SDL</td>
                <td align="left">Introspects schema via introspection query</td>
                <td align="left">active</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="additions-to-the-apix-notification-channel-registry">
          <name>Additions to the APIX Notification Channel Registry</name>
          <t>This document requests the following additions to the Notification Channel
Registry maintained by the governing body at
<tt>apix.example.org/registry/notification-channels</tt>:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Registry value</th>
                <th align="left">Transport</th>
                <th align="left">Direction</th>
                <th align="left">Status</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>webhook</tt></td>
                <td align="left">HTTPS POST</td>
                <td align="left">Server → agent</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>sse</tt></td>
                <td align="left">HTTP Server-Sent Events</td>
                <td align="left">Server → agent</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>websocket</tt></td>
                <td align="left">WebSocket (RFC 6455)</td>
                <td align="left">Bidirectional</td>
                <td align="left">active</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="additions-to-the-apix-event-type-registry">
          <name>Additions to the APIX Event Type Registry</name>
          <t>This document requests the following additions to the Event Type Registry
maintained by the governing body at
<tt>apix.example.org/registry/event-types</tt>:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Event type</th>
                <th align="left">Description</th>
                <th align="left">Status</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>spec.updated</tt></td>
                <td align="left">Service spec document changed (new <tt>api_version</tt>)</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>status.changed</tt></td>
                <td align="left">Service operational status changed</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>trust.changed</tt></td>
                <td align="left">Organisation or service trust level changed</td>
                <td align="left">active</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="additions-to-the-apix-capability-taxonomy-registry">
          <name>Additions to the APIX Capability Taxonomy Registry</name>
          <t>This document requests the following additions to the Capability
Taxonomy Registry maintained by the governing body at
<tt>apix.example.org/registry/capabilities</tt>:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Term</th>
                <th align="left">Description</th>
                <th align="left">Status</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>commerce</tt></td>
                <td align="left">E-commerce and marketplaces</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>commerce.marketplace</tt></td>
                <td align="left">Multi-vendor marketplace</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>commerce.retail</tt></td>
                <td align="left">Single-vendor retail</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>payments</tt></td>
                <td align="left">Payment processing</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>payments.card</tt></td>
                <td align="left">Card payment processing</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>payments.crypto</tt></td>
                <td align="left">Cryptocurrency payments</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>data.financial</tt></td>
                <td align="left">Financial data and markets</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>data.legal</tt></td>
                <td align="left">Legal documents and data</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>nlp</tt></td>
                <td align="left">Natural language processing</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>nlp.translation</tt></td>
                <td align="left">Language translation</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>identity</tt></td>
                <td align="left">Authentication and identity</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>communication</tt></td>
                <td align="left">Messaging and notifications</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>storage</tt></td>
                <td align="left">File and object storage</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>compute</tt></td>
                <td align="left">Code execution and computing</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>media</tt></td>
                <td align="left">Image, audio, video services</td>
                <td align="left">active</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>search</tt></td>
                <td align="left">Information retrieval</td>
                <td align="left">active</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="references">
        <name>References</name>
        <section anchor="normative-references">
          <name>Normative References</name>
          <ul spacing="normal">
            <li>
              <t><xref target="RFC2119"/> Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.</t>
            </li>
            <li>
              <t><xref target="RFC5646"/> Phillips, A., Davis, M., "Tags for Identifying Languages",
BCP 47, RFC 5646, September 2009.</t>
            </li>
            <li>
              <t><xref target="RFC8259"/> Bray, T., "The JavaScript Object Notation (JSON) Data
Interchange Format", RFC 8259, December 2017.</t>
            </li>
            <li>
              <t><xref target="RFC6455"/> Fette, I., Melnikov, A., "The WebSocket Protocol",
RFC 6455, December 2011.</t>
            </li>
            <li>
              <t><xref target="RFC8414"/> Jones, M., et al., "OAuth 2.0 Authorization Server
Metadata", RFC 8414, June 2018.</t>
            </li>
            <li>
              <t><xref target="RFC8446"/> Rescorla, E., "The Transport Layer Security (TLS)
Protocol Version 1.3", RFC 8446, August 2018.</t>
            </li>
            <li>
              <t><xref target="RFC8615"/> Nottingham, M., "Well-Known Uniform Resource Identifiers
(URIs)", RFC 8615, May 2019.</t>
            </li>
            <li>
              <t><xref target="RFC9110"/> Fielding, R., et al., "HTTP Semantics", RFC 9110,
June 2022.</t>
            </li>
            <li>
              <t><xref target="APIX-CORE"/> Rehfeld, C., "API Index (APIX): Core Infrastructure
for Autonomous Agent Service Discovery",
draft-rehfeld-apix-core-04.</t>
            </li>
          </ul>
        </section>
        <section anchor="informative-references">
          <name>Informative References</name>
          <ul spacing="normal">
            <li>
              <t><xref target="RFC8949"/> Bormann, C., Hoffman, P., "Concise Binary Object
Representation (CBOR)", RFC 8949, December 2020.</t>
            </li>
            <li>
              <t><xref target="OPENAPI"/> OpenAPI Initiative, "OpenAPI Specification 3.1.0",
February 2021.</t>
            </li>
            <li>
              <t><xref target="MCP"/> Anthropic, "Model Context Protocol".</t>
            </li>
            <li>
              <t><xref target="ASYNCAPI"/> AsyncAPI Initiative, "AsyncAPI Specification 3.0.0".</t>
            </li>
            <li>
              <t><xref target="APIX-IOT"/> Rehfeld, C., "APIX IoT Device Profile: Discovery and
Presence for Connected Device Services", draft-rehfeld-apix-iot-01.</t>
            </li>
            <li>
              <t><xref target="W3C-SSE"/> WHATWG, "Server-Sent Events",
https://html.spec.whatwg.org/multipage/server-sent-events.html.</t>
            </li>
            <li>
              <t><xref target="I-D.meunier-webbotauth-registry"/> Meunier, T., et al.,
"Web Bot Authentication Registry".</t>
            </li>
            <li>
              <t><xref target="I-D.cui-ai-agent-discovery-invocation"/> Cui, Y., et al.,
"AI Agent Discovery and Invocation", see Section 7.2.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="authors-address">
        <name>Author's Address</name>
        <t>Carsten Rehfeld
Email: carsten@botstandards.org</t>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+W963LbWJYu+F8RegeEOmZScpO0bnZmyl2TRynbler2rSy7
sut0VIggCYkogwALACWz0q7oX+f3xJx5wn6SWd+67AsIyc6uOufMxGR0lykS
2Ne1117Xbw2Hw+2tNm+L7CTZOX1z/q/JRVbf5NOsSd7U1VWO75/mzbS6yep1
cl5e1WnT1qtpu6qz5Kqqk5+zSULvJWk5S36sWvf6zvZWOpnU2U23XfphmrbZ
dVWvT5KmnW1vzappmS6oo1mdXrXDOptfZcVsmC7zj8NG3xruH2xvNavJIm+a
vCrb9ZKeP3/27jm9Tq2dJIf7h4+H+4+Gh99ub1GfR9tbNIBVO6/qk+2tJBkm
edmcJGej5K00jy+TRPo9S+umzcr4p2yR5sVJMpXf/sukapuWJpnWs2ZU1ddo
v6zqRdrmNxl38fb52eHBwff2+dHj48f2+bvDR+77x8ePHrnvjw+O/efg+ccH
7pnvDw72+TNWcXj2+u2zExlgsGu0MbPsY7KLR/ZoPhVtTs9ena7aqqwW1apJ
Tq+z0m2W3+EdaTpYOPx3x+LR3uRZk5dXlXvyvGyzusza4VNsZe+OTmlww/1j
nUNaX2f03Lxtl83Jw4e0l2lbp9MPWT3Ks/YKK/2Q6OPhHQ09xDZgBJ2N+O77
Y1nwn4/OhhcX3SXDvLN6eIE1eHZD/9v0T5x6P0l+/un03c+/7R/vvF0Uo2aZ
TUe387S9vebxLlZFmy/T6+xhI/001MMw435GeMPt5vnrd5ub+a/JefUueZrx
zvQcQpy0N3VGjU5lW8+qssymbTazl4Kj9j96N/Oq5aP5t24mtfMQrbx+8+wV
rUG8Kq+XWQkqv6CFzq9yYh/EApKj0cFo/+5ts5fOy7zNmTjkZ8cuDob7h8OD
R/1j5z2tqAkaHZ/3h1XaPLxxfb48exOP8WU1ywpsRZt9bLFtbTWtiruHd1q2
87pa5tP+/hdobiqtLbWxUV4x5Vz84dXZxhqdNuty2rdI+/ctknuru0rd8dze
3o5SPEzrMZpWC+xj87DOrrIadMjr5XrFOmm358Ono0W2KnM6BrfZhLgohkF7
f50Tb1qf2DPTVT5M6f/AloYzo/VhXt5U0uYJTvpwOEzSSQOiavH3u3neJDSS
1QIneZZd5SVdXO08S+64ytIyoQXNStwhSVvh0e0tfraPZ0aTomfTNiGCmBTU
4iw8jnzTVMSB6AjSd/6V6iq5De5Hmj1xrbJZLdBIYnfbKDmn2WhnbvwvE/qj
mNFTrTBvasTeGARzXOazrKY7L+zXKGaQFLSjtCZNsqhoh6s6L68TGsJVfr2q
+dkBNZrW07nMg1aJjnzy5xVm1tAVWLb5lLrD6NGlDiCpM+K+NLbpnJ5pkt0X
xN2K5CChqS3Sek0LQi/Il4fJ1aoo9I09+peWtqSFotWXtcCQeN9pIYIbSr4i
4QTLni+WRcab3GLLl7KfdDmXbieiBUqui2qSFsU6uaqrRZLS8lI39AY1QTNb
VnnZDpLsJi1WtGuYWl4ntO9NS781vPm3OR2XVUtTXyf077C6Gk54jT6U1W2R
za4zWZYmK4j5+p55vA2tbXO11oar2zJ5x42/qYp8uh4ZLS/y2azI8Nc//AO4
bV3NiPRoV4S4dYv7SPOXX5w48PlzRPl0OGmviWRWJKxIWyAfOVlEAPRPNnMb
6ej4hF++xucyxc3CHGigi8J/kKiVL+TsEEmgn6ye5mmRVOWkIrmIVpioiV5G
rw0eWBY52vL0M0kbmq5IKzSBUfIOq+VOcC5TEE6Vt8yPEsdk+BjQpoJuptkS
xIF2nRRGT/55lddMJ03SzNOaJppO64rI3+YLwbEZbfIO5gqzJlhwdPYVh5f4
Urz12UeiIJoDybb84E/v3r25ILqbKdEtV5Mib+i8JYt0OqdtI2aYzvCo4wF6
im1wsnw0G2Uu3OwEnCfxfGdap0SVNVY0wxrjcazlss5xIqMFkLnNczr1PN9b
OsK03td5yUeGl5fWc8aN0a6Duphx0JIS56VBNGALYG80huDc0UiZNbY5EYEe
vZLFmRlLJm6tBpiOsPTkVFdKl2ZKI0intJxNjnmO+cRe8uKNk/dvX4zkne7i
dZg1bUSq7SVjvsxXdTFOdlUqGOgdPnA34IBWIPltnS7nv3uRXDx9scf9vHDs
M6X+6f9ppWnlhekm8ywt2jktSzb9QCeirFqdJ626ymdNfk2L2nBjrypIXi2f
riJdZ/VJxFOV+PXPJ/ij5m/LKlnS9bmcrxuaXjGk27TF+IWlMjGfG3+s6iZ5
+f7ineNAOC93nJC8jNnI9tYkuwLpp8tlscaG82GczXIsaVpsvN2GR2hkPOtD
tk5uaWBNsoOR7Azk3+TVa/789tnv3p+/ffYUny9+On3xwn2QJ7a36K/X71/o
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
yPf/hZbAoi0aLOb21v8DN1+eqstTAQA=

-->

</rfc>
