defineRouteMeta()

Declares OpenAPI metadata for a server route (experimental).

Since Nuxt 3.9 Spec ↗

Syntax

defineRouteMeta({ openAPI: { ... } })

Parameters

NameTypeRequiredDescription
meta { openAPI?: OpenAPI3Operation } Yes Route metadata, primarily an `openAPI` operation object (summary, parameters, responses).

Returns

void — Compiler macro consumed by Nitro OpenAPI generation.

Examples

// server/api/users/[id].get.ts
defineRouteMeta({
  openAPI: {
    summary: 'Get a user by id',
    parameters: [
      { name: 'id', in: 'path', required: true },
    ],
  },
})

export default defineEventHandler((event) => {
  return db.users.find(getRouterParam(event, 'id'))
})
defineRouteMeta({
  openAPI: {
    tags: ['posts'],
    responses: { 200: { description: 'A list of posts' } },
  },
})
export default defineEventHandler(() => db.posts.all())

Notes

Experimental: enable `experimental.openAPI` in `nuxt.config`. It is a compiler macro (statically analyzed) used to enrich the auto-generated OpenAPI schema and the Nitro `/_nitro/openapi.json` document and Scalar UI. Does not affect runtime behavior.

See also