Xeonr Developer Docs
API SpecificationOAuth Clients

Create Client

POST
/xeonr.auth.api.v1.ClientsService/CreateClient

Creates a new OAuth client with the specified configuration. The client secret will be returned only in this response if has_secret is true.

Required scopes: oauth:clients:manage

AuthorizationBearer <token>

JWT access token obtained via OAuth2 flow or service account

In: header

Header Parameters

Connect-Protocol-Version*number

Define the version of the Connect protocol

Value in1
Connect-Timeout-Ms?number

Define the timeout, in ms

Request Body

application/json

hasSecret?boolean

Indicates if the Client should have a secret

name?string

Name of the new OAuth Client

Length1 <= length <= 64
redirectUri?string

URI to redirect to after authentication

Formaturi
Length1 <= length <= 256
supportsRefreshToken?boolean

Indicates if the Client supports refresh tokens

supportsImplicitGrant?boolean

Indicates if the Client supports implicit grant flow

supportsDeviceCodeGrant?boolean

Indicates if the Client supports device code grant flow

supportsCodeGrant?boolean

Indicates if the Client supports authorization code grant flow

websiteUrl?string

Website URL of the OAuth Client

Formaturi
Length1 <= length <= 128
description?string

Description of the OAuth Client

Length1 <= length <= 256
usesManagedBuckets?boolean

validate confidential is true

applicationId?string|null

the owning application_id

applicationBindings?

a list of enabled APIs

allowedDelegators?allowed_delegators

List of client IDs from which this client will accept delegated tokens via token exchange (RFC 8693)

backchannelLogoutUri?string|null

Backchannel logout URI for OIDC Back-Channel Logout 1.0 (must be HTTPS, or HTTP for localhost)

Formaturi
backchannelLogoutSessionRequired?boolean

Whether the RP requires a sid claim in the logout token

frontchannelLogoutUri?string|null

Front-channel logout URI for OIDC Front-Channel Logout 1.0 (must be HTTPS, or HTTP for localhost)

Formaturi
frontchannelLogoutSessionRequired?boolean

Whether the RP requires sid and iss in the logout request

postLogoutRedirectUris?post_logout_redirect_uris

List of allowed post-logout redirect URIs for RP-Initiated Logout

isVerified?boolean

Whether the client is verified (admin only - ignored for non-admin users)

[key: string]?never

Response Body

application/json

application/json

curl -X POST "https://auth.xeonr.io/xeonr.auth.api.v1.ClientsService/CreateClient" \  -H "Connect-Protocol-Version: 1" \  -H "Content-Type: application/json" \  -d '{}'
{
  "Client": {
    "clientId": "550e8400-e29b-41d4-a716-446655440000",
    "clientSecret": "sk_live_a1b2c3d4e5f6g7h8i9j0...",
    "name": "My OAuth App",
    "redirectUri": "https://myapp.example.com/oauth/callback",
    "supportsRefreshToken": true,
    "supportsImplicitGrant": true,
    "supportsDeviceCodeGrant": true,
    "supportsCodeGrant": true,
    "websiteUrl": "https://myapp.example.com",
    "createdAt": "2023-01-15T01:30:15.01Z",
    "updatedAt": "2023-01-15T01:30:15.01Z",
    "description": "A sample OAuth application for demonstration purposes",
    "isVerified": true,
    "applicationId": "app_prod_myapp",
    "usesManagedBuckets": true,
    "applicationBindings": [
      {
        "applicationId": "app_prod_myapp",
        "config": {
          "jsonConfig": {
            "property1": {},
            "property2": {}
          }
        }
      }
    ],
    "allowedDelegators": [
      "550e8400-e29b-41d4-a716-446655440001"
    ],
    "logoUrl": "https://cdn.example.com/logos/myapp.png",
    "backchannelLogoutUri": "https://myapp.example.com/backchannel-logout",
    "backchannelLogoutSessionRequired": true,
    "frontchannelLogoutUri": "https://myapp.example.com/frontchannel-logout",
    "frontchannelLogoutSessionRequired": true,
    "postLogoutRedirectUris": [
      "https://myapp.example.com/logged-out"
    ]
  }
}
{
  "code": "not_found",
  "message": "string",
  "details": [
    {
      "type": "string",
      "value": "string",
      "debug": {}
    }
  ]
}