---
title: "Resolve preview URL for a quiz"
method: GET
path: "/quizzes/{quizId}/preview-url"
---

# Resolve preview URL for a quiz

`GET /quizzes/{quizId}/preview-url`

Build a public URL to open a quiz on the project's primary host
(project's custom `domain` if set, otherwise `{project_id}.web2wave.com`).
Works for any quiz — no need for the API caller to know the project's
subdomain. Use this from MCP / scripts instead of guessing the host.

Modes:
  - no `version` arg → returns the *currently published* version if
    `published_version` is set, else the live draft;
  - `version=latest-published` → forces the published version (auto-fills
    the encoded version hash from the published version's date);
  - `version=<int>-<base64date>` → returns that exact archived version;
  - any other string → passed through as-is.

Other params: `screen_id` (jump to one screen), `locale`, `theme`,
`edit_mode=1`, `project_domain` (override the host explicitly).

## Path parameters

- `quizId` integer, required

## Query parameters

- `version` string
- `screen_id` string
- `locale` string
- `theme` string
- `edit_mode` boolean
- `project_domain` string

## Headers

- `api_key` string, required

## Response `200`

Preview URL bundle.

- object
  - `success` integer
  - `url` string, uri
  - `preview_url` string, uri
  - `kind` 'quiz'
  - `id` integer
  - `slug` string
  - `mode` 'live-draft' | 'published' | 'versioned'
  - `version` string, nullable
  - `project_domain` string
  - `live_url` string, uri
  - `published_url` string, uri, nullable

---

[API](https://skmtc.net/web2wave/apis/web2wave-api.md) · [All operations](https://skmtc.net/web2wave/apis/web2wave-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/web2wave/web2wave-api/versions/c88545119271/schema)
