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

# Quickstart

> Get a request flowing through PromptWall in under 2 minutes.

This page shows the fastest path: **Proxy mode** with the OpenAI SDK.
Other modes are linked at the bottom.

## 1. Get your PromptWall API key

Sign in at [www.prompt-wall.com](https://www.prompt-wall.com/login),
finish onboarding, and copy the `pw_…` key shown on the final step.
Save it as `PROMPTWALL_API_KEY` in your environment.

## 2. Point your OpenAI client at PromptWall

You change **two things**:

1. `OPENAI_BASE_URL` → `https://api.prompt-wall.com/v1`
2. Add a `X-PromptWall-Api-Key` default header.

Your OpenAI key stays where it always was.

<CodeGroup>
  ```python Python theme={null}
  from openai import OpenAI

  client = OpenAI(
      base_url="https://api.prompt-wall.com/v1",
      api_key=os.environ["OPENAI_API_KEY"],
      default_headers={
          "X-PromptWall-Api-Key": os.environ["PROMPTWALL_API_KEY"],
          "X-Use-Case":           "customer_support",
      },
  )

  resp = client.chat.completions.create(
      model="gpt-4o-mini",
      messages=[{"role": "user", "content": "Hello"}],
  )
  print(resp.choices[0].message.content)
  ```

  ```javascript Node.js theme={null}
  import OpenAI from "openai";

  const openai = new OpenAI({
    baseURL: "https://api.prompt-wall.com/v1",
    apiKey:  process.env.OPENAI_API_KEY,
    defaultHeaders: {
      "X-PromptWall-Api-Key": process.env.PROMPTWALL_API_KEY,
      "X-Use-Case":           "customer_support",
    },
  });

  const r = await openai.chat.completions.create({
    model: "gpt-4o-mini",
    messages: [{ role: "user", content: "Hello" }],
  });
  console.log(r.choices[0].message.content);
  ```

  ```bash cURL theme={null}
  curl https://api.prompt-wall.com/v1/chat/completions \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -H "X-PromptWall-Api-Key: $PROMPTWALL_API_KEY" \
    -H "X-Use-Case: customer_support" \
    -H "Content-Type: application/json" \
    -d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"Hello"}]}'
  ```
</CodeGroup>

## 3. Watch it on the dashboard

Open [www.prompt-wall.com/observability](https://www.prompt-wall.com/observability).
Within seconds your request shows up:

* KPI cards update (requests, cost, p95 latency, error rate)
* Filter by `use_case = customer_support` to slice by the dimension you tagged
* Click any row in **Recent traces** to see the full waterfall

## 4. Turn on runtime control (optional)

Default mode is **observe** — capture only, no mutations. To turn on
control, send `X-PromptWall-Mode` per request or set
`policy_json.proxy_control_mode` per tenant.

| Header value | Pre-LLM                 | Post-LLM      |
| ------------ | ----------------------- | ------------- |
| `observe`    | —                       | —             |
| `guard`      | guards + injection scan | —             |
| `verify`     | —                       | PII redaction |
| `full`       | both                    | both          |

## Other integration modes

* [Verify mode](/modes/verify) — keep your LLM, validate the answer
* [Events mode](/modes/events) — observability-only ingest
* [API reference](/api-reference/chat-completions) — full request/response details
