---
title: "Public Template Join"
method: POST
path: "/v1/templates/{template_id}/join-public"
tags: ["templates"]
---

# Public Template Join

`POST /v1/templates/{template_id}/join-public`

Spawn a fresh interview+session against a template, with no auth.

This is the entry point for **generic share links** (`/join/t/<templateId>`).
Each call creates a new anonymous person row, a new interview, and a new
session — there is no find-or-create, because we don't know who's clicking
and we don't want two strangers walking into each other's conversation.

Security posture: the template_id is the bearer token (opaque UUID), same
as how `/v1/interviews/{id}/join` treats the interview_id. The template
must exist and have status='active' to be joinable. Org owners revoke
public sharing by deactivating the template.

## Path parameters

- `template_id` string, required

## Request body

- PublicTemplateJoinRequest
  - `name` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/roxels/apis/interviewer.md) · [All operations](https://skmtc.dev/roxels/apis/interviewer/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/roxels/interviewer/revisions/4ef48ed226e1/schema)
