---
title: "Dynamic client registration (RFC 7591)"
method: POST
path: "/v1/oauth/register/"
tags: ["OAuth"]
---

# Dynamic client registration (RFC 7591)

`POST /v1/oauth/register/`

## Request

- Base URL: `https://api.educaplay.com`
- URL: `https://api.educaplay.com/v1/oauth/register/`
- Auth: none required

Registers a public client and returns its `client_id`. The identifier is self-contained and signed, so nothing is stored on the server: it encodes the registered redirect URIs and the client name, and the authorization page checks every request against them. Clients that publish a client ID metadata document do not need this endpoint.

## Request body

- ClientRegistrationRequest
  - `redirect_uris` string[], required: HTTPS redirect URIs, or loopback URIs for local clients.
  - `client_name` string
  - `token_endpoint_auth_method` 'none'
  - `grant_types` string[]
  - `response_types` string[]

## Response `201`

Client registered.

- ClientRegistrationResponse
  - `client_id` string
  - `client_id_issued_at` integer: Unix timestamp.
  - `redirect_uris` string[]
  - `token_endpoint_auth_method` string
  - `grant_types` string[]
  - `response_types` string[]
  - `client_name` string

## Other responses

- `400`: `invalid_client_metadata` when the body is not a JSON object, `invalid_redirect_uri` when no acceptable HTTPS or loopback redirect URI is given.

## Changes

- **2026-10-19** `e31d97013d0d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/educaplay/apis/educaplay-api/changes/v1/oauth/register/post.md)

---

[API](https://skmtc.dev/educaplay/apis/educaplay-api.md) · [All operations](https://skmtc.dev/educaplay/apis/educaplay-api/llms.txt) · [OpenAPI document](https://skmtc.dev/educaplay/apis/educaplay-api/revisions/e31d97013d0d?raw)
