SecureAuth (incl. Cloudentity) Templates API

The templates API from SecureAuth (incl. Cloudentity) — 5 operation(s) for templates.

Operations 8

DELETE /theme/{themeID}/template/{fsPath} Delete Template #
GET /theme/{themeID}/template/{fsPath} Get Template #
PUT /theme/{themeID}/template/{fsPath} Update or Insert Template #
GET /theme/{themeID}/templates List Templates #
GET /theme/{themeID}/templates/zip Export Templates #
POST /theme/{themeID}/templates/zip Import Templates #
GET /themes/template/{fsPath} Get Default Template #
GET /themes/templates List Default Templates #

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/secureauth:secureauth-templates-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

secureauth-templates-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: 'SecureAuth Admin API


    The POST APIs support idempotency for safely retrying requests without accidentally performing the same operation twice.


    To use idempotent requests:


    1. Generate a unique idempotency key (32-255 characters long).

    2. Include the key in the X-Idempotency-Key header of your POST request.

    3. Retry failed requests with the same key within 1 minute.


    Responses for replayed requests will include the X-Idempotent-Replayed: true header.'
  title: SecureAuth Templates API
  version: latest
servers:
- url: https://localhost:8443/api/admin/default
tags:
- name: Templates
paths:
  /theme/{themeID}/template/{fsPath}:
    delete:
      description: Deletes the custom-branding template.
      operationId: deleteTemplate
      parameters:
      - description: A server will only return requested resources if the resource matches one of the listed ETag value
        in: header
        name: if-match
        schema:
          type: string
          format: etag
      - description: Unique identifier included in audit events for request tracking
        in: header
        name: x-correlation-id
        schema:
          type: string
      - description: Key used to safely retry failed requests without duplicate processing
        in: header
        name: x-idempotency-key
        schema:
          type: string
      - description: Theme ID
        in: path
        name: themeID
        required: true
        schema:
          type: string
      - description: File system path to the template
        in: path
        name: fsPath
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ' template has been deleted'
        '401':
          $ref: '#/components/responses/unauthorizedHTTPError'
        '403':
          $ref: '#/components/responses/forbiddenHTTPError'
        '404':
          $ref: '#/components/responses/notFoundHTTPError'
        '429':
          $ref: '#/components/responses/tooManyRequestsHTTPError'
      security:
      - admin: []
      summary: Delete Template
      tags:
      - Templates
    get:
      description: Returns an Template and its content.
      operationId: getTemplate
      parameters:
      - description: A server will only return requested resources if the resource matches one of the listed ETag value
        in: header
        name: if-match
        schema:
          type: string
          format: etag
      - description: Unique identifier included in audit events for request tracking
        in: header
        name: x-correlation-id
        schema:
          type: string
      - description: Key used to safely retry failed requests without duplicate processing
        in: header
        name: x-idempotency-key
        schema:
          type: string
      - description: Theme ID
        in: path
        name: themeID
        required: true
        schema:
          type: string
      - description: File system path to the template
        in: path
        name: fsPath
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Template'
        '401':
          $ref: '#/components/responses/unauthorizedHTTPError'
        '403':
          $ref: '#/components/responses/forbiddenHTTPError'
        '404':
          $ref: '#/components/responses/notFoundHTTPError'
        '429':
          $ref: '#/components/responses/tooManyRequestsHTTPError'
      security:
      - admin: []
      summary: Get Template
      tags:
      - Templates
    put:
      description: Updates an existing custom branding template, or inserts a new one.
      operationId: upsertTemplate
      parameters:
      - description: A server will only return requested resources if the resource matches one of the listed ETag value
        in: header
        name: if-match
        schema:
          type: string
          format: etag
      - description: Unique identifier included in audit events for request tracking
        in: header
        name: x-correlation-id
        schema:
          type: string
      - description: Key used to safely retry failed requests without duplicate processing
        in: header
        name: x-idempotency-key
        schema:
          type: string
      - description: Theme ID
        in: path
        name: themeID
        required: true
        schema:
          type: string
      - description: File system path to the template
        in: path
        name: fsPath
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Template'
        '400':
          $ref: '#/components/responses/badRequestHTTPError'
        '401':
          $ref: '#/components/responses/unauthorizedHTTPError'
        '403':
          $ref: '#/components/responses/forbiddenHTTPError'
        '404':
          $ref: '#/components/responses/notFoundHTTPError'
        '422':
          $ref: '#/components/responses/unprocessableEntityHTTPError'
        '429':
          $ref: '#/components/responses/tooManyRequestsHTTPError'
      security:
      - admin: []
      summary: Update or Insert Template
      tags:
      - Templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Template'
  /theme/{themeID}/templates:
    get:
      description: This API returns the file-system paths (fs_path) for all of the templates in the theme.
      operationId: listThemeTemplates
      parameters:
      - description: A server will only return requested resources if the resource matches one of the listed ETag value
        in: header
        name: if-match
        schema:
          type: string
          format: etag
      - description: Unique identifier included in audit events for request tracking
        in: header
        name: x-correlation-id
        schema:
          type: string
      - description: Key used to safely retry failed requests without duplicate processing
        in: header
        name: x-idempotency-key
        schema:
          type: string
      - description: Theme ID
        in: path
        name: themeID
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/TemplatePaths'
        '401':
          $ref: '#/components/responses/unauthorizedHTTPError'
        '403':
          $ref: '#/components/responses/forbiddenHTTPError'
        '429':
          $ref: '#/components/responses/tooManyRequestsHTTPError'
      security:
      - admin: []
      summary: List Templates
      tags:
      - Templates
  /theme/{themeID}/templates/zip:
    get:
      description: Returns the theme's templates in a Zip archive.
      operationId: exportThemeTemplates
      parameters:
      - description: A server will only return requested resources if the resource matches one of the listed ETag value
        in: header
        name: if-match
        schema:
          type: string
          format: etag
      - description: Unique identifier included in audit events for request tracking
        in: header
        name: x-correlation-id
        schema:
          type: string
      - description: Key used to safely retry failed requests without duplicate processing
        in: header
        name: x-idempotency-key
        schema:
          type: string
      - description: Theme ID
        in: path
        name: themeID
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/templatesArchive'
        '401':
          $ref: '#/components/responses/unauthorizedHTTPError'
        '403':
          $ref: '#/components/responses/forbiddenHTTPError'
        '404':
          $ref: '#/components/responses/notFoundHTTPError'
        '429':
          $ref: '#/components/responses/tooManyRequestsHTTPError'
      security:
      - admin: []
      summary: Export Templates
      tags:
      - Templates
    post:
      description: Imports the theme's templates from a Zip archive.
      operationId: importThemeTemplates
      parameters:
      - description: A server will only return requested resources if the resource matches one of the listed ETag value
        in: header
        name: if-match
        schema:
          type: string
          format: etag
      - description: Unique identifier included in audit events for request tracking
        in: header
        name: x-correlation-id
        schema:
          type: string
      - description: Key used to safely retry failed requests without duplicate processing
        in: header
        name: x-idempotency-key
        schema:
          type: string
      - description: Theme ID
        in: path
        name: themeID
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ' Theme templates have been inserted or updated'
        '401':
          $ref: '#/components/responses/unauthorizedHTTPError'
        '403':
          $ref: '#/components/responses/forbiddenHTTPError'
        '404':
          $ref: '#/components/responses/notFoundHTTPError'
        '429':
          $ref: '#/components/responses/tooManyRequestsHTTPError'
      security:
      - admin: []
      summary: Import Templates
      tags:
      - Templates
      requestBody:
        content:
          application/zip:
            schema:
              type: string
  /themes/template/{fsPath}:
    get:
      description: Returns the default, builtin Template and its content.
      operationId: getDefaultTemplate
      parameters:
      - description: A server will only return requested resources if the resource matches one of the listed ETag value
        in: header
        name: if-match
        schema:
          type: string
          format: etag
      - description: Unique identifier included in audit events for request tracking
        in: header
        name: x-correlation-id
        schema:
          type: string
      - description: Key used to safely retry failed requests without duplicate processing
        in: header
        name: x-idempotency-key
        schema:
          type: string
      - description: File system path to the template
        in: path
        name: fsPath
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Template'
        '400':
          $ref: '#/components/responses/badRequestHTTPError'
        '401':
          $ref: '#/components/responses/unauthorizedHTTPError'
        '403':
          $ref: '#/components/responses/forbiddenHTTPError'
        '404':
          $ref: '#/components/responses/notFoundHTTPError'
        '429':
          $ref: '#/components/responses/tooManyRequestsHTTPError'
      security:
      - admin: []
      summary: Get Default Template
      tags:
      - Templates
  /themes/templates:
    get:
      description: Returns the file-system paths (fs_path) for all of the default built-in templates.
      operationId: listDefaultTemplates
      responses:
        '200':
          $ref: '#/components/responses/TemplatePaths'
        '401':
          $ref: '#/components/responses/unauthorizedHTTPError'
        '403':
          $ref: '#/components/responses/forbiddenHTTPError'
        '429':
          $ref: '#/components/responses/tooManyRequestsHTTPError'
      security:
      - admin: []
      summary: List Default Templates
      tags:
      - Templates
components:
  responses:
    unprocessableEntityHTTPError:
      description: Unprocessable entity
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    forbiddenHTTPError:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    notFoundHTTPError:
      description: Not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    templatesArchive:
      description: Templates archive
      headers:
        etag:
          description: 'The ETag HTTP header is an identifier for a specific version of a resource


            in:header'
          schema:
            type: string
            format: etag
        x-external-error:
          description: 'Indicates that a 5xx error was caused by tenant-provided code


            in:header'
          schema:
            type: string
        x-trace-id:
          description: 'OpenTelemetry trace identifier


            in:header'
          schema:
            type: string
      content:
        application/json:
          schema:
            type: string
            format: binary
    TemplatePaths:
      description: TemplatePaths
      headers:
        etag:
          description: 'The ETag HTTP header is an identifier for a specific version of a resource


            in:header'
          schema:
            type: string
            format: etag
        x-external-error:
          description: 'Indicates that a 5xx error was caused by tenant-provided code


            in:header'
          schema:
            type: string
        x-trace-id:
          description: 'OpenTelemetry trace identifier


            in:header'
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TemplatePaths'
    unauthorizedHTTPError:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    tooManyRequestsHTTPError:
      description: Too many requests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Template:
      description: Template
      headers:
        etag:
          description: 'The ETag HTTP header is an identifier for a specific version of a resource


            in:header'
          schema:
            type: string
            format: etag
        x-external-error:
          description: 'Indicates that a 5xx error was caused by tenant-provided code


            in:header'
          schema:
            type: string
        x-trace-id:
          description: 'OpenTelemetry trace identifier


            in:header'
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Template'
    badRequestHTTPError:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    TemplatePaths:
      properties:
        fs_paths:
          description: list of template paths
          items:
            format: fsPath
            type: string
          type: array
      type: object
    Error:
      description: HTTP error response
      properties:
        details:
          type: object
        error:
          type: string
        error_code:
          type: string
        status_code:
          format: int64
          type: integer
      type: object
    Template:
      description: Custom Branding template
      properties:
        content:
          description: content of the template
          type: string
        created_at:
          description: timestamp when the template was created
          format: date-time
          type: string
        fs_path:
          description: path to the template in a filesystem zip archive
          format: fsPath
          type: string
        tenant_id:
          description: ID of the tenant
          example: default
          format: tenantID
          type: string
        theme_id:
          description: theme unique identifier
          format: themeID
          type: string
        updated_at:
          description: timestamp when the template was last updated
          format: date-time
          type: string
      required:
      - fs_path
      - tenant_id
      - theme_id
      type: object
  securitySchemes:
    admin:
      type: oauth2
      flows:
        authorizationCode:
          scopes: {}
          authorizationUrl: /default/admin/oauth2/authorize
          tokenUrl: /default/admin/oauth2/token