[{"data":1,"prerenderedAt":30},["ShallowReactive",2],{"clay-page:\u002Ffeatures\u002Fopenapi":3},{"html":4,"toc":5,"description":26,"hero":27,"list":28,"socialImage":29},"\u003Ch1 id=\"openapi\">OpenAPI \u003Cspan class=\"badge badge-sm badge-soft badge-success clay-badge\">New in Clay 5\u003C\u002Fspan>\u003C\u002Fh1>\n\u003Cp>Name an OpenAPI document in \u003Ccode>clay.yaml\u003C\u002Fcode>, and Clay makes a page for each of its operations, tags and schemas. They come below the docs in the navigation, under a line, and are searched, checked and read by agents like every other page. The \u003Ca href=\"\u002Fclay-example-repo\u002Fapi\u002Fpetstore\" data-route=\"\u002Fapi\u002Fpetstore\">Petstore API\u003C\u002Fa> of this site is made that way, from Swagger’s sample API.\u003C\u002Fp>\n\u003Cdiv class=\"code-block has-title\">\u003Cdiv class=\"code-title\">\u003Ci class=\"fa-regular fa-file-lines\" aria-hidden=\"true\">\u003C\u002Fi>\u003Cspan>clay.yaml\u003C\u002Fspan>\u003C\u002Fdiv>\u003Cpre class=\"shiki shiki-themes light-plus dark-plus\" style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4;--shiki-light-bg:#FFFFFF;--shiki-dark-bg:#1E1E1E\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#800000;--shiki-dark:#569CD6\">openapi\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">:\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">  - \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#800000;--shiki-dark:#569CD6\">spec\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#0000FF;--shiki-dark:#CE9178\">openapi\u002Fpetstore.yaml\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#800000;--shiki-dark:#569CD6\">    title\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#0000FF;--shiki-dark:#CE9178\">Petstore API\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#006400;--shiki-dark:#6A9955\">     # default: the document's title\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#800000;--shiki-dark:#569CD6\">    route\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#0000FF;--shiki-dark:#CE9178\">api\u002Fpetstore\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#006400;--shiki-dark:#6A9955\">     # default: api\u002F and the file's name\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#800000;--shiki-dark:#569CD6\">    icon\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#0000FF;--shiki-dark:#CE9178\">fa-solid fa-paw\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#006400;--shiki-dark:#6A9955\">   # default: a plug\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003Cbutton type=\"button\" class=\"copy-code btn btn-sm btn-square btn-ghost\" title=\"Copy code\" aria-label=\"Copy code\">\u003Ci class=\"fa-solid fa-copy\">\u003C\u002Fi>\u003C\u002Fbutton>\u003C\u002Fdiv>\n\u003Cp>Clay reads OpenAPI 3.0 and 3.1, and Swagger 2.0, as YAML or JSON. References (\u003Ccode>$ref\u003C\u002Fcode>) may lead to other files of the project. \u003Ccode>clay check\u003C\u002Fcode> and \u003Ccode>clay build --strict\u003C\u002Fcode> report what the OpenAPI specification does not allow, with the place in the document.\u003C\u002Fp>\n\u003Cdiv class=\"markdown-alert markdown-alert-tip\">\n\u003Cp class=\"markdown-alert-title text-primary\">\u003Ci class=\"fa-solid fa-lightbulb mr-2\">\u003C\u002Fi>Tip\u003C\u002Fp>\n\u003Cp>A document that lives elsewhere, e.g. one your API serves, is downloaded before every build with \u003Ca href=\"\u002Fclay-example-repo\u002Fwriting\u002Fgenerated-docs\" data-route=\"\u002Fwriting\u002Fgenerated-docs\">\u003Ccode>generate\u003C\u002Fcode>\u003C\u002Fa>: \u003Ccode>curl -o openapi\u002Fapi.json https:\u002F\u002Fapi.example.com\u002Fopenapi.json\u003C\u002Fcode>.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"the-pages\">\u003Ca class=\"heading-anchor\" href=\"#the-pages\" aria-label=\"Link to this section\" data-route=\"#the-pages\">#\u003C\u002Fa>The pages\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Page\u003C\u002Fth>\n\u003Cth>What it shows\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>Overview\u003C\u002Ftd>\n\u003Ctd>Version and description, the servers, every way to authenticate, the operations by tag, and the document to download\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Tag\u003C\u002Ftd>\n\u003Ctd>Its description and its operations\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Operation\u003C\u002Ftd>\n\u003Ctd>A request cell to try it, the credentials it needs, its parameters, request body and responses (with headers, examples and links) and its callbacks\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Webhook\u003C\u002Ftd>\n\u003Ctd>The request the API sends to your server\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Schema\u003C\u002Ftd>\n\u003Ctd>Its properties, nested ones included, and an example\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cp>Schemas with a name of their own are linked to their page wherever they appear, so a pet’s \u003Ccode>category\u003C\u002Fcode> leads to the page of \u003Ccode>Category\u003C\u002Fcode>. Operations show their method in the navigation; deprecated ones are struck through. The interface texts of the pages are in the language of each edition; the document’s own texts stay as written.\u003C\u002Fp>\n\u003Ch2 id=\"request-cells\">\u003Ca class=\"heading-anchor\" href=\"#request-cells\" aria-label=\"Link to this section\" data-route=\"#request-cells\">#\u003C\u002Fa>Request cells\u003C\u002Fh2>\n\u003Cp>A request cell is a request to fill in and run on the page, like a cell of a notebook. Every operation’s page has one. In your own pages, name the API and the operation, and the values to start with in YAML:\u003C\u002Fp>\n\u003Cdiv class=\"code-block\">\u003Cpre class=\"shiki shiki-themes light-plus dark-plus\" style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4;--shiki-light-bg:#FFFFFF;--shiki-dark-bg:#1E1E1E\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">::: request petstore findPetsByStatus\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">status: available\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">:::\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003Cbutton type=\"button\" class=\"copy-code btn btn-sm btn-square btn-ghost\" title=\"Copy code\" aria-label=\"Copy code\">\u003Ci class=\"fa-solid fa-copy\">\u003C\u002Fi>\u003C\u002Fbutton>\u003C\u002Fdiv>\n\u003Cdiv class=\"clay-request not-prose\" data-request=\"{&quot;api&quot;:&quot;\u002Fapi\u002Fpetstore&quot;,&quot;title&quot;:&quot;Finds Pets by status.&quot;,&quot;link&quot;:&quot;\u002Fapi\u002Fpetstore\u002Fpet\u002Ffind-pets-by-status&quot;,&quot;method&quot;:&quot;GET&quot;,&quot;path&quot;:&quot;\u002Fpet\u002FfindByStatus&quot;,&quot;servers&quot;:[{&quot;url&quot;:&quot;https:\u002F\u002Fpetstore3.swagger.io\u002Fapi\u002Fv3&quot;,&quot;description&quot;:&quot;Swagger’s public Petstore&quot;}],&quot;parameters&quot;:[{&quot;name&quot;:&quot;status&quot;,&quot;in&quot;:&quot;query&quot;,&quot;required&quot;:true,&quot;type&quot;:&quot;string&quot;,&quot;description&quot;:&quot;Status values that need to be considered for filter&quot;,&quot;options&quot;:[&quot;available&quot;,&quot;pending&quot;,&quot;sold&quot;],&quot;example&quot;:&quot;available&quot;}],&quot;security&quot;:[{&quot;petstore_auth&quot;:[&quot;write:pets&quot;,&quot;read:pets&quot;]}],&quot;schemes&quot;:{&quot;petstore_auth&quot;:{&quot;type&quot;:&quot;oauth2&quot;,&quot;flows&quot;:{&quot;implicit&quot;:{&quot;authorizationUrl&quot;:&quot;https:\u002F\u002Fpetstore3.swagger.io\u002Foauth\u002Fauthorize&quot;,&quot;scopes&quot;:{&quot;write:pets&quot;:&quot;modify pets in your account&quot;,&quot;read:pets&quot;:&quot;read your pets&quot;}}}},&quot;api_key&quot;:{&quot;type&quot;:&quot;apiKey&quot;,&quot;in&quot;:&quot;header&quot;,&quot;name&quot;:&quot;api_key&quot;}},&quot;values&quot;:{&quot;status&quot;:&quot;available&quot;},&quot;example&quot;:{&quot;status&quot;:&quot;200&quot;,&quot;type&quot;:&quot;application\u002Fjson&quot;,&quot;body&quot;:&quot;[\\n  {\\n    \\&quot;id\\&quot;: 10,\\n    \\&quot;name\\&quot;: \\&quot;doggie\\&quot;,\\n    \\&quot;category\\&quot;: {\\n      \\&quot;id\\&quot;: 1,\\n      \\&quot;name\\&quot;: \\&quot;Dogs\\&quot;\\n    },\\n    \\&quot;photoUrls\\&quot;: [\\n      \\&quot;string\\&quot;\\n    ],\\n    \\&quot;tags\\&quot;: [\\n      {\\n        \\&quot;id\\&quot;: 0,\\n        \\&quot;name\\&quot;: \\&quot;string\\&quot;\\n      }\\n    ],\\n    \\&quot;status\\&quot;: \\&quot;available\\&quot;\\n  }\\n]&quot;}}\">\u003Cdiv class=\"clay-request-head\">\u003Cspan class=\"clay-method clay-method-get\">GET\u003C\u002Fspan>\u003Ccode class=\"clay-request-path\">\u002Fpet\u002FfindByStatus\u003C\u002Fcode>\u003Cspan class=\"clay-request-title\">Finds Pets by status.\u003C\u002Fspan>\u003C\u002Fdiv>\u003Cpre class=\"clay-request-code\">\u003Ccode>curl 'https:\u002F\u002Fpetstore3.swagger.io\u002Fapi\u002Fv3\u002Fpet\u002FfindByStatus?status=available' \\\n  -H 'Authorization: Bearer &lt;token&gt;'\u003C\u002Fcode>\u003C\u002Fpre>\u003Cdiv class=\"clay-request-out\">\u003Cdiv class=\"clay-request-status\">Example response · 200\u003C\u002Fdiv>\u003Cpre>\u003Ccode>[\n  {\n    \"id\": 10,\n    \"name\": \"doggie\",\n    \"category\": {\n      \"id\": 1,\n      \"name\": \"Dogs\"\n    },\n    \"photoUrls\": [\n      \"string\"\n    ],\n    \"tags\": [\n      {\n        \"id\": 0,\n        \"name\": \"string\"\n      }\n    ],\n    \"status\": \"available\"\n  }\n]\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003Cp>The operation is named by its \u003Ccode>operationId\u003C\u002Fcode>, or by its method and path: \u003Ccode>::: request petstore GET \u002Fpet\u002F{petId}\u003C\u002Fcode>. \u003Ccode>body:\u003C\u002Fcode> holds a request body to start with, \u003Ccode>server:\u003C\u002Fcode> picks one of the servers.\u003C\u002Fp>\n\u003Cp>Without an API, a cell holds a request written out, like in an \u003Ccode>.http\u003C\u002Fcode> file: the method and address, the headers, an empty line and the body. Readers can change all of it.\u003C\u002Fp>\n\u003Cdiv class=\"code-block\">\u003Cpre class=\"shiki shiki-themes light-plus dark-plus\" style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4;--shiki-light-bg:#FFFFFF;--shiki-dark-bg:#1E1E1E\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">::: request\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">GET https:\u002F\u002Fpetstore3.swagger.io\u002Fapi\u002Fv3\u002Fpet\u002F10\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">Accept: application\u002Fjson\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">:::\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003Cbutton type=\"button\" class=\"copy-code btn btn-sm btn-square btn-ghost\" title=\"Copy code\" aria-label=\"Copy code\">\u003Ci class=\"fa-solid fa-copy\">\u003C\u002Fi>\u003C\u002Fbutton>\u003C\u002Fdiv>\n\u003Cdiv class=\"clay-request not-prose\" data-request=\"{&quot;method&quot;:&quot;GET&quot;,&quot;path&quot;:&quot;https:\u002F\u002Fpetstore3.swagger.io\u002Fapi\u002Fv3\u002Fpet\u002F10&quot;,&quot;servers&quot;:[],&quot;parameters&quot;:[],&quot;headers&quot;:[[&quot;Accept&quot;,&quot;application\u002Fjson&quot;]],&quot;security&quot;:[],&quot;schemes&quot;:{},&quot;values&quot;:{},&quot;raw&quot;:&quot;GET https:\u002F\u002Fpetstore3.swagger.io\u002Fapi\u002Fv3\u002Fpet\u002F10\\nAccept: application\u002Fjson&quot;}\">\u003Cdiv class=\"clay-request-head\">\u003Cspan class=\"clay-method clay-method-get\">GET\u003C\u002Fspan>\u003Ccode class=\"clay-request-path\">https:\u002F\u002Fpetstore3.swagger.io\u002Fapi\u002Fv3\u002Fpet\u002F10\u003C\u002Fcode>\u003C\u002Fdiv>\u003Cpre class=\"clay-request-code\">\u003Ccode>curl 'https:\u002F\u002Fpetstore3.swagger.io\u002Fapi\u002Fv3\u002Fpet\u002F10' \\\n  -H 'Accept: application\u002Fjson'\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\u003Cp>Like in a notebook, a click selects a cell, and \u003Ckbd>Ctrl\u003C\u002Fkbd> + \u003Ckbd>Enter\u003C\u002Fkbd> (\u003Ckbd>⌘\u003C\u002Fkbd> + \u003Ckbd>Enter\u003C\u002Fkbd> on a Mac) runs the selected one. A request body is colored as it is written, and each media type keeps its own: switching to \u003Ccode>application\u002Fxml\u003C\u002Fcode> shows an XML example. The answer comes below it: its status, how long it took, its headers, and its body, JSON in colors and pictures as pictures. Until then, the cell shows the example answer from the document. \u003Cstrong>curl\u003C\u002Fstrong>, \u003Cstrong>JavaScript\u003C\u002Fstrong> and \u003Cstrong>Python\u003C\u002Fstrong> show the request as code to copy.\u003C\u002Fp>\n\u003Ch3 id=\"credentials\">\u003Ca class=\"heading-anchor\" href=\"#credentials\" aria-label=\"Link to this section\" data-route=\"#credentials\">#\u003C\u002Fa>Credentials\u003C\u002Fh3>\n\u003Cp>Readers enter keys, passwords and tokens once per API, like with the \u003Cem>Authorize\u003C\u002Fem> button of Swagger UI: on the API’s overview, under \u003Cem>Authentication\u003C\u002Fem>, or with \u003Cstrong>Authorize\u003C\u002Fstrong> in any cell, which shows the methods its operation takes, one tab each. Every cell of the API uses them. They stay in the browser tab unless the reader picks \u003Cem>Remember on this device\u003C\u002Fem>, and are only ever sent to the API itself. Code samples show placeholders instead.\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>In the document\u003C\u002Fth>\n\u003Cth>In the cell\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>\u003Ccode>apiKey\u003C\u002Fcode> in a header or the query\u003C\u002Ftd>\n\u003Ctd>The key\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>http\u003C\u002Fcode>: \u003Ccode>basic\u003C\u002Fcode>, \u003Ccode>bearer\u003C\u002Fcode> and others\u003C\u002Ftd>\n\u003Ctd>User name and password, or the token\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>oauth2\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Sign in with the authorization code flow (with PKCE), implicit, client credentials or password; or paste a token\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>openIdConnect\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Sign in through the provider named by its discovery document\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>mutualTLS\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>The browser asks for the certificate\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cp>Signing in through the provider’s page comes back to \u003Ccode>_clay\u002Foauth-callback.html\u003C\u002Fcode> of the site, e.g. \u003Ccode>https:\u002F\u002Fclay-doc.github.io\u002Fclay-example-repo\u002F_clay\u002Foauth-callback.html\u003C\u002Fcode>; register that address as a redirect URL with the provider.\u003C\u002Fp>\n\u003Cdiv class=\"markdown-alert markdown-alert-note\">\n\u003Cp class=\"markdown-alert-title text-base-content\">\u003Ci class=\"fa-solid fa-sticky-note mr-2\">\u003C\u002Fi>Note\u003C\u002Fp>\n\u003Cp>Requests go from the reader’s browser straight to the API, so the API has to allow requests from your site (\u003Ca href=\"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FHTTP\u002FGuides\u002FCORS\" target=\"_blank\" rel=\"noopener noreferrer\">\u003Ci class=\"fa-solid fa-arrow-up-right-from-square clay-external-icon\" aria-hidden=\"true\">\u003C\u002Fi>CORS\u003C\u002Fa>); the Petstore allows all sites. When it does not, the cell says so. Browsers also do not let a page send cookies of its own choosing: an API key in a cookie is only in the code.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"versions\">\u003Ca class=\"heading-anchor\" href=\"#versions\" aria-label=\"Link to this section\" data-route=\"#versions\">#\u003C\u002Fa>Versions\u003C\u002Fh2>\n\u003Cp>When you save a version with \u003Ca href=\"\u002Fclay-example-repo\u002Forganizing\u002Fversions\" data-route=\"\u002Forganizing\u002Fversions\">\u003Ccode>clay version\u003C\u002Fcode>\u003C\u002Fa>, it keeps its APIs as they are that day: Clay copies their documents, and the files these refer to, into \u003Ccode>docs\u002F&lt;version&gt;\u002F_openapi\u002F\u003C\u002Fcode>, with their settings in \u003Ccode>apis.yaml\u003C\u002Fcode> next to them. The version’s API pages and request cells use these copies, while the latest docs follow the document as it changes.\u003C\u002Fp>\n\u003Ch2 id=\"fields-and-endpoints\">\u003Ca class=\"heading-anchor\" href=\"#fields-and-endpoints\" aria-label=\"Link to this section\" data-route=\"#fields-and-endpoints\">#\u003C\u002Fa>Fields and endpoints\u003C\u002Fh2>\n\u003Cp>The API pages are written in Markdown with two components you can use in your own pages too: \u003Ccode>::: fields\u003C\u002Fcode> shows a list of names with their type and flags: the name in code, then the type, then \u003Cstrong>bold\u003C\u002Fstrong> for required, \u003Cem>italics\u003C\u002Fem> for other flags and \u003Cdel>strikethrough\u003C\u002Fdel> for deprecated. \u003Ccode>::: endpoints\u003C\u002Fcode> shows a list of operations with their method.\u003C\u002Fp>\n\u003Cdiv class=\"code-block\">\u003Cpre class=\"shiki shiki-themes light-plus dark-plus\" style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4;--shiki-light-bg:#FFFFFF;--shiki-dark-bg:#1E1E1E\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">::: fields\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#0451A5;--shiki-dark:#6796E6\">-\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#800000;--shiki-dark:#CE9178\"> `name`\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\"> string \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000080;--shiki-light-font-weight:bold;--shiki-dark:#569CD6;--shiki-dark-font-weight:bold\">**required**\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">  What the pet is called.\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#0451A5;--shiki-dark:#6796E6\">-\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#800000;--shiki-dark:#CE9178\"> `status`\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\"> string \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-light-font-style:italic;--shiki-dark:#D4D4D4;--shiki-dark-font-style:italic\">*read-only*\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">:::\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">::: endpoints\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#0451A5;--shiki-dark:#6796E6\">-\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#800000;--shiki-dark:#CE9178\"> `GET \u002Fpet\u002F{petId}`\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\"> [\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#A31515;--shiki-dark:#CE9178\">Find pet by ID\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">](\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-light-text-decoration:underline;--shiki-dark:#D4D4D4;--shiki-dark-text-decoration:underline\">\u002Fapi\u002Fpetstore\u002Fpet\u002Fget-pet-by-id\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#000000;--shiki-dark:#D4D4D4\">:::\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003Cbutton type=\"button\" class=\"copy-code btn btn-sm btn-square btn-ghost\" title=\"Copy code\" aria-label=\"Copy code\">\u003Ci class=\"fa-solid fa-copy\">\u003C\u002Fi>\u003C\u002Fbutton>\u003C\u002Fdiv>\n\u003Cdiv class=\"clay-fields not-prose\">\u003Cdiv class=\"clay-field\">\u003Cdiv class=\"clay-field-head\">\u003Ccode class=\"clay-field-name\">name\u003C\u002Fcode>\u003Cspan class=\"clay-field-type\">string\u003C\u002Fspan>\u003Cspan class=\"clay-field-flag clay-field-required\">required\u003C\u002Fspan>\u003C\u002Fdiv>\u003Cdiv class=\"clay-field-text\">\u003Cp>What the pet is called.\u003C\u002Fp>\n\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"clay-field\">\u003Cdiv class=\"clay-field-head\">\u003Ccode class=\"clay-field-name\">status\u003C\u002Fcode>\u003Cspan class=\"clay-field-type\">string\u003C\u002Fspan>\u003Cspan class=\"clay-field-flag\">read-only\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003Cul class=\"clay-endpoints not-prose\">\u003Cli>\u003Ca class=\"clay-endpoint\" href=\"\u002Fclay-example-repo\u002Fapi\u002Fpetstore\u002Fpet\u002Fget-pet-by-id\" data-route=\"\u002Fapi\u002Fpetstore\u002Fpet\u002Fget-pet-by-id\">\u003Cspan class=\"clay-method clay-method-get\">GET\u003C\u002Fspan>\u003Ccode class=\"clay-endpoint-path\">\u002F\u003Cwbr>pet\u002F\u003Cwbr>{petId}\u003C\u002Fcode>\u003Cspan class=\"clay-endpoint-title\">Find pet by ID\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Ful>\n\u003Ch2 id=\"for-agents\">\u003Ca class=\"heading-anchor\" href=\"#for-agents\" aria-label=\"Link to this section\" data-route=\"#for-agents\">#\u003C\u002Fa>For agents\u003C\u002Fh2>\n\u003Cp>In the \u003Ca href=\"\u002Fclay-example-repo\u002Ffeatures\u002Fai-and-agents\" data-route=\"\u002Ffeatures\u002Fai-and-agents\">Markdown of a page\u003C\u002Fa>, a request cell is a curl command with a link to its operation, and \u003Ccode>llms.txt\u003C\u002Fcode> lists the pages of every API.\u003C\u002Fp>\n",[6,10,13,17,20,23],{"id":7,"text":8,"level":9},"the-pages","The pages",2,{"id":11,"text":12,"level":9},"request-cells","Request cells",{"id":14,"text":15,"level":16},"credentials","Credentials",3,{"id":18,"text":19,"level":9},"versions","Versions",{"id":21,"text":22,"level":9},"fields-and-endpoints","Fields and endpoints",{"id":24,"text":25,"level":9},"for-agents","For agents","Pages for every operation and schema of an OpenAPI document, below the docs in the navigation, and request cells to try an API right on the page.",null,false,"\u002F_clay\u002Fsocial\u002Ffeatures\u002Fopenapi.png",1792666369139]