---
title: "Public workshop scoreboard"
method: GET
path: "/api/workshop/status"
tags: ["workshop"]
---

# Public workshop scoreboard

`GET /api/workshop/status`

## Request

- Base URL: `https://www.immersivecommons.com`
- URL: `https://www.immersivecommons.com/api/workshop/status`
- Auth: none required

Public, no auth, kiosk-friendly. The winner is SANITIZED to display name plus timestamp only - the winner's enrollment code is their bearer token and must never leak through the scoreboard.

## Response `200`

Enrollment counts, coverage, the recipe, and the sanitized winner.

- WorkshopStatusResponse
  - `ok` boolean, required
  - `workshop` string, required: The workshop id.
  - `enrolled` integer, required
  - `skills_count` integer
  - `skills_covered` integer
  - `recipe` string[]
  - `skills` object[]
  - `winner` object, nullable: SANITIZED — display name and timestamp only. The winner's code is their bearer token.
    - `display_name` string
    - `at` string, date-time
  - `join_url` string

---

[API](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api.md) · [All operations](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/revisions/be67c1f67c27?raw)
