---
title: "Register"
method: POST
path: "/oauth/register"
tags: ["OAuth"]
---

# Register

`POST /oauth/register`

## Request

- Base URL: `https://api.emile.wine` (the document declares no server; this is the origin it was published from)
- URL: `https://api.emile.wine/oauth/register`
- Auth: none declared

Dynamic Client Registration — RFC 7591. Unauthenticated by
design (stores need to register themselves without a pre-existing
account on Émile), tightly rate-limited (5/h per IP) to avoid
drive-by client spam.

All clients created here are public (`is_dynamic=true`, no secret)
— they must use PKCE for the auth code exchange. Confidential
clients are still possible but are curated by an admin via the
DB directly (no public endpoint exposes them).

## Request body

- RegisterRequest: RFC 7591 § 2 — a subset of the client metadata fields. The spec allows many more (jwks, contacts, tos_uri, …) — we accept them silently but only persist what we know how to handle, so aware stores remain conformant.
  - `client_name` string, required
  - `redirect_uris` string[], required
  - `grant_types` string[], nullable
  - `response_types` string[], nullable
  - `scope` string, nullable
  - `logo_uri` string, nullable

## Response `201`

Successful Response

- RegisterResponse: RFC 7591 § 3.2.1. `client_secret_expires_at = 0` means it never expires; the field is mandatory when a secret is returned.
  - `client_id` string, required
  - `client_secret` string, nullable
  - `client_id_issued_at` integer, required
  - `client_secret_expires_at` integer
  - `client_name` string, required
  - `redirect_uris` string[], required
  - `grant_types` string[], required
  - `response_types` string[], required
  - `scope` string, required
  - `logo_uri` string, nullable
  - `token_endpoint_auth_method` string

## Other responses

- `422`: Validation Error

---

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