Authentik Stages API

Flow stages: identification, password, consent, prompt, email, captcha, mTLS, redirect, user write/login/logout/delete, account lockdown and every authenticator setup and validation stage.

Operations 210

GET /stages/account_lockdown/ #
POST /stages/account_lockdown/ #
GET /stages/account_lockdown/{stage_uuid}/ #
PUT /stages/account_lockdown/{stage_uuid}/ #
PATCH /stages/account_lockdown/{stage_uuid}/ #
DELETE /stages/account_lockdown/{stage_uuid}/ #
GET /stages/account_lockdown/{stage_uuid}/used_by/ #
GET /stages/all/ #
GET /stages/all/{stage_uuid}/ #
DELETE /stages/all/{stage_uuid}/ #
GET /stages/all/{stage_uuid}/used_by/ #
GET /stages/all/types/ #
GET /stages/all/user_settings/ #
GET /stages/authenticator/duo/ #
POST /stages/authenticator/duo/ #
GET /stages/authenticator/duo/{stage_uuid}/ #
PUT /stages/authenticator/duo/{stage_uuid}/ #
PATCH /stages/authenticator/duo/{stage_uuid}/ #
DELETE /stages/authenticator/duo/{stage_uuid}/ #
POST /stages/authenticator/duo/{stage_uuid}/enrollment_status/ #
POST /stages/authenticator/duo/{stage_uuid}/import_device_manual/ #
POST /stages/authenticator/duo/{stage_uuid}/import_devices_automatic/ #
GET /stages/authenticator/duo/{stage_uuid}/used_by/ #
GET /stages/authenticator/email/ #
POST /stages/authenticator/email/ #
GET /stages/authenticator/email/{stage_uuid}/ #
PUT /stages/authenticator/email/{stage_uuid}/ #
PATCH /stages/authenticator/email/{stage_uuid}/ #
DELETE /stages/authenticator/email/{stage_uuid}/ #
GET /stages/authenticator/email/{stage_uuid}/used_by/ #
GET /stages/authenticator/endpoint_gdtc/ #
POST /stages/authenticator/endpoint_gdtc/ #
GET /stages/authenticator/endpoint_gdtc/{stage_uuid}/ #
PUT /stages/authenticator/endpoint_gdtc/{stage_uuid}/ #
PATCH /stages/authenticator/endpoint_gdtc/{stage_uuid}/ #
DELETE /stages/authenticator/endpoint_gdtc/{stage_uuid}/ #
GET /stages/authenticator/endpoint_gdtc/{stage_uuid}/used_by/ #
GET /stages/authenticator/sms/ #
POST /stages/authenticator/sms/ #
GET /stages/authenticator/sms/{stage_uuid}/ #
PUT /stages/authenticator/sms/{stage_uuid}/ #
PATCH /stages/authenticator/sms/{stage_uuid}/ #
DELETE /stages/authenticator/sms/{stage_uuid}/ #
GET /stages/authenticator/sms/{stage_uuid}/used_by/ #
GET /stages/authenticator/static/ #
POST /stages/authenticator/static/ #
GET /stages/authenticator/static/{stage_uuid}/ #
PUT /stages/authenticator/static/{stage_uuid}/ #
PATCH /stages/authenticator/static/{stage_uuid}/ #
DELETE /stages/authenticator/static/{stage_uuid}/ #
GET /stages/authenticator/static/{stage_uuid}/used_by/ #
GET /stages/authenticator/totp/ #
POST /stages/authenticator/totp/ #
GET /stages/authenticator/totp/{stage_uuid}/ #
PUT /stages/authenticator/totp/{stage_uuid}/ #
PATCH /stages/authenticator/totp/{stage_uuid}/ #
DELETE /stages/authenticator/totp/{stage_uuid}/ #
GET /stages/authenticator/totp/{stage_uuid}/used_by/ #
GET /stages/authenticator/validate/ #
POST /stages/authenticator/validate/ #
GET /stages/authenticator/validate/{stage_uuid}/ #
PUT /stages/authenticator/validate/{stage_uuid}/ #
PATCH /stages/authenticator/validate/{stage_uuid}/ #
DELETE /stages/authenticator/validate/{stage_uuid}/ #
GET /stages/authenticator/validate/{stage_uuid}/used_by/ #
GET /stages/authenticator/webauthn/ #
POST /stages/authenticator/webauthn/ #
GET /stages/authenticator/webauthn/{stage_uuid}/ #
PUT /stages/authenticator/webauthn/{stage_uuid}/ #
PATCH /stages/authenticator/webauthn/{stage_uuid}/ #
DELETE /stages/authenticator/webauthn/{stage_uuid}/ #
GET /stages/authenticator/webauthn/{stage_uuid}/used_by/ #
GET /stages/authenticator/webauthn_device_types/ #
GET /stages/authenticator/webauthn_device_types/{aaguid}/ #
GET /stages/captcha/ #
POST /stages/captcha/ #
GET /stages/captcha/{stage_uuid}/ #
PUT /stages/captcha/{stage_uuid}/ #
PATCH /stages/captcha/{stage_uuid}/ #
DELETE /stages/captcha/{stage_uuid}/ #
GET /stages/captcha/{stage_uuid}/used_by/ #
GET /stages/deny/ #
POST /stages/deny/ #
GET /stages/deny/{stage_uuid}/ #
PUT /stages/deny/{stage_uuid}/ #
PATCH /stages/deny/{stage_uuid}/ #
DELETE /stages/deny/{stage_uuid}/ #
GET /stages/deny/{stage_uuid}/used_by/ #
GET /stages/dummy/ #
POST /stages/dummy/ #
GET /stages/dummy/{stage_uuid}/ #
PUT /stages/dummy/{stage_uuid}/ #
PATCH /stages/dummy/{stage_uuid}/ #
DELETE /stages/dummy/{stage_uuid}/ #
GET /stages/dummy/{stage_uuid}/used_by/ #
GET /stages/email/ #
POST /stages/email/ #
GET /stages/email/{stage_uuid}/ #
PUT /stages/email/{stage_uuid}/ #
PATCH /stages/email/{stage_uuid}/ #
DELETE /stages/email/{stage_uuid}/ #
GET /stages/email/{stage_uuid}/used_by/ #
GET /stages/email/templates/ #
GET /stages/endpoints/ #
POST /stages/endpoints/ #
GET /stages/endpoints/{stage_uuid}/ #
PUT /stages/endpoints/{stage_uuid}/ #
PATCH /stages/endpoints/{stage_uuid}/ #
DELETE /stages/endpoints/{stage_uuid}/ #
GET /stages/endpoints/{stage_uuid}/used_by/ #
GET /stages/identification/ #
POST /stages/identification/ #
GET /stages/identification/{stage_uuid}/ #
PUT /stages/identification/{stage_uuid}/ #
PATCH /stages/identification/{stage_uuid}/ #
DELETE /stages/identification/{stage_uuid}/ #
GET /stages/identification/{stage_uuid}/used_by/ #
GET /stages/invitation/invitations/ #
POST /stages/invitation/invitations/ #
GET /stages/invitation/invitations/{invite_uuid}/ #
PUT /stages/invitation/invitations/{invite_uuid}/ #
PATCH /stages/invitation/invitations/{invite_uuid}/ #
DELETE /stages/invitation/invitations/{invite_uuid}/ #
POST /stages/invitation/invitations/{invite_uuid}/send_email/ #
GET /stages/invitation/invitations/{invite_uuid}/used_by/ #
GET /stages/invitation/stages/ #
POST /stages/invitation/stages/ #
GET /stages/invitation/stages/{stage_uuid}/ #
PUT /stages/invitation/stages/{stage_uuid}/ #
PATCH /stages/invitation/stages/{stage_uuid}/ #
DELETE /stages/invitation/stages/{stage_uuid}/ #
GET /stages/invitation/stages/{stage_uuid}/used_by/ #
GET /stages/mtls/ #
POST /stages/mtls/ #
GET /stages/mtls/{stage_uuid}/ #
PUT /stages/mtls/{stage_uuid}/ #
PATCH /stages/mtls/{stage_uuid}/ #
DELETE /stages/mtls/{stage_uuid}/ #
GET /stages/mtls/{stage_uuid}/used_by/ #
GET /stages/password/ #
POST /stages/password/ #
GET /stages/password/{stage_uuid}/ #
PUT /stages/password/{stage_uuid}/ #
PATCH /stages/password/{stage_uuid}/ #
DELETE /stages/password/{stage_uuid}/ #
GET /stages/password/{stage_uuid}/used_by/ #
GET /stages/prompt/prompts/ #
POST /stages/prompt/prompts/ #
GET /stages/prompt/prompts/{prompt_uuid}/ #
PUT /stages/prompt/prompts/{prompt_uuid}/ #
PATCH /stages/prompt/prompts/{prompt_uuid}/ #
DELETE /stages/prompt/prompts/{prompt_uuid}/ #
GET /stages/prompt/prompts/{prompt_uuid}/used_by/ #
POST /stages/prompt/prompts/preview/ #
GET /stages/prompt/stages/ #
POST /stages/prompt/stages/ #
GET /stages/prompt/stages/{stage_uuid}/ #
PUT /stages/prompt/stages/{stage_uuid}/ #
PATCH /stages/prompt/stages/{stage_uuid}/ #
DELETE /stages/prompt/stages/{stage_uuid}/ #
GET /stages/prompt/stages/{stage_uuid}/used_by/ #
GET /stages/redirect/ #
POST /stages/redirect/ #
GET /stages/redirect/{stage_uuid}/ #
PUT /stages/redirect/{stage_uuid}/ #
PATCH /stages/redirect/{stage_uuid}/ #
DELETE /stages/redirect/{stage_uuid}/ #
GET /stages/redirect/{stage_uuid}/used_by/ #
GET /stages/source/ #
POST /stages/source/ #
GET /stages/source/{stage_uuid}/ #
PUT /stages/source/{stage_uuid}/ #
PATCH /stages/source/{stage_uuid}/ #
DELETE /stages/source/{stage_uuid}/ #
GET /stages/source/{stage_uuid}/used_by/ #
GET /stages/user_delete/ #
POST /stages/user_delete/ #
GET /stages/user_delete/{stage_uuid}/ #
PUT /stages/user_delete/{stage_uuid}/ #
PATCH /stages/user_delete/{stage_uuid}/ #
DELETE /stages/user_delete/{stage_uuid}/ #
GET /stages/user_delete/{stage_uuid}/used_by/ #
GET /stages/user_login/ #
POST /stages/user_login/ #
GET /stages/user_login/{stage_uuid}/ #
PUT /stages/user_login/{stage_uuid}/ #
PATCH /stages/user_login/{stage_uuid}/ #
DELETE /stages/user_login/{stage_uuid}/ #
GET /stages/user_login/{stage_uuid}/used_by/ #
GET /stages/user_logout/ #
POST /stages/user_logout/ #
GET /stages/user_logout/{stage_uuid}/ #
PUT /stages/user_logout/{stage_uuid}/ #
PATCH /stages/user_logout/{stage_uuid}/ #
DELETE /stages/user_logout/{stage_uuid}/ #
GET /stages/user_logout/{stage_uuid}/used_by/ #
GET /stages/user_write/ #
POST /stages/user_write/ #
GET /stages/user_write/{stage_uuid}/ #
PUT /stages/user_write/{stage_uuid}/ #
PATCH /stages/user_write/{stage_uuid}/ #
DELETE /stages/user_write/{stage_uuid}/ #
GET /stages/user_write/{stage_uuid}/used_by/ #

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/authentik-stages-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

authentik-stages-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: authentik Stages API
  version: 2026.11.0-rc1
  description: Making authentication simple.
  contact:
    email: hello@goauthentik.io
  license:
    name: MIT
    url: https://github.com/goauthentik/authentik/blob/main/LICENSE
  x-source-url: https://api.goauthentik.io/schema.yml
  x-last-validated: '2026-09-04'
servers:
- url: /api/v3
tags:
- name: stages
paths:
  /stages/account_lockdown/:
    get:
      operationId: stages_account_lockdown_list
      description: AccountLockdownStage Viewset
      parameters:
      - in: query
        name: deactivate_user
        schema:
          type: boolean
      - in: query
        name: delete_sessions
        schema:
          type: boolean
      - $ref: '#/components/parameters/QueryName'
      - $ref: '#/components/parameters/QueryPaginationOrdering'
      - $ref: '#/components/parameters/QueryPaginationPage'
      - $ref: '#/components/parameters/QueryPaginationPageSize'
      - in: query
        name: revoke_tokens
        schema:
          type: boolean
      - $ref: '#/components/parameters/QuerySearch'
      - in: query
        name: self_service_completion_flow
        schema:
          type: string
          format: uuid
      - in: query
        name: set_unusable_password
        schema:
          type: boolean
      - in: query
        name: stage_uuid
        schema:
          type: string
          format: uuid
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAccountLockdownStageList'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    post:
      operationId: stages_account_lockdown_create
      description: AccountLockdownStage Viewset
      tags:
      - stages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountLockdownStageRequest'
        required: true
      security:
      - authentik: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountLockdownStage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/account_lockdown/{stage_uuid}/:
    get:
      operationId: stages_account_lockdown_retrieve
      description: AccountLockdownStage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Account Lockdown Stage.
        required: true
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountLockdownStage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    put:
      operationId: stages_account_lockdown_update
      description: AccountLockdownStage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Account Lockdown Stage.
        required: true
      tags:
      - stages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountLockdownStageRequest'
        required: true
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountLockdownStage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    patch:
      operationId: stages_account_lockdown_partial_update
      description: AccountLockdownStage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Account Lockdown Stage.
        required: true
      tags:
      - stages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAccountLockdownStageRequest'
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountLockdownStage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    delete:
      operationId: stages_account_lockdown_destroy
      description: AccountLockdownStage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Account Lockdown Stage.
        required: true
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '204':
          description: No response body
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/account_lockdown/{stage_uuid}/used_by/:
    get:
      operationId: stages_account_lockdown_used_by_list
      description: Get a list of all objects that use this object
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Account Lockdown Stage.
        required: true
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UsedBy'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/all/:
    get:
      operationId: stages_all_list
      description: Stage Viewset
      parameters:
      - $ref: '#/components/parameters/QueryName'
      - $ref: '#/components/parameters/QueryPaginationOrdering'
      - $ref: '#/components/parameters/QueryPaginationPage'
      - $ref: '#/components/parameters/QueryPaginationPageSize'
      - $ref: '#/components/parameters/QuerySearch'
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedStageList'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/all/{stage_uuid}/:
    get:
      operationId: stages_all_retrieve
      description: Stage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this stage.
        required: true
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Stage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    delete:
      operationId: stages_all_destroy
      description: Stage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this stage.
        required: true
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '204':
          description: No response body
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/all/{stage_uuid}/used_by/:
    get:
      operationId: stages_all_used_by_list
      description: Get a list of all objects that use this object
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this stage.
        required: true
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UsedBy'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/all/types/:
    get:
      operationId: stages_all_types_list
      description: Get all creatable types
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TypeCreate'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/all/user_settings/:
    get:
      operationId: stages_all_user_settings_list
      description: Get all stages the user can configure
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserSetting'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/authenticator/duo/:
    get:
      operationId: stages_authenticator_duo_list
      description: AuthenticatorDuoStage Viewset
      parameters:
      - in: query
        name: api_hostname
        schema:
          type: string
      - in: query
        name: client_id
        schema:
          type: string
      - in: query
        name: configure_flow
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/QueryName'
      - $ref: '#/components/parameters/QueryPaginationOrdering'
      - $ref: '#/components/parameters/QueryPaginationPage'
      - $ref: '#/components/parameters/QueryPaginationPageSize'
      - $ref: '#/components/parameters/QuerySearch'
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAuthenticatorDuoStageList'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    post:
      operationId: stages_authenticator_duo_create
      description: AuthenticatorDuoStage Viewset
      tags:
      - stages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticatorDuoStageRequest'
        required: true
      security:
      - authentik: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticatorDuoStage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/authenticator/duo/{stage_uuid}/:
    get:
      operationId: stages_authenticator_duo_retrieve
      description: AuthenticatorDuoStage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Duo Authenticator Setup Stage.
        required: true
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticatorDuoStage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    put:
      operationId: stages_authenticator_duo_update
      description: AuthenticatorDuoStage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Duo Authenticator Setup Stage.
        required: true
      tags:
      - stages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticatorDuoStageRequest'
        required: true
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticatorDuoStage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    patch:
      operationId: stages_authenticator_duo_partial_update
      description: AuthenticatorDuoStage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Duo Authenticator Setup Stage.
        required: true
      tags:
      - stages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAuthenticatorDuoStageRequest'
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticatorDuoStage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    delete:
      operationId: stages_authenticator_duo_destroy
      description: AuthenticatorDuoStage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Duo Authenticator Setup Stage.
        required: true
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '204':
          description: No response body
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/authenticator/duo/{stage_uuid}/enrollment_status/:
    post:
      operationId: stages_authenticator_duo_enrollment_status_create
      description: Check enrollment status of user details in current session
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Duo Authenticator Setup Stage.
        required: true
      tags:
      - stages
      security:
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DuoDeviceEnrollmentStatus'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/authenticator/duo/{stage_uuid}/import_device_manual/:
    post:
      operationId: stages_authenticator_duo_import_device_manual_create
      description: Import duo devices into authentik
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Duo Authenticator Setup Stage.
        required: true
      tags:
      - stages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticatorDuoStageManualDeviceImportRequest'
        required: true
      security:
      - authentik: []
      responses:
        '204':
          description: Enrollment successful
        '400':
          description: Bad request
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/authenticator/duo/{stage_uuid}/import_devices_automatic/:
    post:
      operationId: stages_authenticator_duo_import_devices_automatic_create
      description: Import duo devices into authentik
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Duo Authenticator Setup Stage.
        required: true
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticatorDuoStageDeviceImportResponse'
          description: ''
        '400':
          description: Bad request
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/authenticator/duo/{stage_uuid}/used_by/:
    get:
      operationId: stages_authenticator_duo_used_by_list
      description: Get a list of all objects that use this object
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Duo Authenticator Setup Stage.
        required: true
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UsedBy'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/authenticator/email/:
    get:
      operationId: stages_authenticator_email_list
      description: AuthenticatorEmailStage Viewset
      parameters:
      - in: query
        name: configure_flow
        schema:
          type: string
          format: uuid
      - in: query
        name: friendly_name
        schema:
          type: string
      - in: query
        name: from_address
        schema:
          type: string
      - in: query
        name: host
        schema:
          type: string
      - $ref: '#/components/parameters/QueryName'
      - $ref: '#/components/parameters/QueryPaginationOrdering'
      - $ref: '#/components/parameters/QueryPaginationPage'
      - $ref: '#/components/parameters/QueryPaginationPageSize'
      - in: query
        name: password
        schema:
          type: string
      - in: query
        name: port
        schema:
          type: integer
      - $ref: '#/components/parameters/QuerySearch'
      - in: query
        name: stage_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: subject
        schema:
          type: string
      - in: query
        name: template
        schema:
          type: string
      - in: query
        name: timeout
        schema:
          type: integer
      - in: query
        name: token_expiry
        schema:
          type: string
      - in: query
        name: use_global_settings
        schema:
          type: boolean
      - in: query
        name: use_ssl
        schema:
          type: boolean
      - in: query
        name: use_tls
        schema:
          type: boolean
      - in: query
        name: username
        schema:
          type: string
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAuthenticatorEmailStageList'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    post:
      operationId: stages_authenticator_email_create
      description: AuthenticatorEmailStage Viewset
      tags:
      - stages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticatorEmailStageRequest'
        required: true
      security:
      - authentik: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticatorEmailStage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/authenticator/email/{stage_uuid}/:
    get:
      operationId: stages_authenticator_email_retrieve
      description: AuthenticatorEmailStage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Email Authenticator Setup Stage.
        required: true
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticatorEmailStage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    put:
      operationId: stages_authenticator_email_update
      description: AuthenticatorEmailStage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Email Authenticator Setup Stage.
        required: true
      tags:
      - stages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticatorEmailStageRequest'
        required: true
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticatorEmailStage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    patch:
      operationId: stages_authenticator_email_partial_update
      description: AuthenticatorEmailStage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Email Authenticator Setup Stage.
        required: true
      tags:
      - stages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAuthenticatorEmailStageRequest'
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticatorEmailStage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    delete:
      operationId: stages_authenticator_email_destroy
      description: AuthenticatorEmailStage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Email Authenticator Setup Stage.
        required: true
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '204':
          description: No response body
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/authenticator/email/{stage_uuid}/used_by/:
    get:
      operationId: stages_authenticator_email_used_by_list
      description: Get a list of all objects that use this object
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Email Authenticator Setup Stage.
        required: true
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UsedBy'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/authenticator/endpoint_gdtc/:
    get:
      operationId: stages_authenticator_endpoint_gdtc_list
      description: AuthenticatorEndpointGDTCStage Viewset
      parameters:
      - in: query
        name: configure_flow
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/QueryName'
      - $ref: '#/components/parameters/QueryPaginationOrdering'
      - $ref: '#/components/parameters/QueryPaginationPage'
      - $ref: '#/components/parameters/QueryPaginationPageSize'
      - $ref: '#/components/parameters/QuerySearch'
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAuthenticatorEndpointGDTCStageList'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    post:
      operationId: stages_authenticator_endpoint_gdtc_create
      description: AuthenticatorEndpointGDTCStage Viewset
      tags:
      - stages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticatorEndpointGDTCStageRequest'
        required: true
      security:
      - authentik: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticatorEndpointGDTCStage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/authenticator/endpoint_gdtc/{stage_uuid}/:
    get:
      operationId: stages_authenticator_endpoint_gdtc_retrieve
      description: AuthenticatorEndpointGDTCStage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Endpoint Authenticator Google Device Trust Connector Stage.
        required: true
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticatorEndpointGDTCStage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    put:
      operationId: stages_authenticator_endpoint_gdtc_update
      description: AuthenticatorEndpointGDTCStage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Endpoint Authenticator Google Device Trust Connector Stage.
        required: true
      tags:
      - stages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticatorEndpointGDTCStageRequest'
        required: true
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticatorEndpointGDTCStage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    patch:
      operationId: stages_authenticator_endpoint_gdtc_partial_update
      description: AuthenticatorEndpointGDTCStage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Endpoint Authenticator Google Device Trust Connector Stage.
        required: true
      tags:
      - stages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAuthenticatorEndpointGDTCStageRequest'
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticatorEndpointGDTCStage'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
    delete:
      operationId: stages_authenticator_endpoint_gdtc_destroy
      description: AuthenticatorEndpointGDTCStage Viewset
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Endpoint Authenticator Google Device Trust Connector Stage.
        required: true
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '204':
          description: No response body
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/authenticator/endpoint_gdtc/{stage_uuid}/used_by/:
    get:
      operationId: stages_authenticator_endpoint_gdtc_used_by_list
      description: Get a list of all objects that use this object
      parameters:
      - in: path
        name: stage_uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Endpoint Authenticator Google Device Trust Connector Stage.
        required: true
      tags:
      - stages
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UsedBy'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
  /stages/authenticator/sms/:
    get:
      operationId: stages_authentic

# --- truncated at 32 KB (301 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/authentik/refs/heads/main/openapi/authentik-stages-api-openapi.yml