> ## Documentation Index
> Fetch the complete documentation index at: https://payload-plugin-openapi.seshuk.im/llms.txt
> Use this file to discover all available pages before exploring further.

# Documentation

> Generate an OpenAPI 3.0/3.1/3.2 specification from your Payload CMS config and serve it with Scalar or Swagger UI.

<div className="rp-home">
  <div className="rp-home-grid" />

  <div className="rp-hero">
    <div className="rp-hero-inner">
      <div className="rp-hero-mark">
        <div className="rp-hero-glow" />

        <div className="rp-hero-float">
          <img src="https://mintcdn.com/payload-plugin-openapi/sMkK9T4GsEEE8Im5/hero-mark.svg?fit=max&auto=format&n=sMkK9T4GsEEE8Im5&q=85&s=e93497c2121ee1508af0d3792b96f179" alt="Payload OpenAPI" noZoom width="340" height="400" data-path="hero-mark.svg" />
        </div>
      </div>

      <div className="rp-hero-copy">
        <span className="rp-hero-badge">Payload plugin</span>

        <h1 className="rp-hero-title">
          Your Payload API, <span className="rp-hero-grad">documented</span>
        </h1>

        <p className="rp-hero-sub">
          Generate an OpenAPI 3.0, 3.1, or 3.2 specification straight from your Payload config and serve it through
          Scalar or Swagger UI — always in sync with your collections.
        </p>

        <div className="rp-hero-actions">
          <a className="rp-hero-btn rp-hero-btn-primary" href="/quick-start">
            Get started
          </a>

          <a className="rp-hero-btn rp-hero-btn-ghost" href="/configuration/overview">
            Read the docs
          </a>
        </div>

        <code
          className="rp-hero-cmd"
          role="button"
          tabIndex={0}
          title="Click to copy"
          onClick={(e) => {
        navigator.clipboard?.writeText('npm install @seshuk/payload-plugin-openapi')
        const el = e.currentTarget
        el.setAttribute('data-copied', '')
        setTimeout(() => el.removeAttribute('data-copied'), 1400)
      }}
        >
          <span className="rp-hero-cmd-text">
            npm install <span>@seshuk/payload-plugin-openapi</span>
          </span>

          <span className="rp-hero-copied" aria-live="polite">
            Copied to clipboard
          </span>
        </code>
      </div>
    </div>
  </div>
</div>
