---
title: "Service: /oauth/members/{member}/clients [POST]"
source: https://dev.pageseeder.com/api/services/oauth-clients_post.html
description: "Creates an OAuth client for a member with configurable parameters including name, scopes, token expiration, grant type, and redirect URI. Returns client registration details with generated identifier and secret."
last_updated: 2026-09-08T14:05:29+10:00
document_type: api_endpoint
operation_id: oauth-POST
resource_id: oauth
path_template: /oauth/members/{member}/clients
http_method: POST
api_category: oauth
implementation_version: 6.3000
api_since: 5.8900
deprecated_since: null
obsolete_since: null
api_support: experimental
cache_control: N/A
generated_at: 2026-09-02
tokens: ~655
---

# /oauth/members/\{member\}/clients \[POST\]

## Description

Create an [OAuth client](../../reference/glossary/oauth_client.md).

> **Note:** In practice the `scope` parameter must be specified, otherwise client access is limited to services like [get self](get-self_get.md).

## Parameters

| Name | Description | Required | Type | Default value |
| --- | --- | --- | --- | --- |
| name | The name of the client (informational) | yes | string |  |
| app | The name of the app (informational) | no | string |  |
| access-token-max-age | The max age of the access tokens in seconds | no | long | 1 hour |
| client-secret | The client secret | no | string | \[random string\] |
| client-uri | The URL for the client app (informational) | no | string |  |
| confidential | Whether the client is capable of maintaining confidentiality of credentials | no | boolean | true |
| description | The description of this client (informational) | no | string |  |
| grant-type | The grant type allowed for this client: `[authorization_code\|password\|client_credentials]` | no | string | authorization\_code |
| identifier | The OAuth 2.0 client ID - 16 digit hexadecimal number (admin only) | no | string | \[random hex number\] |
| redirect-uri | The redirection URI specific to this client | no | url |  |
| refresh-token-max-age | The max age of the refresh tokens in seconds | no | long | 30 days |
| scope | A space separated list of [scopes](../../reference/glossary/oauth_scopes.md) allowed for this client e.g. openid profile email | no | string |  |
| webhook-secret | The secret used for signing webhook requests (between 24 and 64 characters long) | no | string |  |

## Permission

The member themselves or an administrator.

## Response

```xml

<client-registration>
  <client id="1"
          identifier="2aa92c5a79baf3fe"
          requires-consent="false"
          confidential="false"
          name="My app"
          grant-type="authorization_code"
          [created="2020-03-08T12:34:00+10:00"]
          [modified="2020-03-10T11:24:00+10:00"]
          [last-token="2020-05-10T10:28:00+10:00"]
          [app="Timesheet"]
          [webhook-secret="S0meP@ssw0d"]
          [redirect-uri="http://example.org/login"]
          [description="My example timesheet"]
          [client-uri="http://example.org"]
          [scope="openid profile email"]
          access-token-max-age="7200"
          refresh-token-max-age="0">
    <member id="45" ...>
      <fullname>John Smith</fullname>
    </member>
  </client>
</client-registration>
```

## Error Handling

No specific errors expected for this service.

