Transmit Security Applications API

The Applications API from Transmit Security — 14 operation(s) for applications.

Operations 23

POST /v1/applications/{app_id}/organizations/{organization_id}/role-groups/set Set org's role groups #
GET /v1/applications/{app_id}/organizations/{organization_id}/role-groups Get org's role groups #
POST /v1/applications/{app_id}/organizations/{organization_id}/roles-and-groups/set Set org's roles and role groups #
GET /v1/applications/{app_id}/organizations/{organization_id}/roles-and-groups Get org's roles and role groups #
POST /v1/applications/{appId}/clients Create client #
GET /v1/applications/{appId}/clients Get all clients #
DELETE /v1/applications/{appId}/clients Delete all clients #
GET /v1/applications/{appId}/clients/{clientId} Get client by ID #
PUT /v1/applications/{appId}/clients/{clientId} Update client #
DELETE /v1/applications/{appId}/clients/{clientId} Delete client #
PUT /v1/applications/{appId}/clients/{clientId}/resources Update client resources #
POST /v1/applications Create app #
GET /v1/applications Get all apps #
GET /v1/applications/list Get all apps basic information #
GET /v1/applications/{appId} Get app by ID #
PUT /v1/applications/{appId} Update app #
DELETE /v1/applications/{appId} Delete app #
PUT /v1/applications/{appId}/resources Update app resources #
POST /v1/applications/signing-keys Create signing key #
GET /v1/applications/signing-keys Get all token signing keys #
POST /v1/applications/signing-keys/upload Upload signing key #
PUT /v1/applications/signing-keys/{id} Update a signing key #
DELETE /v1/applications/signing-keys/{id} Delete signing key #

Documentation

Specifications

Schemas & Data

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/transmit-security-applications-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

transmit-security-applications-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: '1.0'
  title: One-Time Login Applications API
  description: Login users using one-time login methods like magic links or OTPs. This implements a backend-to-backend integration for authentication.
servers:
- url: https://api.sbx.transmitsecurity.io/cis
  description: Sandbox environment
- url: https://api.transmitsecurity.io/cis
  description: Production environment (US)
- url: https://api.eu.transmitsecurity.io/cis
  description: Production environment (EU)
- url: https://api.ca.transmitsecurity.io/cis
  description: Production environment (CA)
- url: https://api.au.transmitsecurity.io/cis
  description: Production environment (AU)
security: []
tags:
- name: Applications
paths:
  /v1/applications/{app_id}/organizations/{organization_id}/role-groups/set:
    post:
      operationId: setAssignedRoleGroups
      summary: Set org's role groups
      description: 'Update the role groups of the organization for a specific application, which will replace any existing role groups for the organization. These role groups must first be created for the application. Once added to the organization, roles that belong to these role groups can be assigned to members of the organization to control their access to the application. <br><br>**Required permissions**: `organizations:edit`, `orgs:edit`.'
      parameters:
      - name: app_id
        required: true
        in: path
        description: ID of the application to set the roles to
        schema:
          type: string
      - name: organization_id
        required: true
        in: path
        description: ID of the organization to set the roles to
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiRoleGroupIds'
      responses:
        '202':
          description: ''
      security:
      - AdminAccessToken: []
      tags:
      - Applications
  /v1/applications/{app_id}/organizations/{organization_id}/role-groups:
    get:
      operationId: getAssignedRoleGroups
      summary: Get org's role groups
      description: 'Retrieves all role groups that were added to the organization for a specific application. Roles that belong to these role groups can be assigned to members of the organization to control their access to the application. <br><br>**Required permissions**: `organizations:read`, `orgs:read`.'
      parameters:
      - name: app_id
        required: true
        in: path
        description: ID of the application to assign the roles to
        schema:
          type: string
      - name: organization_id
        required: true
        in: path
        description: ID of the organization to assign the roles to
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                title: ApiOkResponse-getAssignedRoleGroups
                type: object
                required:
                - result
                description: ''
                properties:
                  result:
                    $ref: '#/components/schemas/RoleGroupsAndDefaultOrgRolesDto'
      security:
      - AdminAccessToken: []
      tags:
      - Applications
  /v1/applications/{app_id}/organizations/{organization_id}/roles-and-groups/set:
    post:
      operationId: setAssignedRolesAndGroups
      summary: Set org's roles and role groups
      description: 'Update the roles and role groups of the organization for a specific application, which will replace any existing assignments. These roles and role groups must first be created for the application. Once added to the organization, roles that belong to these role groups or are directly assigned can be assigned to members of the organization to control their access to the application. <br><br>**Required permissions**: `organizations:edit`, `orgs:edit`.'
      parameters:
      - name: app_id
        required: true
        in: path
        description: ID of the application
        schema:
          type: string
      - name: organization_id
        required: true
        in: path
        description: ID of the organization
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RolesAndRoleGroupsInputDto'
      responses:
        '202':
          description: ''
      security:
      - AdminAccessToken: []
      tags:
      - Applications
  /v1/applications/{app_id}/organizations/{organization_id}/roles-and-groups:
    get:
      operationId: getAssignedRolesAndGroups
      summary: Get org's roles and role groups
      description: 'Retrieves all roles and role groups that were added to the organization for a specific application. Roles that belong to these role groups or are directly assigned can be assigned to members of the organization to control their access to the application. <br><br>**Required permissions**: `organizations:read`, `orgs:read`.'
      parameters:
      - name: app_id
        required: true
        in: path
        description: ID of the application
        schema:
          type: string
      - name: organization_id
        required: true
        in: path
        description: ID of the organization
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                title: ApiOkResponse-getAssignedRolesAndGroups
                type: object
                required:
                - result
                description: ''
                properties:
                  result:
                    $ref: '#/components/schemas/RolesAndRoleGroupsDto'
      security:
      - AdminAccessToken: []
      tags:
      - Applications
  /v1/applications/{appId}/clients:
    post:
      operationId: createAppClient
      summary: Create client
      description: 'Create a new client. <br><br>**Required permissions**: `apps:create`, `apps:edit`.'
      parameters:
      - name: appId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/ApiCreateOidcClientInput'
              - $ref: '#/components/schemas/ApiCreateSamlClientInput'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/ApiOidcClient'
                - $ref: '#/components/schemas/ApiSamlClient'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentifierIsTakenHttpError'
      security:
      - ClientAccessToken: []
      - AdminAccessToken: []
      tags:
      - Applications
    get:
      operationId: getAppClients
      summary: Get all clients
      description: 'Retrieves a list of clients for an application. <br><br>**Required permissions**: `apps:read`.'
      parameters:
      - name: appId
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                items:
                  anyOf:
                  - $ref: '#/components/schemas/ApiOidcClient'
                  - $ref: '#/components/schemas/ApiSamlClient'
                type: array
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
      security:
      - ClientAccessToken: []
      - AdminAccessToken: []
      tags:
      - Applications
    delete:
      operationId: deleteAppClients
      summary: Delete all clients
      description: Deletes all clients for an application.
      parameters:
      - name: appId
        required: true
        in: path
        schema:
          type: string
      responses:
        '204':
          description: ''
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundHttpError'
      security:
      - ClientAccessToken: []
      - AdminAccessToken: []
      tags:
      - Applications
  /v1/applications/{appId}/clients/{clientId}:
    get:
      operationId: getAppClientById
      summary: Get client by ID
      description: 'Retrieves a client by client ID. <br><br>**Required permissions**: `apps:read`.'
      parameters:
      - name: clientId
        required: true
        in: path
        description: ID of the client to retrieve
        schema:
          type: string
      - name: appId
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/ApiOidcClient'
                - $ref: '#/components/schemas/ApiSamlClient'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundHttpError'
      security:
      - ClientAccessToken: []
      - AdminAccessToken: []
      tags:
      - Applications
    put:
      operationId: updateAppClient
      summary: Update client
      description: 'Update a client. Note: Fields that are objects cannot be partially updated, since the new value you set will just replace the current one. <br><br>**Required permissions**: `apps:edit`, `apps:create`.'
      parameters:
      - name: clientId
        required: true
        in: path
        description: ID of the client to update
        schema:
          type: string
      - name: appId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/ApiUpdateOidcClientInput'
              - $ref: '#/components/schemas/ApiUpdateSamlClientInput'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/ApiOidcClient'
                - $ref: '#/components/schemas/ApiSamlClient'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundHttpError'
      security:
      - ClientAccessToken: []
      - AdminAccessToken: []
      tags:
      - Applications
    delete:
      operationId: deleteAppClient
      summary: Delete client
      description: 'Delete a client. <br><br>**Required permissions**: `apps:delete`, `apps:create`, `apps:edit`.'
      parameters:
      - name: clientId
        required: true
        in: path
        description: ID of the client to delete
        schema:
          type: string
      - name: appId
        required: true
        in: path
        schema:
          type: string
      responses:
        '204':
          description: ''
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundHttpError'
      security:
      - ClientAccessToken: []
      - AdminAccessToken: []
      tags:
      - Applications
  /v1/applications/{appId}/clients/{clientId}/resources:
    put:
      operationId: updateAppClientResources
      summary: Update client resources
      description: Update the list of resources that a client is allowed to explicitly request access to
      parameters:
      - name: clientId
        required: true
        in: path
        schema:
          type: string
      - name: appId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiUpdateResourceInAppInput'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/ApiOidcClient'
                - $ref: '#/components/schemas/ApiSamlClient'
      security:
      - ClientAccessToken: []
      - AdminAccessToken: []
      tags:
      - Applications
  /v1/applications:
    post:
      operationId: createApp
      summary: Create app
      description: 'Create a new application with a default client. The fields marked as deprecated are now managed on the client level. To update a default client, create additional clients, or fetch all app clients, use `/clients` or `applications/{appId}/clients` endpoints. <br><br>**Required permissions**: `apps:create`, `[appId]:create`.'
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiCreateAppInput'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                title: ApiCreatedResponse-createApp
                type: object
                required:
                - result
                description: App successfully created
                properties:
                  result:
                    $ref: '#/components/schemas/ApiApp'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentifierIsTakenHttpError'
      security:
      - ClientAccessToken: []
      tags:
      - Applications
    get:
      operationId: getAllApps
      summary: Get all apps
      description: 'Retrieves a list of all applications with their default clients. The fields marked as deprecated are now managed on the client level. To update a default client, create additional clients, or fetch all app clients, use `/clients` or `applications/{appId}/clients` endpoints. <br><br>**Required permissions**: `apps:read`, `apps:list`, `[appId]:read`, `[appId]:list`.'
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                title: ApiOkResponse-getAllApps
                type: object
                required:
                - result
                description: Successfully fetched apps
                properties:
                  result:
                    type: array
                    items:
                      $ref: '#/components/schemas/ApiAppWithoutLogo'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
      security:
      - ClientAccessToken: []
      tags:
      - Applications
  /v1/applications/list:
    get:
      operationId: getAppsList
      summary: Get all apps basic information
      description: 'Retrieves a list of all applications with their basic information. <br><br>**Required permissions**: `apps:list`, `users:read`, `organizations:read`, `roles:read`, `orgs:read`, `[appId]:list`.'
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                title: ApiOkResponse-getAppsList
                type: object
                required:
                - result
                description: Successfully fetched apps
                properties:
                  result:
                    type: array
                    items:
                      $ref: '#/components/schemas/ApiBasicApp'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
      security:
      - ClientAccessToken: []
      tags:
      - Applications
  /v1/applications/{appId}:
    get:
      operationId: getAppById
      summary: Get app by ID
      description: 'Retrieves an application by application ID with the default client. The fields marked as deprecated are now managed on the client level. To update a default client, create additional clients, or fetch all app clients, use `/clients` or `applications/{appId}/clients` endpoints. <br><br>**Required permissions**: `apps:read`, `[appId]:read`.'
      parameters:
      - name: appId
        required: true
        in: path
        description: ID of the application to retrieve
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                title: ApiOkResponse-getAppById
                type: object
                required:
                - result
                description: Successfully fetched app
                properties:
                  result:
                    $ref: '#/components/schemas/ApiApp'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundHttpError'
      security:
      - ClientAccessToken: []
      tags:
      - Applications
    put:
      operationId: updateApp
      summary: Update app
      description: 'Updates an application. The fields marked as deprecated are now managed on the client level. To update a default client, create additional clients, or fetch all app clients, use `/clients` or `applications/{appId}/clients` endpoints. Note: Fields that are objects cannot be partially updated, since the new value you set will just replace the current one. <br><br>**Required permissions**: `apps:edit`, `[appId]:edit`.'
      parameters:
      - name: appId
        required: true
        in: path
        description: ID of the application to update
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiUpdateAppInput'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                title: ApiOkResponse-updateApp
                type: object
                required:
                - result
                description: App successfully updated
                properties:
                  result:
                    $ref: '#/components/schemas/ApiApp'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundHttpError'
      security:
      - ClientAccessToken: []
      tags:
      - Applications
    delete:
      operationId: deleteApp
      summary: Delete app
      description: 'Delete an application. <br><br>**Required permissions**: `apps:delete`, `[appId]:delete`.'
      parameters:
      - name: appId
        required: true
        in: path
        description: ID of the application to delete
        schema:
          type: string
      responses:
        '204':
          description: ''
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundHttpError'
      security:
      - ClientAccessToken: []
      tags:
      - Applications
  /v1/applications/{appId}/resources:
    put:
      operationId: updateResourcesInApp
      summary: Update app resources
      description: Update the list of resources that a default client of the application is allowed to explicitly request access to
      deprecated: true
      parameters:
      - name: appId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiUpdateResourceInAppInput'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                title: ApiOkResponse-updateResourcesInApp
                type: object
                required:
                - result
                description: Resources successfully updated in app
                properties:
                  result:
                    $ref: '#/components/schemas/ApiApp'
      security:
      - ClientAccessToken: []
      tags:
      - Applications
  /v1/applications/signing-keys:
    post:
      operationId: createClientTokenSigningKey
      summary: Create signing key
      description: 'Create a new signing key. <br><br>**Required permissions**: `apps:create`, `[appId]:create`, `apps:edit`, `[appId]:edit`.'
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTokenSigningKeyInput'
      responses:
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentifierIsTakenHttpError'
      security:
      - ClientAccessToken: []
      tags:
      - Applications
    get:
      operationId: getClientTokenSigningKeys
      summary: Get all token signing keys
      description: 'Retrieves a list of token signing keys for an application. <br><br>**Required permissions**: `apps:read`, `[appId]:read`.'
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                items:
                  anyOf:
                  - $ref: '#/components/schemas/ApiTokenSigningKey'
                type: array
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
      security:
      - ClientAccessToken: []
      tags:
      - Applications
  /v1/applications/signing-keys/upload:
    post:
      operationId: uploadClientTokenSigningKey
      summary: Upload signing key
      description: 'Upload a new signing key. <br><br>**Required permissions**: `apps:create`, `[appId]:create`, `apps:edit`, `[appId]:edit`.'
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadTokenSigningKey'
      responses:
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentifierIsTakenHttpError'
      security:
      - ClientAccessToken: []
      tags:
      - Applications
  /v1/applications/signing-keys/{id}:
    put:
      operationId: updateTokenSigningKey
      summary: Update a signing key
      description: 'Update a signing key. <br><br>**Required permissions**: `apps:create`, `[appId]:create`, `apps:edit`, `[appId]:edit`.'
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTokenSigningKey'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTokenSigningKey'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
      security:
      - ClientAccessToken: []
      tags:
      - Applications
    delete:
      operationId: deleteClientTokenSigningKey
      summary: Delete signing key
      description: 'Delete a signing key. <br><br>**Required permissions**: `apps:delete`, `[appId]:delete`, `apps:create`, `[appId]:create`, `apps:edit`, `[appId]:edit`.'
      parameters:
      - name: id
        required: true
        in: path
        description: ID of the signing key to delete
        schema:
          type: string
      responses:
        '204':
          description: ''
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestHttpError'
      security:
      - ClientAccessToken: []
      tags:
      - Applications
components:
  schemas:
    ApiAuthenticatorAppPreferences:
      type: object
      properties:
        is_centralized:
          type: boolean
          description: Indicates whether to set the application as the Authentication Hub for this tenant
          default: false
        login_uri:
          type: string
          description: URI of the application that will initiate an authentication flow when centralized login is requested
          example: https://www.example.com/login
      required:
      - is_centralized
      - login_uri
    TotpConfiguration:
      type: object
      properties:
        failuresExpireIn:
          type: number
          description: Number of minutes until previous failed attempts are considered expired. Must be between 1 and 525600 minutes (1 year).
          default: 15
          example: 15
          minimum: 1
          maximum: 525600
        lockoutTiers:
          description: Progressive lockout tiers based on failed attempts
          type: array
          items:
            $ref: '#/components/schemas/LockoutTier'
        algorithm:
          type: string
          enum:
          - sha1
          - sha256
          - sha512
          description: The algorithm used to generate the TOTP code
          default: sha1
        digits:
          type: number
          description: Number of digits in the generated TOTP code, must be 6 or 8
          example: 6
          default: 6
        period:
          type: number
          description: Number of seconds in which the TOTP code is valid
          example: 30
          default: 30
        window:
          type: number
          description: Number of windows to check for valid TOTP codes
          example: 2
          default: 1
        issuer:
          type: string
          description: TOTP issuer
          example: My Company
        maxFailures:
          type: number
          description: Number of wrong TOTP attempts allowed before the passcode is invalidated. Must be between 1 and 20.
          example: 3
          default: 5
          deprecated: true
        lockoutDuration:
          type: number
          description: TOTP lockout duration (in minutes) after maximum attempts are reached
          example: 15
          default: 15
          deprecated: true
        maxTotpPerUser:
          type: number
          description: Maximum number of TOTP authenticators allowed per user. Must be between 1 and 50.
          example: 1
          default: 1
    ApiIdTokenEncryptionConfiguration:
      type: object
      properties:
        enabled:
          type: boolean
          description: Determines if ID token encryption is enabled for the client
          default: false
        jwks:
          type: object
          description: A set of JWK keys containing the public keys for the client to use for ID token encryption
      required:
      - enabled
    MessageConfiguration:
      type: object
      properties:
        primaryColor:
          type: string
          description: Primary color of the email, specified as a Hex color
        from:
          type: string
          description: Origin of the email message
        subject:
          type: string
          description: Subject of the email message
      required:
      - primaryColor
    EmailConfiguration:
      type: object
      properties:
        expiresIn:
          type: number
          description: Number of minutes until the email link/code expires
        linksPerUser:
          type: number
          description: Allowed magic links to send a user per minute
        message:
          $ref: '#/components/schemas/MessageConfiguration'
      required:
      - expiresIn
      - linksPerUser
      - message
    LockoutTier:
      type: object
      properties:
        attempts:
          type: number
          description: Number of failed attempts before this tier is triggered
          example: 3
          minimum: 1
        duration:
          type: number
          description: Lockout duration in minutes for this tier
          example: 15
          minimum: 1
          maximum: 525600
      required:
      - attempts
      - duration
    NotFoundHttpError:
      type: object
      properties:
        message:
          type: string
        error_code:
          type: number
          example: 404
      required:
      - message
      - error_code
    PinAuthenticatorConfiguration:
      type: object
      properties:
        failuresExpireIn:
          type: number
          description: Number of minutes until previous failed attempts are considered expired. Must be between 1 and 525600 minutes (1 year).
          default: 15
          example: 15
          minimum: 1
          maximum: 525600
        lockoutTiers:
          description: Progressive lockout tiers based on failed attempts
          type: array
          items:
            $ref: '#/components/schemas/LockoutTier'
        maxFailures:
          type: number
          description: Number of wrong PIN Authenticator attempts allowed before the passcode is invalidated. Must be between 1 and 20.
          example: 3
          default: 5
          deprecated: true
        lockoutDuration:
          type: number
          description: PIN Authenticator lockout duration (in minutes) after maximum attempts are reached
          example: 15
          default: 15
          deprecated: true
    ApiCreateSamlClientInput:
      type: object
      properties:
        name:
          type: string
          description: Name of the client
          example: My Client
        description:
          type: string
          description: Short 

# --- truncated at 32 KB (117 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/transmit-security/refs/heads/main/openapi/transmit-security-applications-api-openapi.yml