{"openapi":"3.1.0","info":{"title":"Nuxt","summary":"Documentation, content and metadata endpoints of nuxt.com.","description":"Nuxt is an open source framework that makes web development intuitive and powerful.\n\nThis specification covers the public, read-only endpoints agents can use to read the documentation, the module directory and the team metadata.\n\n- Markdown documentation: Every documentation, blog and deploy 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://nuxt.com/mcp` (streamable HTTP). See https://nuxt.com/.well-known/mcp/server-card.json\n- LLM indexes: https://nuxt.com/llms.txt and https://nuxt.com/llms-full.txt\n\nNo authentication is required and no endpoint mutates state.","version":"1.0.0","license":{"name":"MIT","identifier":"MIT"},"contact":{"name":"Nuxt","url":"https://nuxt.com/docs"}},"servers":[{"url":"https://nuxt.com","description":"Production"}],"security":[],"tags":[{"name":"Documentation","description":"Pages as Markdown."},{"name":"Discovery","description":"Machine-readable indexes and agent metadata."},{"name":"Modules","description":"The module directory behind nuxt.com/modules."},{"name":"Team","description":"The Nuxt core and ecosystem teams."}],"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"}}}},"/blog/{path}":{"get":{"tags":["Documentation"],"operationId":"getBlogPage","summary":"Page under `/blog/**`","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 `/blog/`, may contain slashes.","schema":{"type":"string"}}],"responses":{"200":{"description":"Page under `/blog/**`, 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/blog/{path}.md":{"get":{"tags":["Documentation"],"operationId":"getBlogPageMarkdown","summary":"Markdown of a page under `/blog/**`","description":"Markdown source, with YAML frontmatter (`title`, `description`, `canonical_url`).","parameters":[{"name":"path","in":"path","required":true,"description":"Page path below `/blog/`, 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"}}}},"/deploy/{path}":{"get":{"tags":["Documentation"],"operationId":"getDeployPage","summary":"Page under `/deploy/**`","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 `/deploy/`, may contain slashes.","schema":{"type":"string"}}],"responses":{"200":{"description":"Page under `/deploy/**`, 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/deploy/{path}.md":{"get":{"tags":["Documentation"],"operationId":"getDeployPageMarkdown","summary":"Markdown of a page under `/deploy/**`","description":"Markdown source, with YAML frontmatter (`title`, `description`, `canonical_url`).","parameters":[{"name":"path","in":"path","required":true,"description":"Page path below `/deploy/`, 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"}}}},"/modules":{"get":{"tags":["Documentation"],"operationId":"getModules","summary":"Page under `/modules`","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":"Page under `/modules`, 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/modules.md":{"get":{"tags":["Documentation"],"operationId":"getModulesMarkdown","summary":"Markdown of a page under `/modules`","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"}}}},"/changelog":{"get":{"tags":["Documentation"],"operationId":"getChangelog","summary":"Page under `/changelog`","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":"Page under `/changelog`, 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/changelog.md":{"get":{"tags":["Documentation"],"operationId":"getChangelogMarkdown","summary":"Markdown of a page under `/changelog`","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"}}}},"/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":{"tags":["Discovery"],"operationId":"callMcpServer","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.","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"}}}}}}},"/.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"}}}}}}},"/api/v1/modules":{"get":{"operationId":"listModules","tags":["Modules"],"summary":"List Nuxt modules","description":"The module directory shown on nuxt.com/modules, with aggregate stats, maintainers and contributors.","parameters":[{"name":"version","in":"query","description":"Nuxt major version the modules must be compatible with.","schema":{"type":"string","enum":["2","2-bridge","3","all"],"default":"3"}},{"name":"category","in":"query","description":"Keep modules of this category only (case-insensitive).","schema":{"type":"string"}}],"responses":{"200":{"description":"The modules matching the filters, with aggregate stats.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModuleList"}}}}}}},"/api/v1/modules/health":{"get":{"operationId":"getModulesHealth","tags":["Modules"],"summary":"Module health scores","description":"Health metadata per module, keyed by module name. Served separately from the list so it can be merged in when available.","responses":{"200":{"description":"Health entries keyed by module name.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ModuleHealth"}}}}}}}},"/api/v1/modules/{name}":{"get":{"operationId":"getModule","tags":["Modules"],"summary":"One module with its readme","description":"A single module by directory name, enriched with download/star stats, contributors and the rendered readme.","parameters":[{"name":"name","in":"path","required":true,"description":"The module name as listed by `listModules` (e.g. `content`, `tailwindcss`).","schema":{"type":"string"}}],"responses":{"200":{"description":"The module.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Module"}}}},"404":{"description":"No module with that name.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/teams":{"get":{"operationId":"getTeams","tags":["Team"],"summary":"Core and ecosystem teams","description":"The Nuxt core team and the ecosystem team, core members deduplicated out of the latter.","responses":{"200":{"description":"Both teams.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Teams"}}}}}}},"/api/v1/teams/{slug}":{"get":{"operationId":"getTeamMembers","tags":["Team"],"summary":"Members of one team","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","enum":["core","ecosystem","ui"]}}],"responses":{"200":{"description":"The GitHub members of the team.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TeamMember"}}}}},"404":{"description":"Unknown team slug.","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"]}},"Error":{"type":"object","description":"Nitro error payload.","properties":{"statusCode":{"type":"integer"},"statusMessage":{"type":"string"},"message":{"type":"string"}}},"Module":{"type":"object","description":"A Nuxt module as listed on nuxt.com/modules.","additionalProperties":true,"properties":{"name":{"type":"string"},"npm":{"type":"string","description":"The npm package name."},"description":{"type":"string"},"repo":{"type":"string","description":"GitHub `owner/repo` slug."},"website":{"type":"string"},"category":{"type":"string"},"type":{"type":"string","enum":["official","community","3rd-party"]},"compatibility":{"type":"object","additionalProperties":true},"stats":{"type":"object","additionalProperties":true},"maintainers":{"type":"array","items":{"type":"object","additionalProperties":true}},"contributors":{"type":"array","items":{"type":"object","additionalProperties":true}},"readme":{"type":"string","description":"Rendered readme, only on `getModule`."}}},"ModuleList":{"type":"object","properties":{"version":{"type":"string"},"generatedAt":{"type":"string","format":"date-time"},"stats":{"type":"object","properties":{"downloads":{"type":"integer"},"stars":{"type":"integer"},"maintainers":{"type":"integer"},"contributors":{"type":"integer"},"modules":{"type":"integer"}}},"maintainers":{"type":"array","items":{"type":"object","additionalProperties":true}},"contributors":{"type":"array","items":{"type":"object","additionalProperties":true}},"modules":{"type":"array","items":{"$ref":"#/components/schemas/Module"}}}},"ModuleHealth":{"type":"object","description":"Health metadata for one module, as reported by nuxt.care.","additionalProperties":true},"TeamMember":{"type":"object","additionalProperties":true,"properties":{"login":{"type":"string"},"name":{"type":"string"},"avatarUrl":{"type":"string"},"websiteUrl":{"type":"string"},"sponsorsListing":{"type":"string"}}},"Teams":{"type":"object","properties":{"core":{"type":"array","items":{"$ref":"#/components/schemas/TeamMember"}},"ecosystem":{"type":"array","items":{"$ref":"#/components/schemas/TeamMember"}}}}}}}