---
title: "Check whether the caller is already enrolled"
method: GET
path: "/api/workshop/enroll"
tags: ["workshop", "browser-session"]
---

# Check whether the caller is already enrolled

`GET /api/workshop/enroll`

## Request

- Base URL: `https://www.immersivecommons.com`
- URL: `https://www.immersivecommons.com/api/workshop/enroll`
- Auth: API key in cookie `__session`

Clerk-session only. Answers 200 with `enrolled:false` when the caller has no enrollment - not signed in is the only 401. An enrollment index that points at a missing record answers `enrolled:false, orphan:true` rather than pretending the code is live.

## Response `200`

The caller's enrollment, or `enrolled:false`.

- WorkshopEnrollStatusResponse
  - `ok` boolean, required: false accompanies `enrolled:false` — it is a 200, not an error.
  - `enrolled` boolean
  - `orphan` boolean: The index pointed at a missing record. Reported rather than pretending the code is live.
  - `enrollment` WorkshopEnrollment: One attendee's enrollment. `code` IS the bearer for every other workshop route — treat it as a secret.
    - `code` string: 6-char bearer code.
    - `slug` string: Stable `agent-<code>` slug that names the attendee's hosted A2A paths.
    - `display_name` string
    - `skill_id` string: Assigned round-robin from the enrollment ordinal.
    - `enrolled_at` string, date-time
  - `agent_card_url` string
  - `jsonrpc_url` string

## Other responses

- `401`: Not signed in.

---

[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)
