> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.panicly.lol/llms.txt.
> For full documentation content, see https://docs.panicly.lol/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.panicly.lol/_mcp/server.

# Quickstart

This guide follows the actual onboarding model from the web app: choose a plan, create a project, connect a provider, generate a Panicly key, then prove the setup with a first routed request.

Sign in through the main Panicly web app. The dashboard session uses WorkOS and a sealed `panicly_session` cookie.

Free is enough to evaluate Panicly through OpenRouter. Direct OpenAI and Anthropic provider access require Pro.

Pick a project name and environment. The project becomes the unit that owns API keys, provider key, rules, request logs, and model controls.

Choose OpenRouter, OpenAI, or Anthropic. Store the provider key through the project settings flow.

Copy the generated key immediately. It is returned once and then stored only as a prefix plus hash.

Route a provider-compatible request to Panicly. Onboarding watches for request evidence before considering the setup operational.

## First request

```bash title="chat-completion.sh"
curl https://panicly.vercel.app/v1/chat/completions \
  -H "Authorization: Bearer $PANICLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openrouter/auto",
    "messages": [
      { "role": "user", "content": "Say hello through Panicly." }
    ],
    "max_tokens": 64
  }'
```

```js title="panicly-chat.js"
const response = await fetch("https://panicly.vercel.app/v1/chat/completions", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.PANICLY_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "openrouter/auto",
    messages: [{ role: "user", content: "Say hello through Panicly." }],
    max_tokens: 64,
  }),
});

console.log(await response.json());
```

The setup is complete only when Panicly sees traffic and can show request evidence in the dashboard.

Panicly API keys are shown once. Provider keys are encrypted and used server-side for upstream forwarding.