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

# Quickstart

> Make your first authenticated request to the Questra Program API.

This guide assumes you already have a Program API key. If not, create one first: [Authentication](/authentication).

## 1. Confirm the key works

```bash theme={null}
export QUESTRA_API_KEY=qpk_live_...

curl https://api.program.questra.ai/v1/whoami \
  -H "Authorization: Bearer $QUESTRA_API_KEY"
```

You should see `auth_method` of `api_key` and a `workspace_id`. Use `https://api.program.staging.questra.ai` if the key was created in staging.

## 2. List surveys

```bash theme={null}
curl https://api.program.questra.ai/v1/surveys \
  -H "Authorization: Bearer $QUESTRA_API_KEY"
```

The response includes a `data` array of surveys in that workspace (plus offset `pagination`).

## 3. Create a survey

```bash theme={null}
curl https://api.program.questra.ai/v1/surveys \
  -H "Authorization: Bearer $QUESTRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "slug": "brand-tracker-2026",
    "name": "Brand tracker 2026"
  }'
```

`slug` is lowercase kebab-case and unique per workspace. A duplicate slug returns **409**. Save `data.id` for file upload and programming.

## Next

<CardGroup cols={2}>
  <Card title="API overview" icon="book" href="/api-reference/overview">
    Upload a questionnaire, start programming, and read content revisions.
  </Card>

  <Card title="Programming" icon="wand-magic-sparkles" href="/workflows/programming">
    Convert the questionnaire into platform-native survey source.
  </Card>

  <Card title="Live updates" icon="signal" href="/workflows/live-updates">
    Subscribe to workflow streams while a run is in progress.
  </Card>

  <Card title="Webhooks" icon="tower-broadcast" href="/webhooks/event-types">
    Get notified when programming or content finishes.
  </Card>
</CardGroup>
