<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.5 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-httpapi-api-catalog-07" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="api-catalog well-known URI">api-catalog: a well-known URI and link relation to help discovery of APIs</title>

    <author initials="K." surname="Smith" fullname="Kevin Smith">
      <organization>Vodafone</organization>
      <address>
        <email>kevin.smith@vodafone.com</email>
        <uri>https://www.vodafone.com</uri>
      </address>
    </author>

    <date />

    <area>IETF</area>
    
    <keyword>internet-draft</keyword>

    <abstract>


<?line 83?>

<t>This document defines the "api-catalog" well-known URI and link 
relation. It is intended to facilitate automated discovery and 
usage of published APIs. A request to the api-catalog resource
will return a document providing information about, and links to,
the publisher's APIs.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-wg-httpapi.github.io/api-catalog/draft-ietf-httpapi-api-catalog.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-httpapi-api-catalog/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Building Blocks for HTTP APIs Working Group mailing list (<eref target="mailto:httpapi@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/httpapi/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/httpapi/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-httpapi/api-catalog"/>.</t>
    </note>


  </front>

  <middle>


<?line 91?>

<section anchor="introduction"><name>Introduction</name>

<t>An application may publish Application Programming Interfaces (APIs)
to encourage requests for interaction from external parties. Such
APIs must be discovered before they may be used - i.e., the external
party needs to know what APIs a given publisher exposes, their
purpose, any policies for usage, and the endpoint to interact with
each API. To facilitate automated discovery of this information, 
and automated usage of the APIs, this document proposes:</t>

<t><list style="symbols">
  <t>a well-known URI <xref target="WELL-KNOWN"/>, 'api-catalog', encoded as a URI 
reference to an API catalog document describing a Publisher's API 
endpoints.</t>
  <t>a link relation <xref target="WEB-LINKING"/>, 'api-catalog', of which the target
resource is the Publisher's API catalog document.</t>
</list></t>

<section anchor="goals"><name>Goals and non-goals</name>

<t>The primary goal is to facilitate the automated discovery of a 
Publisher's public API endpoints, along with metadata that describes
the purpose and usage of each API, by specifying a well-known URI 
that returns an API catalog document. The API catalog document is 
primarily machine-readable to enable automated discovery and usage of
APIs, and it may also include links to human-readable documentation
(see the example in <xref target="api-catalog-example-rfc8615"/>).</t>

<t>Non-goals: this document does not mandate paths for API endpoints. 
i.e., it does not mandate that my_example_api's endpoint should be
<spanx style="verb">https://www.example.com/.well-known/api-catalog/my_example_api</spanx>, nor
even to be hosted at www.example.com (although it is not forbidden to 
do so).</t>

</section>
<section anchor="notational-conventions"><name>Notational Conventions</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
These words may also appear in this document in
lower case as plain English words, absent their normative meanings.
<?line -8?></t>

<t>The terms "content negotiation" and "status code" are from <xref target="HTTP"/>.
The term "well-known URI" is from <xref target="WELL-KNOWN"/>.
The term "link relation" is from <xref target="WEB-LINKING"/>.</t>

<t>The term "Publisher" refers to an organisation, company or individual 
that publishes one or more APIs for usage by external third parties. 
A fictional Publisher named "example" is used throughout this document. 
The examples use the FQDNs "www.example.com", "developer.example.com"
,"apis.example.com", "apis.example.net", "gaming.example.com", 
"iot.example.net",where the use of the .com and .net TLDs and various
subdomains are simply to illustrate that the "example" Publisher may
have their API portfolio distributed across various domains for which
they are the authority. For scenarios where the Publisher "example" 
is not the authority for a given <em>.example.</em> domain then that is made
explicit in the text.</t>

<t>In this document, "API" means the specification resources required 
for an external party (or in the case of 'private' APIs, an internal 
party) to implement software which uses the Publisher's Application 
Programming Interface.</t>

<t>The specification recommends the use of TLS, hence "HTTPS" and 
"https://" are used throughout.</t>

</section>
</section>
<section anchor="usage"><name>Using the 'api-catalog' well-known URI</name>

<t>The api-catalog well-known URI is intended for HTTPS servers that 
publish APIs.</t>

<t><list style="symbols">
  <t>The API catalog MUST be named "api-catalog" in a well-known location
 as described by <xref target="WELL-KNOWN"/>.</t>
  <t>The location of the API catalog document is decided by the Publisher: 
the /.well-known/api-catalog URI provides a convenient reference to
that location.</t>
</list></t>

<t>A Publisher supporting this URI:</t>

<t><list style="symbols">
  <t>SHALL resolve an HTTPS GET request to /.well-known/api-catalog and
return an API catalog document ( as described in <xref target="api-catalog"/> ).</t>
  <t>SHALL resolve an HTTPS HEAD request to /.well-known/api-catalog
with a response including a Link header with the relation(s) defined
in <xref target="link-relation"/></t>
</list></t>

</section>
<section anchor="link-relation"><name>The api-catalog link relation</name>

<t>This document introduces a new link relation <xref target="WEB-LINKING"/>, 
"api-catalog". This identifies a target resource that represents a
list of APIs available from the Publisher of the context resource. 
The target resource URI may be /.well-known/api-catalog , or any
other URI chosen by the Publisher. For example, the Publisher
'example' could include the api-catalog link relation in the HTTP
header and/or content payload when responding to a request to
<spanx style="verb">https://www.example.com</spanx> :</t>

<figure><sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Location: /index.html
Link: </my_api_catalog.json>; rel=api-catalog
Content-Length: 356

<!DOCTYPE HTML>
  <html>
    <head>
      <title>Welcome to Example Publisher</title>
    </head>
    <body>
      <p>
       <a href="my_api_catalog.json" rel="api-catalog">
        Example Publisher's APIs
       </a>
      </p>
      <p>(remainder of content)</p>
    </body>
  </html>

]]></sourcecode></figure>

<section anchor="using-additional-link-relations"><name>Using additional link relations</name>

<t><list style="symbols">
  <t>"item" <xref target="RFC6573"/>. When used in an API catalog document, the 
"item" link relation identifies a target resource that represents an
API that is a member of the API catalog.</t>
  <t>Other link relations may be utilised in an API catalog to convey
metadata descriptions for API links.</t>
</list></t>

</section>
</section>
<section anchor="api-catalog"><name>The API catalog document</name>

<t>The API catalog is a document listing a Publisher's APIs. The
Publisher may host the API catalog document at any URI(s) 
they choose. As illustration, the API catalog document URI of 
<spanx style="verb">https://www.example.com/my_api_catalog.json</spanx> can be requested 
directly, or via a request to
<spanx style="verb">https://www.example.com/.well-known/api-catalog</spanx>, which the
Publisher will resolve to <spanx style="verb">https://www.example.com/my_api_catalog</spanx>.</t>

<section anchor="api-catalog-contents"><name>API catalog contents</name>

<t>The API catalog MUST include hyperlinks to API endpoints, 
and is RECOMMENDED to include useful metadata, such as usage 
policies, API version information, links to the OpenAPI Specification
<xref target="OAS"></xref> definitions for each API, etc. If the Publisher does not 
include that metadata directly in the API catalog document, they 
SHOULD make that metadata available at the API endpoint URIs they 
have listed (see <xref target="api-catalog-example-linkset-bookmarks"/> for 
an example).</t>

</section>
<section anchor="api-catalog-formats"><name>API catalog formats</name>

<t>The Publisher MUST publish the API catalog document in the Linkset
format <spanx style="verb">application/linkset+json</spanx> (section 4.2 of <xref target="RFC9264"/>). 
The Linkset SHOULD include a profile parameter (section 5 of
<xref target="RFC9264"/>) with a Profile URI <xref target="RFC7284"/> value of 'THIS-RFC-URL'
to indicate the Linkset is representing an API catalog document as
defined above. Appendix A includes example API catalog documents 
based on the Linkset format.</t>

<t>The Publisher MAY make additional formats available via 
content negotiation (section 5.3 of <xref target="HTTP"/>) to their 
/.well-known/api-catalog location. A non-exhaustive list of such 
formats that support the automated discovery, and machine (and 
human) usage of a Publisher's APIs, is listed at
<xref target="api-catalog-other-formats"/>. If a Publisher already lists their
APIs in a format other than Linkset but wish to utilise the 
/.well-known/api-catalog URI, then:</t>

<t><list style="symbols">
  <t>They MUST also implement a Linkset with, at minimum, hyperlinks to
API endpoints - see the example of 
<xref target="api-catalog-example-linkset-bookmarks"/> in Appendix A.</t>
  <t>They MAY support content negotiation at the 
/.well-known/api-catalog URI to allow their existing format to be
returned.</t>
</list></t>

</section>
<section anchor="nest"><name>Nesting API catalog links</name>

<t>An API catalog may itself contain links to other API catalogs, by
using the 'api-catalog' relation type for each link.
An example of this is given in
<xref target="api-catalog-example-linkset-nesting"/>.</t>

</section>
</section>
<section anchor="operations"><name>Operational considerations</name>

<section anchor="multiple_domains"><name>Accounting for APIs distributed across multiple domains</name>

<t>A Publisher ("example") may have their APIs hosted across multiple 
domains that they manage: e.g., at <spanx style="verb">www.example.com</spanx>, 
<spanx style="verb">developer.example.com</spanx>, <spanx style="verb">apis.example.com</spanx>, 
<spanx style="verb">apis.example.net</spanx> etc. They may also use a third-party API 
hosting provider which hosts APIs on a distinct domain.</t>

<t>To account for this scenario, it is RECOMMENDED that:</t>

<t><list style="symbols">
  <t>The Publisher also publish the api-catalog well-known URI at each
 of their API domains e.g. 
 <spanx style="verb">https://apis.example.com/.well-known/api-catalog</spanx>, 
 <spanx style="verb">https://developer.example.net/.well-known/api-catalog</spanx> etc.</t>
  <t>An HTTPS GET request to any of these URIs returns the same result,
 namely, the API catalog document.</t>
  <t>Since the physical location of the API catalog document is decided
 by the Publisher, and may change, the Publisher choose one of their
instances of /.well-known/api-catalog as a canonical reference to 
the location of the latest API catalog. The Publisher's other 
instances of /.well-known/api-catalog should redirect to this 
canonical instance of /.well-known/api-catalog to ensure the latest
API catalog is returned.</t>
</list></t>

<t>For example, if the Publisher's primary API portal is 
<spanx style="verb">https://apis.example.com</spanx>, then 
<spanx style="verb">https://apis.example.com/.well-known/api-catalog</spanx> should resolve to 
the location of the Publisher's latest API catalog document. If the 
Publisher is also the domain authority for <spanx style="verb">www.example.net</spanx>, 
which also hosts a selection of their APIs, then a request to 
<spanx style="verb">https://www.example.net/.well-known/api-catalog</spanx> should redirect
to <spanx style="verb">https://apis.example.com/.well-known/api-catalog</spanx> .</t>

<t>If the Publisher is not the domain authority for 
<spanx style="verb">www.example.net</spanx> - or any third-party domain that hosts any 
of the Publisher's APIs - then the Publisher MAY include a link in 
its own API catalog to that third-party domain's API catalog.
For example, the API catalog available 
at <spanx style="verb">https://apis.example.com/.well-known/api-catalog</spanx>) may list APIs 
hosted at <spanx style="verb">apis.example.com</spanx> and also link to the API catalog hosted 
at <spanx style="verb">https://www.example.net/.well-known/api-catalog</spanx> using the 
"api-catalog" link relation:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "linkset": [
    {
      "anchor": "https://www.example.com/.well-known/api-catalog",
      "item": [
        {
          "href": "https://developer.example.com/apis/foo_api"
        },
        {
          "href": "https://developer.example.com/apis/bar_api"
        },
        {
          "href": "https://developer.example.com/apis/cantona_api"
        }
      ],
      "api-catalog": "https://www.example.net/.well-known/api-catalog"
    }
  ]
}
]]></sourcecode></figure>

</section>
<section anchor="internal-use"><name>Internal use of api-catalog for private APIs</name>

<t>A Publisher may wish to use the api-catalog well-known URI on their 
internal network, to signpost authorised users (e.g. company 
employees) towards internal/private APIs not intended for third-party
use. This scenario may incur additional security considerations, as 
noted in <xref target="security"/>.</t>

</section>
<section anchor="scalability"><name>Scalability guidelines</name>

<t>In cases where a Publisher has a large number of APIs, potentially
deployed across multiple domains, then two challenges may arise:</t>

<t><list style="symbols">
  <t>Maintaining the catalog entries to ensure they are up to date and
any errors corrected.</t>
  <t>Restricting the catalog size to help reduce network and 
client-processing overheads.</t>
</list></t>

<t>In both cases a Publisher may benefit from grouping their APIs,
providing an API catalog document for each group - and use the main
API catalog hosted at /.well-known/api-catalog to provide links to
these. For example a Publisher may decide to group their APIs
according to a business category (e.g. 'gaming APIs', 'anti-fraud
APIs etc.) or a technology category (e.g. ''IOT', 'networks', 'AI'
etc.), or any other criterion. This grouping may already be implicit
where the Publisher has already published their APIs across multiple
domains, e.g. at <spanx style="verb">gaming.example.com</spanx>, <spanx style="verb">iot.example.net</spanx>, etc.</t>

<t><xref target="nest"/> shows how the API catalog at
/.well-known/api-catalog can use the api-catalog link relation to
point to other API catalogs.</t>

<t>The Publisher SHOULD consider caching and compression 
techniques to reduce the network overhead of large API catalogs.</t>

</section>
<section anchor="maintenance"><name>Monitoring and maintenance</name>

<t>Publishers are RECOMMENDED to follow operational best practice when
hosting API catalog(s), including but not limited to:</t>

<t><list style="symbols">
  <t>Availability. The Publisher should monitor availability of the API
catalog, and consider alternate means to resolve requests to
/.well-known/api-catalog during planned downtime of hosts.</t>
  <t>Performance. Although the performance of APIs listed in an API
catalog can demand high transactions per second and low-latency
response, the retrieval of the API catalog itself to discover those
APIs is less likely to incur strict performance demands. That said,
the Publisher should monitor the response time to fulfil a request
for the API catalog, and determine any necessary improvements (as
with any other Web resource the Publisher serves). For large API
catalogs, the Publisher should consider the techniques described in
<xref target="scalability"/>.</t>
  <t>Usage. Since the goal of the api-catalog well-known URI is to
facilitate discovery of APIs, the Publisher may wish to correlate
requests to the /.well-known/api-catalog URI with subsequent requests
to the API URIs listed in the catalog.</t>
  <t>Current data. The Publisher should include the removal of stale API
entries from the API catalog as part of their API release lifecycle.
The Publisher MAY decide to include metadata regarding legacy API
versions or deprecated APIs to help users of those APIs discover
up-to-date alternatives.</t>
  <t>Correct metadata. The Publisher should include human and/or
automated checks for syntax errors in the API catalog. Automated
checks include format validation (e.g. to ensure valid JSON syntax)
and linting to enforce business rules - such as removing duplicate
entries and ensuring descriptions are correctly named with valid
values. A proofread of the API catalog as part of the API release
lifecycle is RECOMMENDED to detect any errors in business grammar
(for example, an API entry that is described with valid syntax, but
has been allocated an incorrect or outdated description.)</t>
  <t>Security best practice, as set out in <xref target="security"/>.</t>
</list></t>

</section>
<section anchor="integration"><name>Integration with existing API management frameworks</name>

<t>A Publisher may already utilise an API management framework to
produce their API portfolio. These frameworks typically include the
publication of API endpoint URIs, deprecation and redirection of
legacy API versions, API usage policies and documentation, etc.
The api-catalog well-known URI and API catalog document are intended
to complement API management frameworks by facilitating the discovery
of the framework's outputs - API endpoints, usage policies and
documentation - and are not intended to replace any existing
API discovery mechanisms the framework has implemented.</t>

<t>Providers of such frameworks may include the production of an API
catalog and the publication of the /.well-known/api-catalog URI as a
final pre-release (or post-release) step in the release management
workflow. The following steps are recommended:</t>

<t>If the /.well-known/api-catalog URI has not been published previously
, the framework provider should:</t>

<t><list style="symbols">
  <t>Collate and check the metadata for each API that will be included
in the API catalog. This metadata is likely to already exist in the
framework.</t>
  <t>Determine which metadata to include in the API catalog, following
the requirements set out in <xref target="api-catalog-contents"/> and the
considerations set out in <xref target="operations"/>.</t>
  <t>Map the chosen metadata to the format(s) described in
<xref target="api-catalog-formats"/>. Where only the hyperlinks to APIs are to be 
included in the API catalog, then the structure suggested in 
<xref target="api-catalog-example-linkset-bookmarks"/> may be followed. Where 
possible the API catalog should include further metadata per the 
guidance in <xref target="api-catalog-contents"/>, in which case the structure
suggested in <xref target="api-catalog-example-linkset"/> can be utilised and
adapted (ensuring compliance to <xref target="RFC9264"/>) to reflect the nature
of the chosen metadata.</t>
  <t>Publish the /.well-known/api-catalog URI following the guidance set
out in <xref target="usage"/>.</t>
</list></t>

<t>If the /.well-known/api-catalog URI has previously been published,
the framework provider should:</t>

<t><list style="symbols">
  <t>Include a step in the release management lifecycle to refresh the
API catalog following any changes in API hyperlinks or published
metadata. This could include placing triggers on certain metadata
fields, so that as they are updated in pre-production on the API
framework, the updates are pushed to a pre-production copy of the API
catalog to be pushed live when the release is published by the
framework.</t>
</list></t>

</section>
</section>
<section anchor="conform-rfc8615"><name>Conformance to RFC8615</name>

<t>The requirements in section 3 of <xref target="WELL-KNOWN"/> for defining 
Well-Known Uniform Resource Identifiers are met as described in the
following sub-sections.</t>

<section anchor="path-suffix"><name>Path suffix</name>

<t>The api-catalog URI SHALL be appended to the /.well-known/
path-prefix for "well-known locations".</t>

</section>
<section anchor="formats-and-associated-media-types"><name>Formats and associated media types</name>

<t>A /.well-known/api-catalog location MUST support the Linkset
<xref target="RFC9264"/> format of application/linkset+json, and MAY
also support the other formats via content negotiation.</t>

</section>
<section anchor="registration-of-the-api-catalog-well-known-uri"><name>Registration of the api-catalog well-known URI</name>

<t>See <xref target="iana"/> considerations below.</t>

</section>
</section>
<section anchor="iana"><name>IANA Considerations</name>

<section anchor="the-api-catalog-well-known-uri"><name>The api-catalog well-known URI</name>

<t>This specification registers the "api-catalog" well-known URI in the
Well-Known URI Registry as defined by <xref target="WELL-KNOWN"/>.</t>

<t><list style="symbols">
  <t>URI suffix: api-catalog</t>
  <t>Change Controller: IETF</t>
  <t>Specification document(s): THIS-RFC</t>
  <t>Status: permanent</t>
</list></t>

</section>
<section anchor="the-api-catalog-link-relation"><name>The api-catalog link relation</name>

<t>This specification registers the "api-catalog" link relation by 
following the procedures per section 2.1.1.1 of <xref target="WEB-LINKING"/></t>

<t><list style="symbols">
  <t>Relation Name: api-catalog</t>
  <t>Description: The link target identifies a resource that represents
a list of APIs available from the Publisher of the context resource.</t>
  <t>Reference: THIS-RFC</t>
</list></t>

</section>
<section anchor="the-api-catalog-profile-uri"><name>The api-catalog Profile URI</name>

<t>This specification registers "THIS-RFC-URL" in the "Profile URIs"
 registry according to <xref target="RFC7284"/>.</t>

<t><list style="symbols">
  <t>Profile URI: THIS-RFC-URL</t>
  <t>Common Name: API catalog</t>
  <t>Description: A profile URI to request or signal a Linkset
representing an API catalog.</t>
  <t>Reference: THIS-RFC</t>
</list></t>

<t>RFC Editor's Note: IANA is kindly requested to replace all instances
of THIS-RFC and THIS-RFC-URL with the actual RFC number/URL once
assigned.</t>

</section>
</section>
<section anchor="security"><name>Security Considerations</name>

<t>For all scenarios:</t>

<t><list style="symbols">
  <t>TLS SHOULD be used, i.e. make /.well-known/api-catalog available
exclusively over HTTPS, to ensure no tampering of the API catalog</t>
  <t>The Publisher SHOULD take into account the Security Considerations
from section 4 of <xref target="WELL-KNOWN"/>.</t>
  <t>The Publisher SHOULD perform a security and privacy review of the
API catalog prior to deployment, to ensure it does not leak personal,
business or other sensitive metadata, nor expose any vulnerability
related to the APIs listed.</t>
  <t>The Publisher SHOULD enforce read-only privileges for external
requests to .well-known/api-catalog, and for internal systems and
roles that monitor the .well-known/api-catalog URI. Write privileges
SHOULD only be granted to roles that perform updates to the API 
catalog and/or the forwarding rewrite rules for the
.well-known/api-catalog URI.</t>
  <t>As with any Web offering, it is RECOMMENDED to apply rate-limiting
measures to help mitigate abuse and prevent Denial-of-Service
attacks on the API catalog endpoint.</t>
</list></t>

<t>For the public-facing APIs scenario: security teams SHOULD 
additionally audit the API catalog to ensure no APIs intended solely
for internal use have been mistakenly included. For example, a
catalog hosted on <spanx style="verb">https://developer.example.com</spanx> should not expose
unnecessary metadata about any internal domains
(e.g. <spanx style="verb">https://internal.example.com</spanx>).</t>

<t>For the internal/private APIs scenario: the Publisher SHOULD take
steps to ensure that appropriate controls - such as CORS policies and
access control lists - are in place to ensure only authorised roles
and systems may access an internal api-catalog well-known URI.</t>

<t>A comprehensive API catalog that is regularly audited may assist
the Publisher in decommissioning 'zombie' APIs i.e., legacy/obsolete
APIs that should no longer be available. Such APIs represent a
security vulnerability as they are unlikely to be supported,
monitored, patched or updated.</t>

<t>Note the registration of domain names and associated policies is out
of scope of this document.</t>

</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="HTTP">
  <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="WELL-KNOWN">
  <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="WEB-LINKING">
  <front>
    <title>Web Linking</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <date month="October" year="2017"/>
    <abstract>
      <t>This specification defines a model for the relationships between resources on the Web ("links") and the type of those relationships ("link relation types").</t>
      <t>It also defines the serialisation of such links in HTTP headers with the Link header field.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8288"/>
  <seriesInfo name="DOI" value="10.17487/RFC8288"/>
</reference>
<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="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
<reference anchor="RFC6573">
  <front>
    <title>The Item and Collection Link Relations</title>
    <author fullname="M. Amundsen" initials="M." surname="Amundsen"/>
    <date month="April" year="2012"/>
    <abstract>
      <t>RFC 5988 standardized a means of indicating the relationships between resources on the Web. This specification defines a pair of reciprocal link relation types that may be used to express the relationship between a collection and its members. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6573"/>
  <seriesInfo name="DOI" value="10.17487/RFC6573"/>
</reference>
<reference anchor="RFC9264">
  <front>
    <title>Linkset: Media Types and a Link Relation Type for Link Sets</title>
    <author fullname="E. Wilde" initials="E." surname="Wilde"/>
    <author fullname="H. Van de Sompel" initials="H." surname="Van de Sompel"/>
    <date month="July" year="2022"/>
    <abstract>
      <t>This specification defines two formats and associated media types for representing sets of links as standalone documents. One format is based on JSON, and the other is aligned with the format for representing links in the HTTP "Link" header field. This specification also introduces a link relation type to support the discovery of sets of links.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9264"/>
  <seriesInfo name="DOI" value="10.17487/RFC9264"/>
</reference>
<reference anchor="RFC7284">
  <front>
    <title>The Profile URI Registry</title>
    <author fullname="M. Lanthaler" initials="M." surname="Lanthaler"/>
    <date month="June" year="2014"/>
    <abstract>
      <t>This document defines a registry for profile URIs to be used in specifications standardizing profiles.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7284"/>
  <seriesInfo name="DOI" value="10.17487/RFC7284"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">

<reference anchor="OAS" target="https://spec.openapis.org/oas/latest">
  <front>
    <title>OpenAPI Specification 3.1.0</title>
    <author initials="" surname="Darrel Miller">
      <organization></organization>
    </author>
    <author initials="" surname="Jeremy Whitlock">
      <organization></organization>
    </author>
    <author initials="" surname="Marsh Gardiner">
      <organization></organization>
    </author>
    <author initials="" surname="Mike Ralphson">
      <organization></organization>
    </author>
    <author initials="" surname="Ron Ratovsky">
      <organization></organization>
    </author>
    <author initials="" surname="Uri Sarid">
      <organization></organization>
    </author>
    <date year="2021" month="February" day="15"/>
  </front>
</reference>
<reference anchor="APIsjson" target="http://apisjson.org/format/apisjson_0.16.txt">
  <front>
    <title>APIs.json</title>
    <author initials="" surname="Kin Lane">
      <organization></organization>
    </author>
    <author initials="" surname="Steve Willmott">
      <organization></organization>
    </author>
    <date year="2020" month="September" day="15"/>
  </front>
</reference>
<reference anchor="HAL" target="https://datatracker.ietf.org/doc/html/draft-kelly-json-hal-11">
  <front>
    <title>JSON Hypertext Application Language</title>
    <author initials="" surname="Mike Kelly">
      <organization></organization>
    </author>
    <date year="2020" month="September" day="15"/>
  </front>
</reference>
<reference anchor="RESTdesc" target="http://apisjson.org/format/apisjson_0.16.txt">
  <front>
    <title>RESTdesc</title>
    <author initials="" surname="Ruben Verborgh">
      <organization></organization>
    </author>
    <author initials="" surname="Erik Mannens">
      <organization></organization>
    </author>
    <author initials="" surname="Rick Van de Walle">
      <organization></organization>
    </author>
    <author initials="" surname="Thomas Steiner">
      <organization></organization>
    </author>
    <date year="2023" month="September" day="15"/>
  </front>
</reference>
<reference anchor="WebAPIext" target="https://webapi-discovery.github.io/rfcs/rfc0001.html">
  <front>
    <title>WebAPI type extension</title>
    <author initials="" surname="Mike Ralphson">
      <organization></organization>
    </author>
    <author initials="" surname="Nick Evans">
      <organization></organization>
    </author>
    <date year="2020" month="July" day="08"/>
  </front>
</reference>


<reference anchor="RFC8631">
  <front>
    <title>Link Relation Types for Web Services</title>
    <author fullname="E. Wilde" initials="E." surname="Wilde"/>
    <date month="July" year="2019"/>
    <abstract>
      <t>Many resources provided on the Web are part of sets of resources that are provided in a context that is managed by one particular service provider. Often, these sets of resources are referred to as "Web services" or "Web APIs". This specification defines link relations that represent relationships from Web services or APIs to resources that provide documentation, descriptions, metadata, or status information for these resources. Documentation is primarily intended for human consumers, whereas descriptions are primarily intended for automated consumers. Metadata provides information about a service's context. This specification also defines a link relation to identify status resources that are used to represent information about service status.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8631"/>
  <seriesInfo name="DOI" value="10.17487/RFC8631"/>
</reference>



    </references>


<?line 568?>

<section anchor="api-catalog-example-linkset"><name>Example API catalog documents</name>

<t>This section is informative and provides and example of an API 
catalog document using the Linkset format.</t>

<section anchor="api-catalog-example-rfc8615"><name>Using Linkset with RFC8615 relations</name>

<t>This example uses the Linkset format <xref target="RFC9264"/>, and the following
link relations defined in <xref target="RFC8631"/>:</t>

<t><list style="symbols">
  <t>"service-desc", used to link to a description of the API that is
primarily intended for machine consumption (for example the <xref target="OAS"></xref>
specification YAML or JSON file).</t>
  <t>"service-doc", used to link to API documentation that is primarily
intended for human consumption (an example of human-readable
documentation is the IETF <eref target="https://datatracker.ietf.org/api/submission">Internet-Draft submission API
instructions</eref>).</t>
  <t>"service-meta", used to link to additional metadata about the API, 
and is primarily intended for machine consumption.</t>
  <t>"status", used to link to the API status (e.g. API "health"
indication etc.) for machine and/or human consumption.</t>
</list></t>

<t>Client request:</t>

<figure><sourcecode type="http-message"><![CDATA[
GET .well-known/api-catalog HTTP/1.1
Host: example.com
Accept: application/linkset+json
]]></sourcecode></figure>

<t>Server response:</t>

<figure><sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 OK
Date: Mon, 01 Jun 2023 00:00:01 GMT
Server: Apache-Coyote/1.1
Content-Type: application/linkset+json;
    profile="THIS-RFC-URL"
]]></sourcecode></figure>

<figure><artwork><![CDATA[
{
  "linkset": [
  {
    "anchor": "https://developer.example.com/apis/foo_api",
    "service-desc": [
      {
        "href": "https://developer.example.com/apis/foo_api/spec",
        "type": "application/yaml"
      }
    ],
    "status": [
      {
        "href": "https://developer.example.com/apis/foo_api/status",
        "type": "application/json"
      }
    ],
    "service-doc": [
      {
        "href": "https://developer.example.com/apis/foo_api/doc",
        "type": "text/html"
      }
    ],
    "service-meta": [
      {
        "href": "https://developer.example.com/apis/foo_api/policies",
        "type": "text/xml"
      }
    ]
  },
  {
    "anchor": "https://developer.example.com/apis/bar_api",
    "service-desc": [
      {
        "href": "https://developer.example.com/apis/bar_api/spec",
        "type": "application/yaml"
      }
    ],
    "status": [
      {
        "href": "https://developer.example.com/apis/bar_api/status",
       "type": "application/json"
      }
    ],
    "service-doc": [
      {
        "href": "https://developer.example.com/apis/bar_api/doc",
        "type": "text/plain"
      }
    ]
  },
  {
    "anchor": "https://apis.example.net/apis/cantona_api",
    "service-desc": [
      {
        "href": "https://apis.example.net/apis/cantona_api/spec",
        "type": "text/n3"
      }
    ],
    "service-doc": [
      {
        "href": "https://apis.example.net/apis/cantona_api/doc",
        "type": "text/html"
      }
    ]
  }
  ]
}
]]></artwork></figure>

</section>
<section anchor="api-catalog-example-linkset-bookmarks"><name>Using Linkset with bookmarks</name>

<t>This example also uses the Linkset format <xref target="RFC9264"/>, listing the 
API endpoints in an array of bookmarks. Each link shares the same 
context anchor (the well-known URI of the API catalog) and "item" 
<xref target="RFC9264"/> link relation (to indicate they are an item in the 
catalog). The intent is that by following a bookmark link, a 
machine-client can discover the purpose and usage policy for each 
API, hence the document targeted by the bookmark link should support 
this.</t>

<t>Client request:</t>

<figure><sourcecode type="http-message"><![CDATA[
GET .well-known/api-catalog HTTP/1.1
Host: example.com
Accept: application/linkset+json
]]></sourcecode></figure>

<t>Server response:</t>

<figure><sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 OK
Date: Mon, 01 Jun 2023 00:00:01 GMT
Server: Apache-Coyote/1.1
Content-Type: application/linkset+json;
    profile="THIS-RFC-URL"
]]></sourcecode></figure>

<figure><artwork><![CDATA[
{ "linkset":
 [
   { "anchor": "https://www.example.com/.well-known/api-catalog",
     "item": [
       {"href": "https://developer.example.com/apis/foo_api"},
       {"href": "https://developer.example.com/apis/bar_api"},
       {"href": "https://developer.example.com/apis/cantona_api"}
     ]
   }
 ]
}
]]></artwork></figure>

</section>
<section anchor="api-catalog-other-formats"><name>Other API catalog formats</name>

<t>A non-exhaustive list of other API catalog document formats includes:</t>

<t><list style="symbols">
  <t>An APIs.json document <xref target="APIsjson"></xref>.</t>
  <t>A RESTDesc semantic description for hypermedia APIs <xref target="RESTdesc"></xref>.</t>
  <t>A Hypertext Application Language document <xref target="HAL"></xref>.</t>
  <t>An extension to the Schema.org WebAPI type <xref target="WebAPIext"></xref>.</t>
</list></t>

</section>
<section anchor="api-catalog-example-linkset-nesting"><name>Nesting API catalog links</name>

<t>In this example, a request to the /.well-known/api-catalog URI
returns an array of links of relation type 'api-catalog'. This can be
useful to Publishers with a large number of APIs, who wish to group
them in smaller catalogs (as described in <xref target="scalability"/>).</t>

<t>Client request:</t>

<figure><sourcecode type="http-message"><![CDATA[
GET .well-known/api-catalog HTTP/1.1
Host: example.com
Accept: application/linkset+json
]]></sourcecode></figure>

<t>Server response:</t>

<figure><sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 OK
Date: Mon, 01 Jun 2023 00:00:01 GMT
Server: Apache-Coyote/1.1
Content-Type: application/linkset+json;
    profile="THIS-RFC-URL"
]]></sourcecode></figure>

<figure><artwork><![CDATA[
{
  "linkset": [
    {
      "anchor": "https://www.example.com/.well-known/api-catalog",
      "api-catalog": [
        {
          "href": "https://apis.example.com/iot/api-catalog"
        },
        {
          "href": "https://ecommerce.example.com/api-catalog"
        },
        {
          "href": "https://developer.example.com/gaming/api-catalog"
        }
      ]
    }
  ]
}

]]></artwork></figure>

</section>
</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>Thanks to Jan Algermissen, Phil Archer, Tim Bray, Ben Bucksch, Sanjay
Dalal, David Dong, Erik Kline, Mallory Knodel, Murray Kucherawy, Max
Maton, Darrel Miller, Mark Nottingham, Roberto Polli, Joey Salazar,
Rich Salz, Herbert Van De Sompel, Orie Steele, Tina Tsou,
Gunter Van Der Velde, Eric Vyncke, and Erik Wilde for their reviews,
suggestions and support.</t>

</section>


  </back>

<!-- ##markdown-source:
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

-->

</rfc>

