---
title: "Create Sign Link"
method: POST
path: "/parental-consent/me/sign-link"
tags: ["parental-consent", "parental-consent"]
---

# Create Sign Link

`POST /parental-consent/me/sign-link`

Mint a guardian signing link.

`same_device` returns the path so the student can hand over their phone.
`email` mails it. The student is the only possible sender either way: we
hold no address for their parent, and the roster does not carry one.

A student could of course type their own address. That is not defended
against here and cannot be; it is why a coordinator still verifies, and why
the roster view shows the coordinator whether the signature arrived from
the same device as the student's own session.

Takes NO `db` parameter: the transaction runs in `_mint_sign_link` on the
threadpool and hands back plain values. See that function for why.

## Headers

- `authorization` string, nullable

## Request body

- object

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

## Changes

> 24 revisions in range; 1 not diffed.

- **2026-09-03** `aea5e6e7d830` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/fluentea/apis/aurqa-language-learning-platform-refactored/changes/parental-consent/me/sign-link/post.md)

---

[API](https://skmtc.dev/fluentea/apis/aurqa-language-learning-platform-refactored.md) · [All operations](https://skmtc.dev/fluentea/apis/aurqa-language-learning-platform-refactored/llms.txt) · [OpenAPI document](https://skmtc.dev/fluentea/apis/aurqa-language-learning-platform-refactored/revisions/ecd3f19d9e8b?raw)
