<?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.35 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-rehfeld-apix-services-00" category="info" submissionType="independent" 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-00"/>
    <author initials="C." surname="Rehfeld" fullname="Carsten Rehfeld">
      <organization/>
      <address>
        <email>carsten@botstandards.org</email>
      </address>
    </author>
    <date year="2026" month="April" day="29"/>
    <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 (semver.org). 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="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 (exact or prefix match). MUST be an <tt>active</tt> or <tt>deprecated</tt> registry value</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>) and
<tt>include_superseded</tt> (default <tt>false</tt>).</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. 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-stripe-v2",
  "name": "Stripe 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-stripe-v2"
    },
    "latest_stable": {
      "href": "https://apix.example.org/services/svc-stripe-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-stripe-v2",
  "apm_version": "1.0",
  "name": "Stripe Payment API",
  "description": "Card and subscription payment processing",
  "api_version": "2.4.1",
  "lifecycle_stage": "stable",
  "supersedes": "svc-stripe-v1",
  "superseded_by": null,
  "owner": { "...": "..." },
  "spec": {
    "type": "openapi",
    "url": "https://stripe.com/openapi.json",
    "version": "2.4.1"
  },
  "capabilities": ["payments.card", "payments.subscription"],
  "entry_point": "https://api.stripe.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-stripe-v2"
    },
    "owner": {
      "href": "https://apix.example.org/organisations/org-stripe"
    },
    "spec": { "href": "https://stripe.com/openapi.json" },
    "previous_version": {
      "href": "https://apix.example.org/services/svc-stripe-v1"
    },
    "latest_stable": {
      "href": "https://apix.example.org/services/svc-stripe-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-00"/>
        </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-00"/>
        </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="20" month="October" year="2025"/>
            <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-01"/>
        </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 1641?>

<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 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-00.</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-00.</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+W963IbV5Yu+D+fIoMdMybVAMSbZJvqGh+Kkm1261aiXO46
HRVEAkiSWUpkojITpFCWK/rX+X1izjxhP8msb132JZGU5Kk+ZyZiHFU2CGTu
y9prr/tlPB4nXdGV+Um6c/rm/F/Ti7y5LeZ5m75p6qsC3z8r2nl9mzeb9Ly6
arK2a9bzbt3k6VXdpD/ns5TeS7NqkT6tO/f6TpLNZk1+2x92J5lnXX5dN5uT
tKiu6mRRz6tsSdMsmuyqGzf5zVVeLsbZqvgwbvWl8f5+0q5ny6Jti7rqNqsc
Ly/yVU7/qrpkQUOepIf7h4/H+8fjw28TmvYoSbJ1d1M3J0majunx9iQ9m6Rv
ZXz6Lk1l3rOsabu8in7Jl1lRnqRz+em/zOqu7WiHWbNoJ3VznSRV3SyzrrjN
Mfrb788ODw6+1Y+PHh8/1o/fHD6ybx8fP3pk3x4fHLuP/tnHB/bAtwcH+/gI
wI3PXr99fsKLCo6JTmKRf0h38cQebaGm0xg4nNN1V1f1sl636ek1AcpOwR/p
Do/sAYV/hoFFZ1HkLY7Mnjuvuryp8m78DCc3eIBzWhgOj5efNdc5PXbTdav2
5OFDOrSsa7L5+7yZFHl3BcA+JGx4eM84D5MEs8dw/+bbY4bwz0dn44uLHqCw
27wZX2Dnz2/p3+3Qdmnak/TnH0/f/fzD4DpvumU5aVf5fHJ3k3V317zO5brs
ilV2nT9sZZKWhh/nPMkEb9jxnb9+t3V6/5qe1+/SZzkfxcA1w1160+Q05FzO
8ayuqnze5Qt7yd+m/6nHV9Tdf8bp0TAPaZDXb56/ot1H4HhNVxj4fEHwLa4K
og10wdOjycFk/76jslfOq6IrGBf4V0cDDsb7h+ODR4Or5mOsaQBaF9/kh3XW
Pry1+V6evYlW97Je5CWg3+UfOpxUV8/r8r6FnVbdTVOvivng1EuMNZehVjrS
pKiBJxd/fHXWB8xpu6nmQ5DZvx8y7p0eaPpLubu7m2R4lqAwmddLnFv7sMmv
8gYox1ByUwI6Muf5+Nlkma+rgtD9Lp8RUcQa6KivCyI7mxN9ZL4uxhn9DwRn
vDCkHhfVbS0jniTJeDxOs1kLBOqS5N1N0aa0hvUSN3WRXxUV8Z/uJk/v4UhZ
lRIU8wrcIO1qPJrwo0OEMNoNPZp1KZ3/rKQBF+GVA7uoibjQLaOv/Bv1VXoX
MDnaNpGjql0vMUZqLGqSnneJTuUW/zKlP8oFPdQJPaYx7IVRsMFVscibJJrV
UGSUlnSMBI82XdZ0rHVTVNcpLeCquF43/OyIxsya+Q1vggBE1zr9yxq7aomP
VV0xp8mwdEyo06dNTjSVVja/oWfadPcF0a4yPUhpX8us2SR4Xr47TK/WZakv
7NF/CaoVAYngLnDAgvi0CQgBx5GvEgZ4sVyVOZ9uh7NeyUESf63cGUTASa/L
epaV5Sa9auplmiVEua7pBRqBtrWqi6obpfltVq7pvLCvoknpwNuOfmv51O8K
uh7rjva9Sem/4/pqPAN83lf1XZkvrnMBSZuXRFj9vLzalsDaXm103PquSt/x
2G/qsphvJoK+y2KxKPMk+Yd/ACVt6gWhGx0GsFmPdQgZf/nFMfVff41Qne4h
HTChyZrkDB4JGCO3iA6d/pMv3Ok5xD3hd6/xucrALpjMjBQY/EeyKJZyVQgN
MEvezIusTOtqVpNAQ4AlBKJ3MWeLB1ZlgaE8zsyyNk9E4qDVT9J3AJK7r4Ws
X+hR0THZSR0xYbynkwSuzPMVIQRGdeITPfiXddEwbrRpe5M1tMts3tSE77ZZ
yHvtpE8mmAAs2gDUmOkLbupJEp92/oFwhtafkoiH53589+7NBWHaQtFstZ6V
RUu3K11m8xs6L6J42QKPJjFpsaUJ4GgnSkd41BloTOpJzLzJCA8bAJMYfYKn
AcVVU+D6RXuXjd0UdMN5s3d0XwnS10XFN4QBS6Bc8FgJ4xTTCAImkVdaQgsS
ADpGKwhuGa2TSWBX0OHrRatYNFmwlJH455ocRDs9VRgpUOY0ezYnQLYFtjjl
23nJYJumP719MeFX+lDrEWQ6gUyHS6fMn9dNOU13lc2PhC2PHHMb0d7TH5ps
dfP7F+nFsxd7mOWFo5EZTU7/JwgTxIWwpjd5VnY3BJB8/p7uQFV3ukMCt0pZ
bXFN0Gwx1qsaAlTHt6nMNnlzEhFORXf98wn+aPjbqk5XxBlXN5uW9laOiVF2
tHihm4S+50YD66ZNX/508c7RGVyPe25EUcUkI5nlV8D1bLUqNzhlvnqLRQFY
ZuXWy114ZyZCnN7nm/SO1tSmO1jGzkj+m756zZ/fPv/9T+dvnz/D54sfT1+8
cB/kiYT+eP3TC/0dn/ybZ69fvnz+6pm8/PL0jztyF3Zev3l3/vrV6YsdW1Pi
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
uuWWMgfaQ1Nc2innf73tVXpPLyyU5qNFG/qSPvwrurjeU/NeE16RqoXQKwTc
HE0+pFxMv2VDI3eF1i7P2pAy9ITQo2oLkkLqc8k0Y0PCmdR582Bxw3Z1XYq9
RgEY15+Tco3xyKyQ6VJP8RlrPaS1PoxXDLW2ykta65KkHy6ZqS2q4/FYdv0L
F4T+AR9//yK9ePaC/jqvzMTXGhtCclnhvi5cC6JgxE/gWNiIMz2T5f3dqDY0
6H8axoWelLEB9B7s8yH1H9NnxtE/i3d3+eymrt8D+hJY/OY15yZeSCIXupmK
DB0fWiv14/GKPjq+wFPPbxUXP/M+TdvWJFt1XIU+n13wH+nu2+/P0sfHjx4h
1/Fp4QSTrPzCI+b5/3NoyNBQf+dxchfDMWQWPUSZo7MeGUFnjHuOzarnT7RU
wFRBDUGSoyh9Q3vt7LXLYZFh35+9/llKTL6+EI4YunS1CbUNGw/B5udwhCgP
pg6aOQZumoGhPnGyQbeOd8ZG/94j9mMmW2P+vVc3rKAih42svd9wzNZRC+B8
Pra/mECH3Lx3EkN9uJgRrMuuGBO6LXpNvu55veFCQYwMrGDYq/J97y2rBTNl
6t8vp3PPw1xJZsp9WIhlblfhufc1DhLiF/mTmN3mGxuiDxGOdicGR4ppkZXS
g0P/EIONh+jgqywR4rUXbA4zJNOydtxDJHqpKpnzvuoXjL53Z/TChHVo6/NM
U7l2Dv773lsW7slsuJcVhOABiwbdPl+YONxML5k3W5XMqBrKFpmoGy1l/j0H
NcC6K2US9KftuUiT4BfOUDVWWtrZAuXXbWiwPwzvnC85oDlbL4p6lEJm901E
+0vTFkiQGbyT2pffDSkMZNO3phOoSOrbG4W/jFPOpT48OPj211/Tp6TEcODC
xYS0yH/JUfARUVoQ5WElIWGZHmbSck5Kzlw8tGFhAM4VJB2Ve3YcHI/wfIrR
R+lL1gUPvv1W+noH/TvSNzdFWRYrEqNOaeJnJE7Sx5dYw7vsWqY/D7LiDXNE
F5buIDITxqPV56su52Lzh/v73/rZvjl8pLvcjNJ3PDxRvH/ObrMLplbpazlq
Ene0tzp0tz1aEFttz4N05+8ZmjsyK8YdofOCTXoQbBGcnib9Pu86OulzmvVl
XlbF+/pWdstr8NKBia+8NZMU4sEPgh0dHxzT4P9cV7lCDP7gEsO+xoUhmXWf
b07dFH+VPYnQQoNbaRbbxDGO65/XVY45vgnn4DN6SyS9bspslD63VXtpjDsS
+zTHXSQP0hROFre+gAeTIzcdTup0fQ1e2Zvw8QEgRqeAq3OTLRUXfkaB43/h
dpk/VQXbX99ajbdzr+HSvLs/vT1v92wmGg7Yt8E0ATZ8e3Cwj4OBOYcdm29D
8KnUJ/VaWx0Kr+BcFEqHhzpa0B+TlnRzRSOO0jMMA71B0gt28dDeCSwkyDgI
7ZSJmF9PffWTU6mvpwLFM/OIMFJIoHQj04zBnIlxNvl4f18Tpxx9GL7rUjch
fcpxhJWs88f66or+GqVvsGhSpbhUu5ZskFvBF91nCuB2oHqAgzKNGqHp4b4C
5/Wb569o7zSlKX3nEjlQIJd9x768iNzrRxMrgPd9PmvWWAYNaZj/8uwNDXda
dTdNvSrmNMqwDrhj53Pxx1dnsganzUWLcN/2V7FPqwgP+fz1u6Ez/lf4qGn3
fFxvxG5w4s+Nc65wHYJ0f1prJbFS+pp1HiKADhxxUXdywljKz0dn44sLYNvP
P56++/kHWsS2gsLQszjUm25ZTlioRqTN3TXLcUvISyhQ+9DyXiC6swDfTvgN
mQ5VrJc5sVR6hJSaGZFHIiljEwNpGS/lV6GqeododrqyM87j6zFvkz93ggm+
oEx2erYuRukf4ylOz/W2RNCm47X3dkbclyXooaHpX0IXv2ohjCPJKElISkMl
Ojvf5DnJxwgBl6//C23cXMUtAJj832yXYnTPQQEA

-->

</rfc>
