Skip to content

Product documentation

Applications

OAuth client registration and lifecycle — the convergence-target surface (create, patch, secret rotation with 24h overlap, token-usage observability).

Applications

OAuth client registration and lifecycle — the convergence-target surface (create, patch, secret rotation with 24h overlap, token-usage observability).

Base URL: https://api.stg.thoryn.org

Operations

MethodPathSummaryScopes
GET/api/v1/applicationsApplications Listtenant:applications.read + tenant:clients.read
POST/api/v1/applicationsApplications Createtenant:applications.write + tenant:clients.write
GET/api/v1/applications/{clientId}Applications Gettenant:applications.read + tenant:clients.read
PATCH/api/v1/applications/{clientId}Applications Patchtenant:applications.write + tenant:clients.write
DELETE/api/v1/applications/{clientId}Applications Deletetenant:applications.write + tenant:clients.write
POST/api/v1/applications/{clientId}/secret/rotateApplications Rotate Secrettenant:applications.write + tenant:clients.write
GET/api/v1/applications/{clientId}/secrets/stateApplications Get Secrets Statetenant:applications.read + tenant:clients.read
GET/api/v1/applications/{clientId}/usageApplications Get Usagetenant:applications.read + tenant:clients.read

Operation details

GET /api/v1/applications

Applications List

  • Operation ID: applicationsList
  • Required scopes: tenant:applications.read + tenant:clients.read

Parameters:

NameInRequiredTypeDescription
limitquerynointeger
cursorquerynostring

Responses:

StatusDescriptionBody
200OKobject
401Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim.Problem (problem+json)
403Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path.Problem (problem+json)

POST /api/v1/applications

Applications Create

  • Operation ID: applicationsCreate
  • Required scopes: tenant:applications.write + tenant:clients.write

Request body (required): application/jsonCreateApplicationRequest

Responses:

StatusDescriptionBody
200OKobject
401Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim.Problem (problem+json)
403Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path.Problem (problem+json)

GET /api/v1/applications/{clientId}

Applications Get

  • Operation ID: applicationsGet
  • Required scopes: tenant:applications.read + tenant:clients.read

Parameters:

NameInRequiredTypeDescription
clientIdpathyesstring

Responses:

StatusDescriptionBody
200OKobject
401Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim.Problem (problem+json)
403Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path.Problem (problem+json)

PATCH /api/v1/applications/{clientId}

Applications Patch

  • Operation ID: applicationsPatch
  • Required scopes: tenant:applications.write + tenant:clients.write

Parameters:

NameInRequiredTypeDescription
clientIdpathyesstring

Request body (required): application/jsonUpdateApplicationRequest

Responses:

StatusDescriptionBody
200OKobject
401Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim.Problem (problem+json)
403Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path.Problem (problem+json)

DELETE /api/v1/applications/{clientId}

Applications Delete

  • Operation ID: applicationsDelete
  • Required scopes: tenant:applications.write + tenant:clients.write

Parameters:

NameInRequiredTypeDescription
clientIdpathyesstring

Responses:

StatusDescriptionBody
200OKobject
401Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim.Problem (problem+json)
403Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path.Problem (problem+json)

POST /api/v1/applications/{clientId}/secret/rotate

Applications Rotate Secret

  • Operation ID: applicationsRotateSecret
  • Required scopes: tenant:applications.write + tenant:clients.write

Parameters:

NameInRequiredTypeDescription
clientIdpathyesstring

Responses:

StatusDescriptionBody
200OKobject
401Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim.Problem (problem+json)
403Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path.Problem (problem+json)

GET /api/v1/applications/{clientId}/secrets/state

Applications Get Secrets State

  • Operation ID: applicationsGetSecretsState
  • Required scopes: tenant:applications.read + tenant:clients.read

Parameters:

NameInRequiredTypeDescription
clientIdpathyesstring

Responses:

StatusDescriptionBody
200OKobject
401Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim.Problem (problem+json)
403Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path.Problem (problem+json)

GET /api/v1/applications/{clientId}/usage

Applications Get Usage

  • Operation ID: applicationsGetUsage
  • Required scopes: tenant:applications.read + tenant:clients.read

Parameters:

NameInRequiredTypeDescription
clientIdpathyesstring
windowquerynostring

Responses:

StatusDescriptionBody
200OKobject
401Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim.Problem (problem+json)
403Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path.Problem (problem+json)