> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spoolpdf.nandra.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Render a first PDF in a few minutes.

<Steps>
  <Step title="Sign in">
    Open [spoolpdf.nandra.dev](https://spoolpdf.nandra.dev) and sign in with Google, GitHub, or a magic link. Confirm `/dashboard` shows plan `free`.
  </Step>

  <Step title="Create an API key">
    Open [API keys](https://spoolpdf.nandra.dev/keys), create a key, and copy the `spool_live_…` value once.

    ```bash theme={null}
    export SPOOLPDF_API_KEY='spool_live_…'
    export SPOOLPDF_BASE_URL='https://spoolpdf-api.nandra.dev'
    ```
  </Step>

  <Step title="Render HTML">
    ```bash theme={null}
    curl -sS -D - -o first.pdf \
      -X POST "$SPOOLPDF_BASE_URL/v1/render" \
      -H "Authorization: Bearer $SPOOLPDF_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"html":"<h1>Hello spoolpdf</h1>"}'
    ```

    Expect `200`, `Content-Type: application/pdf`, `X-Request-Id`, and `X-Usage-Count`.
  </Step>
</Steps>

<Tip>
  Prefer `html` when you control the markup. URL renders are slower and reject private or loopback hosts (`ssrf_blocked`).
</Tip>

<AccordionGroup>
  <Accordion title="Local Compose">
    API at `http://localhost:8080`. Create the key in the local dashboard at `http://localhost:3000/keys`, then set `SPOOLPDF_BASE_URL=http://localhost:8080`.
  </Accordion>

  <Accordion title="Try without a key">
    `POST /v1/trial/render` is IP rate-limited and does not increment usage. See [Trial](/guides/trial).
  </Accordion>

  <Accordion title="Chat clients">
    Skip the key in ChatGPT or Claude. Connect [MCP](/guides/mcp) from the dashboard `/mcp` page.
  </Accordion>
</AccordionGroup>

Next: [authentication](/authentication), [HTML to PDF](/guides/html-to-pdf), or the [Node and PHP SDKs](/guides/sdks).
