{"openapi":"3.1.0","info":{"title":"Nuxt UI","summary":"Documentation, content and metadata endpoints of ui.nuxt.com.","description":"Nuxt UI is a Vue component library (Nuxt optional) with 125+ accessible, Tailwind CSS components.\n\nThis specification covers the public, read-only endpoints agents can use to read the documentation and its metadata.\n\n- Markdown documentation: Every documentation page is available as Markdown. Append `.md` to the URL, or send `Accept: text/markdown` on the HTML URL. Known AI agent user agents receive Markdown by default.\n- MCP server: `POST https://ui.nuxt.com/mcp` (streamable HTTP). See https://ui.nuxt.com/.well-known/mcp/server-card.json\n- Agent skill: https://ui.nuxt.com/.well-known/skills/nuxt-ui/SKILL.md\n- LLM indexes: https://ui.nuxt.com/llms.txt and https://ui.nuxt.com/llms-full.txt\n\nNo authentication is required and no endpoint mutates state.","version":"4.11.3","license":{"name":"MIT","identifier":"MIT"},"contact":{"name":"Nuxt UI","url":"https://ui.nuxt.com/docs"}},"servers":[{"url":"https://ui.nuxt.com","description":"Production"}],"security":[],"tags":[{"name":"Documentation","description":"Pages as Markdown."},{"name":"Discovery","description":"Machine-readable indexes and agent metadata."},{"name":"Content","description":"Navigation and module metadata behind the documentation site."},{"name":"Data","description":"Static datasets used by the component examples."},{"name":"GitHub","description":"Cached GitHub metadata for the repository."}],"paths":{"/":{"get":{"tags":["Documentation"],"operationId":"getHomepage","summary":"Homepage","description":"Returns HTML by default, Markdown when negotiated. Every page is available as Markdown. Append `.md` to the URL, or send `Accept: text/markdown` on the HTML URL. Known AI agent user agents receive Markdown by default.","responses":{"200":{"description":"Homepage, as HTML or Markdown.","headers":{"Vary":{"$ref":"#/components/headers/Vary"}},"content":{"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"}}}},"404":{"$ref":"#/components/responses/NotFoundMarkdown"}}}},"/raw/index.md":{"get":{"tags":["Documentation"],"operationId":"getHomepageMarkdown","summary":"Homepage as Markdown","description":"Markdown source, with YAML frontmatter (`title`, `description`, `canonical_url`).","responses":{"200":{"description":"The page as Markdown, with YAML frontmatter.","headers":{"Vary":{"$ref":"#/components/headers/Vary"}},"content":{"text/markdown":{"schema":{"type":"string"}}}},"404":{"$ref":"#/components/responses/NotFoundMarkdown"}}}},"/docs/{path}":{"get":{"tags":["Documentation"],"operationId":"getDocsPage","summary":"Page under `/docs/**`","description":"Returns HTML by default, Markdown when negotiated. Every page is available as Markdown. Append `.md` to the URL, or send `Accept: text/markdown` on the HTML URL. Known AI agent user agents receive Markdown by default.","parameters":[{"name":"path","in":"path","required":true,"description":"Page path below `/docs/`, may contain slashes.","schema":{"type":"string"}}],"responses":{"200":{"description":"Page under `/docs/**`, as HTML or Markdown.","headers":{"Vary":{"$ref":"#/components/headers/Vary"}},"content":{"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"}}}},"404":{"$ref":"#/components/responses/NotFoundMarkdown"}}}},"/raw/docs/{path}.md":{"get":{"tags":["Documentation"],"operationId":"getDocsPageMarkdown","summary":"Markdown of a page under `/docs/**`","description":"Markdown source, with YAML frontmatter (`title`, `description`, `canonical_url`).","parameters":[{"name":"path","in":"path","required":true,"description":"Page path below `/docs/`, may contain slashes.","schema":{"type":"string"}}],"responses":{"200":{"description":"The page as Markdown, with YAML frontmatter.","headers":{"Vary":{"$ref":"#/components/headers/Vary"}},"content":{"text/markdown":{"schema":{"type":"string"}}}},"404":{"$ref":"#/components/responses/NotFoundMarkdown"}}}},"/sitemap.md":{"get":{"tags":["Discovery"],"operationId":"getSitemapMarkdown","summary":"Markdown sitemap","description":"Every page, grouped into sections, linking to the Markdown URLs.","responses":{"200":{"description":"Markdown index of every page.","headers":{"Vary":{"$ref":"#/components/headers/Vary"}},"content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"tags":["Discovery"],"operationId":"getSitemapXml","summary":"XML sitemap","description":"Every indexable page, in the sitemaps.org XML format.","responses":{"200":{"description":"Sitemap in the sitemaps.org XML format.","content":{"application/xml":{"schema":{"type":"string"}}}}}}},"/llms.txt":{"get":{"tags":["Discovery"],"operationId":"getLlmsTxt","summary":"llms.txt index","description":"Index of the documentation for LLMs, following the llms.txt convention.","responses":{"200":{"description":"Markdown index.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/llms-full.txt":{"get":{"tags":["Discovery"],"operationId":"getLlmsFullTxt","summary":"Full documentation for LLMs","description":"Every documentation page concatenated as Markdown. Large response.","responses":{"200":{"description":"Full documentation as Markdown.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/.well-known/api-catalog":{"get":{"tags":["Discovery"],"operationId":"getApiCatalog","summary":"API catalog (RFC 9727)","description":"Linkset pointing at the documents this site publishes for agents.","responses":{"200":{"description":"Linkset document.","content":{"application/linkset+json":{"schema":{"$ref":"#/components/schemas/Linkset"}}}}}}},"/mcp":{"post":{"operationId":"callMcpServer","tags":["Discovery"],"summary":"MCP endpoint","description":"Model Context Protocol endpoint (streamable HTTP transport), speaking JSON-RPC 2.0. Use an MCP client rather than calling it directly. The `x-mcp-tools` header restricts the exposed tool set to a comma-separated list of tool names.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"JSON-RPC 2.0 request."}}}},"responses":{"200":{"description":"JSON-RPC 2.0 response, or an SSE stream of them.","content":{"application/json":{"schema":{"type":"object","description":"JSON-RPC 2.0 response."}},"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Unknown MCP tool requested through `x-mcp-tools`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/.well-known/mcp/server-card.json":{"get":{"tags":["Discovery"],"operationId":"getMcpServerCard","summary":"MCP server card","description":"Describes the MCP endpoint, its capabilities and what it exposes.","responses":{"200":{"description":"MCP server card, following the schema it declares in `$schema`.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/.well-known/skills/index.json":{"get":{"tags":["Discovery"],"operationId":"getSkillsIndex","summary":"Agent skills index","description":"Lists the agent skills published by this site and the files each one is made of, served under `/.well-known/skills/{name}/`.","responses":{"200":{"description":"Skills index.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillsIndex"}}}}}}},"/openapi.json":{"get":{"operationId":"getOpenApiDocument","tags":["Discovery"],"summary":"This OpenAPI document","description":"This document. It is regenerated on every deploy, so `info.version` tracks the published `@nuxt/ui` release.","responses":{"200":{"description":"OpenAPI 3.1 document.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/navigation.json":{"get":{"operationId":"getNavigation","tags":["Content"],"summary":"Documentation navigation tree","description":"The documentation navigation tree as rendered in the sidebar: nested items carrying the page title, path, framework and category.","responses":{"200":{"description":"Nested navigation items.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NavigationItem"}}}}}}}},"/api/module.json":{"get":{"operationId":"getModuleStats","tags":["Content"],"summary":"Module stats, team and contributors","description":"npm downloads and GitHub stars for `@nuxt/ui`, plus the team and contributor lists shown on the homepage. Cached for an hour.","responses":{"200":{"description":"Download and star counts, team members and contributors.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Module"}}}}}}},"/api/component-example/{component}":{"get":{"operationId":"getComponentExample","tags":["Content"],"summary":"Source of a documentation example component","description":"The single file component behind an example on a documentation page. Names are listed by the `list-examples` MCP tool and accepted in PascalCase, camelCase or kebab-case, with an optional `.json` suffix.","parameters":[{"name":"component","in":"path","required":true,"description":"Example component name, in PascalCase or kebab-case. A `.json` suffix is accepted.","schema":{"type":"string"},"example":"button-loading-auto-example"}],"responses":{"200":{"description":"Source code of the example component.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentExample"}}}},"404":{"description":"No example component with that name.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/countries.json":{"get":{"operationId":"getCountries","tags":["Data"],"summary":"Countries","description":"Countries with their ISO 3166-1 alpha-2 code and flag emoji, the dataset behind the country select examples.","responses":{"200":{"description":"Countries with their ISO 3166-1 alpha-2 code and flag.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Country"}}}}}}}},"/api/phone-codes.json":{"get":{"operationId":"getPhoneCodes","tags":["Data"],"summary":"Phone dial codes","description":"Countries with their dial code and phone number mask, the dataset behind the phone input examples.","responses":{"200":{"description":"Countries with their dial code and phone number mask.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PhoneCode"}}}}}}}},"/api/locales.json":{"get":{"operationId":"getLocales","tags":["Data"],"summary":"Locales","description":"Every locale Nuxt UI ships a translation for, mapped to its flag emoji.","responses":{"200":{"description":"Map of locale tag to flag emoji, for example `{ \"fr-FR\": \"🇫🇷\" }`.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}}}}},"/api/github/releases.json":{"get":{"operationId":"getReleases","tags":["GitHub"],"summary":"Releases","description":"Releases of `nuxt/ui`, newest first, v2 left out. The notes are served per release by `/api/github/releases/{tag}`. Cached for an hour.","responses":{"200":{"description":"Releases, newest first.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Release"}}}}}}}},"/api/github/releases/{tag}":{"get":{"operationId":"getReleaseNotes","tags":["GitHub"],"summary":"Release notes","description":"One release with its notes, which the list route leaves out.","parameters":[{"name":"tag","in":"path","required":true,"schema":{"type":"string","example":"v4.0.0"}}],"responses":{"200":{"description":"The release and its notes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseNotes"}}}},"404":{"description":"No release has that tag.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/github/pulls.json":{"get":{"operationId":"getPullRequests","tags":["GitHub"],"summary":"Merged pull requests","description":"Merged pull requests of `nuxt/ui` by human authors, as returned by the GitHub API. Empty when the server has no GitHub token configured.","responses":{"200":{"description":"GitHub pull request objects.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GitHubObject"}}}}}}}},"/api/github/contributors.json":{"get":{"operationId":"getContributors","tags":["GitHub"],"summary":"Top contributors","description":"The most active contributors of `nuxt/ui` with their public GitHub profile, most contributions first, plus the total contributor count. Without a GitHub token on the server the list comes from nuxt.com and the total is null.","responses":{"200":{"description":"Contributor count and profiles.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contributors"}}}}}}},"/api/github/commits.json":{"get":{"operationId":"getCommits","tags":["GitHub"],"summary":"Commits touching given paths","description":"Commits of `nuxt/ui` touching the given repository paths, newest first. Empty when the server has no GitHub token configured.","parameters":[{"name":"path","in":"query","required":true,"description":"Repository path to look up. Repeat the parameter to query several paths at once.","schema":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"example":"src/runtime/components/Button.vue"}],"responses":{"200":{"description":"Commits, newest first.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Commit"}}}}},"400":{"description":"The `path` query parameter is missing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"headers":{"Vary":{"description":"Always includes `Accept` and `User-Agent`. The page depends on both, and its Markdown representation carries the header too, since that is where a negotiated request is sent.","schema":{"type":"string"}}},"responses":{"NotFoundMarkdown":{"description":"The page does not exist. The body is a short Markdown document linking to the entry points an agent can recover from.","content":{"text/markdown":{"schema":{"type":"string"}}}}},"schemas":{"Linkset":{"type":"object","description":"RFC 9727 linkset. Each entry anchors a resource and points at its description and documentation.","properties":{"linkset":{"type":"array","items":{"type":"object","properties":{"anchor":{"type":"string","format":"uri"},"service-desc":{"$ref":"#/components/schemas/LinksetTargets"},"service-doc":{"$ref":"#/components/schemas/LinksetTargets"}},"required":["anchor"]}}},"required":["linkset"]},"LinksetTargets":{"type":"array","items":{"type":"object","properties":{"href":{"type":"string","format":"uri"},"type":{"type":"string","description":"Media type of the target."}},"required":["href"]}},"SkillsIndex":{"type":"object","description":"Agent skills published by this site, served under `/.well-known/skills/{name}/`.","properties":{"skills":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"files":{"type":"array","description":"Paths relative to the skill directory.","items":{"type":"string"}}},"required":["name","description","files"]}}},"required":["skills"]},"NavigationItem":{"type":"object","description":"A documentation navigation entry.","properties":{"title":{"type":"string"},"path":{"type":"string"},"stem":{"type":"string"},"framework":{"type":"string"},"category":{"type":"string"},"description":{"type":"string"},"to":{"type":"string"},"target":{"type":"string"},"children":{"type":"array","items":{"$ref":"#/components/schemas/NavigationItem"}}},"required":["title","path"]},"Module":{"type":"object","properties":{"stats":{"type":"object","properties":{"downloads":{"type":"integer","description":"Monthly npm downloads."},"stars":{"type":"integer","description":"GitHub stars."}}},"team":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"login":{"type":"string"},"avatarUrl":{"type":"string","format":"uri"}}}},"contributors":{"type":"array","description":"GitHub contributors of `nuxt/ui`, most contributions first.","items":{"type":"object","properties":{"id":{"type":"integer","description":"GitHub user id."},"username":{"type":"string"},"contributions":{"type":"integer","description":"Commit count on the repository."}}}}}},"Contributors":{"type":"object","properties":{"total":{"type":["integer","null"],"description":"Human contributors on GitHub, null when the server could not count them."},"contributors":{"type":"array","items":{"$ref":"#/components/schemas/Contributor"}}},"required":["total","contributors"]},"Contributor":{"type":"object","properties":{"username":{"type":"string"},"contributions":{"type":"integer","description":"Commit count on the repository."},"name":{"type":"string"},"location":{"type":"string"},"websiteUrl":{"type":"string","format":"uri"},"socialAccounts":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string","description":"Lowercased GitHub provider name, e.g. `twitter`, `bluesky`."},"url":{"type":"string","format":"uri"}}}},"sponsorsListing":{"type":"string","format":"uri"}},"required":["username","contributions"]},"ComponentExample":{"type":"object","properties":{"code":{"type":"string","description":"Single file component source."},"filePath":{"type":"string"},"pascalName":{"type":"string"}},"required":["code","pascalName"]},"Country":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"string","description":"ISO 3166-1 alpha-2 code."},"emoji":{"type":"string"}},"required":["name","code","emoji"]},"PhoneCode":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"string","description":"ISO 3166-1 alpha-2 code."},"emoji":{"type":"string"},"dialCode":{"type":"string","example":"+33"},"mask":{"type":"string","example":"# ## ## ## ##"}},"required":["name","code","dialCode"]},"Release":{"type":"object","properties":{"tag":{"type":"string","example":"v4.0.0"},"title":{"type":"string","description":"Release name, its tag when the release has none."},"date":{"type":"string","format":"date-time","description":"Publication date."},"url":{"type":"string","format":"uri","description":"The release on GitHub."}},"required":["tag","title","date","url"]},"ReleaseNotes":{"allOf":[{"$ref":"#/components/schemas/Release"},{"type":"object","properties":{"markdown":{"type":"string","description":"The release notes, as GitHub stores them."}},"required":["markdown"]}]},"Commit":{"type":"object","properties":{"sha":{"type":"string"},"date":{"type":"string","format":"date-time"},"message":{"type":"string","description":"First line of the commit message."}},"required":["sha","date","message"]},"Error":{"type":"object","description":"Error payload returned by the JSON endpoints. Documentation pages answer errors as Markdown instead, and browsers get the HTML error page.","properties":{"error":{"type":"boolean","const":true},"url":{"type":"string","description":"The requested URL."},"statusCode":{"type":"integer","example":404},"statusMessage":{"type":"string","description":"Machine-readable reason phrase.","example":"Example not found!"},"message":{"type":"string","description":"Human-readable message.","example":"Example not found!"},"data":{"type":"object","description":"Extra context, when the endpoint provides any.","additionalProperties":true}},"required":["error","statusCode","statusMessage","message"]},"GitHubObject":{"type":"object","description":"Object as returned by the GitHub REST API, passed through unchanged.","additionalProperties":true}}}}