---
title: Registration Requests API
path: reference/api/registration-requests
status: published
---

# Registration Requests API

Reference for the `Registration Requests` endpoint group — 6 endpoints.

Generated from the live OpenAPI spec. Re-run `_generate_api_reference.py` after backend changes.

## Authentication

All endpoints require a Bearer JWT in the `Authorization` header unless noted otherwise. See [Concepts → Tokens and scopes](/docs/scaikey/concepts/tokens-and-scopes) and [Reference → OAuth endpoints](/docs/scaikey/reference/oauth-endpoints) for how to obtain one.

## Endpoints

### **GET** `/api/v1/admin/registration-requests/`

_List Registration Requests_

List registration requests based on admin's access level.

- Super admins: See all requests
- Partner admins: See PARTNER requests for their partner + TENANT requests for tenants in their partner
- Tenant admins: See TENANT requests for their tenant only

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `page` | query | no | `integer` |  |
| `per_page` | query | no | `integer` |  |
| `status` | query | no | `string` \| `null` | Filter by status: PENDING, APPROVED, REJECTED, CANCELLED, EXPIRED |
| `scope` | query | no | `string` \| `null` | Filter by scope: GLOBAL, PARTNER, TENANT |
| `authorization` | header | no | `string` \| `null` |  |

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → object |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **POST** `/api/v1/admin/registration-requests/`

_Create Registration Request_

Create a new application registration request (admin-initiated).

The request will need to be approved by an admin with appropriate permissions.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `authorization` | header | no | `string` \| `null` |  |

**Request body:**

Required.

- `application/json` → [`RegistrationRequestCreate`](#schema-registrationrequestcreate)

**Responses:**

| Status | Body |
|---|---|
| `201` | `application/json` → object |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **DELETE** `/api/v1/admin/registration-requests/{request_id}`

_Cancel Registration Request_

Cancel a pending registration request.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `request_id` | path | yes | `string` |  |
| `authorization` | header | no | `string` \| `null` |  |

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → object |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **GET** `/api/v1/admin/registration-requests/{request_id}`

_Get Registration Request_

Get details of a specific registration request.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `request_id` | path | yes | `string` |  |
| `authorization` | header | no | `string` \| `null` |  |

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → object |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **POST** `/api/v1/admin/registration-requests/{request_id}/approve`

_Approve Registration Request_

Approve a registration request and create the application.

Returns the created application with client_id and client_secret (secret shown only once).

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `request_id` | path | yes | `string` |  |
| `authorization` | header | no | `string` \| `null` |  |

**Request body:**

- `application/json` → [`ApprovalData`](#schema-approvaldata) \| `null`

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → object |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **POST** `/api/v1/admin/registration-requests/{request_id}/reject`

_Reject Registration Request_

Reject a registration request with a reason.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `request_id` | path | yes | `string` |  |
| `authorization` | header | no | `string` \| `null` |  |

**Request body:**

Required.

- `application/json` → [`RejectionData`](#schema-rejectiondata)

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → object |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

## Schemas

Definitions for every type referenced by the endpoints above. Schema-to-schema references on this page link within the page; cross-page references would require visiting the linked page.

### `ApprovalData`

Data for approving a request.

| Field | Type | Required | Description |
|---|---|---|---|
| `notes` | `string` \| `null` | no |  |

### `HTTPValidationError`

| Field | Type | Required | Description |
|---|---|---|---|
| `detail` | array of [`ValidationError`](#schema-validationerror) | no |  |

### `RegistrationRequestCreate`

Create a new registration request.

| Field | Type | Required | Description |
|---|---|---|---|
| `scope` | `string` | yes | GLOBAL, PARTNER, or TENANT |
| `tenant_id` | `string` \| `null` | no | Required for TENANT scope |
| `partner_id` | `string` \| `null` | no | Required for PARTNER scope |
| `name` | `string` | yes |  |
| `description` | `string` \| `null` | no |  |
| `application_type` | `string` | yes | WEB, SPA, NATIVE, SERVICE, SAML_SP |
| `redirect_uris` | array of `string` | no |  |
| `post_logout_redirect_uris` | array of `string` \| `null` | no |  |
| `allowed_origins` | array of `string` \| `null` | no |  |
| `requested_scopes` | array of `string` | no | Default: `['openid', 'profile', 'email']` |
| `grant_types` | array of `string` | no | Default: `['authorization_code', 'refresh_token']` |
| `contact_email` | `string` (`email`) | yes |  |
| `contact_name` | `string` \| `null` | no |  |
| `organization_name` | `string` \| `null` | no |  |
| `website_url` | `string` \| `null` | no |  |

### `RejectionData`

Data for rejecting a request.

| Field | Type | Required | Description |
|---|---|---|---|
| `reason` | `string` | yes |  |

### `ValidationError`

| Field | Type | Required | Description |
|---|---|---|---|
| `loc` | array of `string` \| `integer` | yes |  |
| `msg` | `string` | yes |  |
| `type` | `string` | yes |  |
