<?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;">

<!ENTITY RFC8615 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8615.xml">
<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC9264 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9264.xml">
<!ENTITY RFC9110 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9110.xml">
<!ENTITY RFC7231 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7231.xml">
<!ENTITY RFC7284 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7284.xml">
<!ENTITY RFC8288 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8288.xml">
<!ENTITY RFC8631 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8631.xml">
]>

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

<rfc ipr="trust200902" docName="draft-ietf-httpapi-api-catalog-04" 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 78?>

<t>This document defines the "api-catalog" well-known URI and link relation. It is intended to facilitate automated discovery and usage of the APIs published by a given organisation or individual. 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 83?>

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

<t>An organisation or individual 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, 'api-catalog', as a reference to the URI of an API Catalog document describing a Publisher's API endpoints.</t>
  <t>a link relation, 'api-catalog', of which the target resource is the Publisher's API Catalog document.</t>
</list></t>

<section anchor="terminology"><name>Terminology</name>

<t><list style="symbols">
  <t>'Publisher' - an organisation, company or individual that publishes one or more APIs for usage by external third parties.</t>
</list></t>

</section>
<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 <xref target="RFC8615"/> 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.</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 example.com/.well-known/api-catalog/my_example_api , nor even to be hosted at example.com (although it is not forbidden to do so). This document does not mandate a specific format for the API catalog document, although it does suggest some existing formats and provide a recommendation.</t>

</section>
<section anchor="requirements"><name>Requirements Language</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.</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 HTTP(S) servers that publish APIs. As the key aim is to facilitate discovery and usage of APIs, a Publisher supporting this URI:</t>

<t><list style="symbols">
  <t>SHOULD publish the /.well-known/api-catalog URI at a predictable location. For example as companies typically own a .com TLD, a predictable location for the company 'example' would be https://www.example.com/.well-known/api-catalog</t>
  <t>SHALL resolve an HTTP(S) GET request to /.well-known/api-catalog and return an API catalog document ( as described in <xref target="API-CATALOG"/> ).</t>
  <t>SHOULD resolve an HTTP(S) 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>

<t>The location (URL) of the API Catalog document is decided by the Publisher: the./well-known/api-catalog URI provides a convenient reference to that URL.</t>

</section>
<section anchor="LINK-RELATION"><name>Link relations</name>

<t><list style="symbols">
  <t>"api-catalog": the 'api-catalog' link relation 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.com' could include the api-catalog link relation in the HTTP header and/or content payload when responding to a request to https://example.com :</t>
</list></t>

<figure><sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Location: http://www.example.com/
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>

<t><list style="symbols">
  <t>"item" <xref target="RFC9264"/>. 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>
</list></t>

</section>
<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 example.com, developer.example.com, apis.example.com, apis.example.net 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 publish the api-catalog well-known URI at a predictable location, e.g. example.com/.well-known/api-catalog .</t>
  <t>the Publisher also publish the api-catalog well-known URI at each of their API domains e.g. apis.example.com/.well-known/api-catalog, developer.example.net/.well-known/api-catalog etc.</t>
  <t>an HTTP GET request to any of these URIs returns the same result, namely, the API Catalog document.</t>
  <t>since the physical location (URL) 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 , using HTTP Status Code 308 Permanent Redirect <xref target="RFC9110"/>, to ensure the latest API Catalog is returned.</t>
</list></t>

<t>As illustration, if the Publisher's primary API portal is apis.example.com, then apis.example.com/.well-known/api-catalog should resolve to the location of the latest API Catalog document. If the Publisher is also the domain authority for example.net, which also hosts a selection of their APIs, then a request to www.example.net/.well-known/api-catalog SHOULD return a redirect as follows.</t>

<t>Client request:</t>

<figure><sourcecode type="http-message"><![CDATA[
GET /.well-known/api-catalog HTTP/1.1
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.net
]]></sourcecode></figure>

<t>Server response:</t>

<figure><sourcecode type="http-message"><![CDATA[
HTTP/1.1 308 Permanent Redirect
Content-Type: text/html; charset=UTF-8
Location: http://apis.example.com/.well-known/api-catalog
Content-Length: 356

<!DOCTYPE HTML>
  <html>
    <head>
      <title>Permanent Redirect</title>
      <meta http-equiv="refresh" content="0; url=https://apis.example.com/.well-known/api-catalog">
    </head>
    <body>
      <p>Redirected to:  <a href=https://apis.example.com/.well-known/api-catalog>https://apis.example.com/.well-known/api-catalog</a>.</p>
    </body>
  </html>

]]></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="API-CATALOG"><name>The API Catalog</name>

<t>The API Catalog is a document listing hyperlinks to a Publisher's APIs.  The Publisher may host this API Catalog document at any URI(s) they choose. Hence the API Catalog document URI of example.com/my_api_catalog.json can be requested directly, or via a request to example.com/.well-known/api-catalog, which the Publisher will resolve to example.com/my_api_catalog.</t>

<t>The Publisher MUST publish the API Catalog document in the Linkset format application/linkset+json (section 4.2 of <xref target="RFC9264"/>). In addition, the Publisher MAY make additional formats available via content negotiation (section 5.3 of <xref target="RFC7231"/>) 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 below.</t>

<t>The API Catalog document 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 these 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>

<t>Some suitable API Catalog document formats include:</t>

<t><list style="symbols">
  <t>(RECOMMENDED) A linkset <xref target="RFC9264"/> of API endpoints and information to facilitate API usage. 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.</t>
  <t>An APIs.json document <xref target="APIsjson"></xref></t>
  <t>API bookmarks that represent an API entry-point URI, which may be followed to discover purpose and usage</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>

<t>Appendix A includes example API Catalog documents based on the linkset format.</t>

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

<t>The requirements in section 3 of <xref target="RFC8615"/> for defining Well-Known Uniform Resource Identifiers are met as follows:</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="supported-uri-schemes"><name>Supported URI schemes</name>

<t>The api-catalog well-known URI may be used with the HTTP and HTTPS URI schemes.</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 (section 5.3 of <xref target="RFC7231"/>).</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="RFC8615"/>.</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>
  <t>Related information:  The "api-catalog" documents obtained from the same host using the HTTP and HTTPS protocols (using default ports) MUST be identical.</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="RFC8288"/></t>

<t><list style="symbols">
  <t>Relation Name:  api-catalog</t>
  <t>Description:  The link target identifies a catalog of APIs published by the owner of the link context.</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: 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>For the internal/private APIs scenario: the Publisher SHOULD take steps to ensure that appropriate access controls are in place to ensure only authorised users access the internal api-catalog well-known URI.</t>

</section>


  </middle>

  <back>


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

&RFC8615;
&RFC2119;
&RFC8174;
&RFC9264;
&RFC9110;
&RFC7231;
&RFC7284;
&RFC8288;


    </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>
&RFC8631;


    </references>


<?line 270?>

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

<t>This section is informative, and provides and example of an API Catalog document using the RECOMMENDED linkset format.</t>

<section anchor="using-linkset-with-rfc8615-relations"><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.</t>
  <t>"service-doc", used to link to API documentation that is primarily intended for human consumption.</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 (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 of each API, hence the document targeted by the bookmark link should support this.</t>

<t>Note in the example below, the context anchor is example/com/.well-known/api-catalog, however as explained above the  context anchor may be any other URI at which the api-catalog is available.</t>

<t>Client request:</t>

<figure><sourcecode type="http-message"><![CDATA[
GET .well-know/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[
[
  { "anchor": "https://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>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>Thanks to Phil Archer, Ben Bucksch, Sanjay Dalal, Max Maton, Darrel Miller, Mark Nottingham,  Roberto Polli, Rich Salz, Herbert Van De Sompel and Erik Wilde for their suggestions and feedback.</t>

</section>


  </back>

<!-- ##markdown-source:
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
smocdKXUCOsT4BT+B+yKuC9HRwAA

-->

</rfc>

