---
title: "Generate a questioner link"
method: POST
path: "/api/partner/generate-link"
tags: ["partner-api"]
---

# Generate a questioner link

`POST /api/partner/generate-link`

Generate a questioner link on the partner's subdomain.
Validates requested coverages against partner's allowed_coverages.

## Request body

- AppRoutesPartnerApiGenerateLinkRequest
  - `lead_id` string, nullable — ID of the lead to attach the link to. Takes priority over `contact_email`.
  - `contact_email` string, nullable — Resolve the lead by email instead of `lead_id`. Used only when `lead_id` is omitted.
  - `coverages` string[], required — Coverage keys to include. Must be a subset of the coverages your partner account is allowed to offer.
  - `expires_in_days` integer, nullable — Days until the link expires. Omit or set null for no expiry.

## Response `201`

Successful Response

- GenerateLinkResponse
  - `success` boolean
  - `data` LinkData, required
    - `application_id` string, required
    - `token` string, required — Opaque token embedded in the public questioner URL.
    - `public_url` string, required — The hosted questioner URL.
    - `expires_at` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/riskcube/apis/slack-lead-manager.md) · [All operations](https://skmtc.dev/riskcube/apis/slack-lead-manager/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/riskcube/slack-lead-manager/revisions/4442bbae8296/schema)
