---
title: "Create Signup Consent"
method: POST
path: "/signup-consent"
tags: ["Signup consent"]
---

# Create Signup Consent

`POST /signup-consent`

## Request

- Base URL: `https://api.excellence-ai.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.excellence-ai.com/signup-consent`
- Auth: none declared

## Request body

- SignupConsentCreate: What a person gives before an SSO signup. Validated like `/register`.
  - `role` 'student' | 'teacher'
  - `birth_date` string, nullable
  - `terms_accepted` boolean

## Response `200`

Successful Response

- SignupConsentResponse: The opaque id the SSO entry points carry (single use, 30 minutes).
  - `consent_ticket` string, required

## Other responses

- `403`: UNDER_DIGITAL_MAJORITY: a student under 15 cannot sign up alone; no account is created
- `422`: BIRTH_DATE_REQUIRED / INVALID_BIRTH_DATE / TERMS_NOT_ACCEPTED: the self-serve student signup lacks a usable birth date or the acceptance of the terms
- `429`: RATE_LIMITED: too many requests from this IP address (`retry_after_seconds`, also the `Retry-After` header)

## Changes

> 55 revisions in range; 1 not diffed.

- **2026-10-08** `42333a3f92ce`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/excellence-ai/apis/excellence-learning/changes/signup-consent/post.md)

---

[API](https://skmtc.dev/excellence-ai/apis/excellence-learning.md) - [All operations](https://skmtc.dev/excellence-ai/apis/excellence-learning/llms.txt) - [OpenAPI document](https://skmtc.dev/excellence-ai/apis/excellence-learning/revisions/379e4a57dee8?raw)
