---
title: "Ensure Campaign Join Link"
method: POST
path: "/v1/interviews/{interview_id}/join-link"
tags: ["join"]
---

# Ensure Campaign Join Link

`POST /v1/interviews/{interview_id}/join-link`

Mint (idempotently) and return the campaign's join link for the QR surface.

Admin-gated like the campaign sharing settings: the join link is a public
self-registration surface, not a roster edit. Only in-app (email/QR)
campaigns can carry one.

## Path parameters

- `interview_id` string, uuid, required

## Response `200`

Successful Response

- CampaignJoinLinkOut
  - `join_link_token` string, required
  - `join_url` string, required
  - `created_at` string, date-time, nullable
  - `language` string

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/ontora/apis/ontora-api.md) · [All operations](https://skmtc.dev/ontora/apis/ontora-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ontora/ontora-api/revisions/7f57037fd94b/schema)
