How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Authentik Flows API

Flow instances, flow bindings and the flow executor that drives authentication, enrollment, recovery and unenrollment.

Authentik Flows API is one of 27 APIs that Authentik publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Flows. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, and a GitHub repository.

This API exposes 22 operations across 13 paths, and defines 103 schemas. It is described by OpenAPI 3.2.0, at version 2026.11.0-rc1.

Requests are made against a single base URL, /api/v3.

22 operations 13 paths 103 schemas 2 DELETE12 GET2 PATCH4 POST2 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
2026.11.0-rc1
Base URL
https://{authentik_host}/api/v3
Authentication
HTTP Bearer, HTTP Bearer+Agent, HTTP Bearer, HTTP Bearer
License
Resource Areas
1

Authentication & Security 4

Authentik Flows API declares 4 security schemes for authenticating requests. It accepts HTTP bearer tokens (authentik). It uses HTTP bearer+agent authentication (authentik_device_auth). It accepts HTTP bearer tokens (authentik_device_enroll). It accepts HTTP bearer tokens (authentik_device_federation).

Paths & Operations 22

Across 13 paths, the API surfaces 22 operations — 2 DELETE, 12 GET, 2 PATCH, 4 POST, 2 PUT. Each is listed below with its method, path, parameters, and response codes.

flows 22
GET
/flows/bindings/
FlowStageBinding Viewset
flows_bindings_list 14 params → 200400403
POST
/flows/bindings/
FlowStageBinding Viewset
flows_bindings_create body → 201400403
GET
/flows/bindings/{fsb_uuid}/
FlowStageBinding Viewset
flows_bindings_retrieve 1 param → 200400403
PUT
/flows/bindings/{fsb_uuid}/
FlowStageBinding Viewset
flows_bindings_update 1 param body → 200400403
PATCH
/flows/bindings/{fsb_uuid}/
FlowStageBinding Viewset
flows_bindings_partial_update 1 param body → 200400403
DELETE
/flows/bindings/{fsb_uuid}/
FlowStageBinding Viewset
flows_bindings_destroy 1 param → 204400403
GET
/flows/bindings/{fsb_uuid}/used_by/
Get a list of all objects that use this object
flows_bindings_used_by_list 1 param → 200400403
GET
/flows/executor/{flow_slug}/
Get the next pending challenge from the currently active flow.
flows_executor_get 2 params → 200400403
POST
/flows/executor/{flow_slug}/
Solve the previously retrieved challenge and advanced to the next stage.
flows_executor_solve 2 params body → 200400403
GET
/flows/inspector/{flow_slug}/
Get current flow state and record it
flows_inspector_get 1 param → 200400403
GET
/flows/instances/
Flow Viewset
flows_instances_list 9 params → 200400403
POST
/flows/instances/
Flow Viewset
flows_instances_create body → 201400403
GET
/flows/instances/{slug}/
Flow Viewset
flows_instances_retrieve 1 param → 200400403
PUT
/flows/instances/{slug}/
Flow Viewset
flows_instances_update 1 param body → 200400403
PATCH
/flows/instances/{slug}/
Flow Viewset
flows_instances_partial_update 1 param body → 200400403
DELETE
/flows/instances/{slug}/
Flow Viewset
flows_instances_destroy 1 param → 204400403
GET
/flows/instances/{slug}/diagram/
Return diagram for flow with slug slug, in the format used by flowchart.js
flows_instances_diagram_retrieve 1 param → 200400403
GET
/flows/instances/{slug}/execute/
Execute flow for current user
flows_instances_execute_retrieve 1 param → 200400403
GET
/flows/instances/{slug}/export/
Export flow to .yaml file
flows_instances_export_retrieve 1 param → 200400403
GET
/flows/instances/{slug}/used_by/
Get a list of all objects that use this object
flows_instances_used_by_list 1 param → 200400403
POST
/flows/instances/cache_clear/
Clear flow cache
flows_instances_cache_clear_create → 204400403
GET
/flows/instances/cache_info/
Info about cached flows
flows_instances_cache_info_retrieve → 200400403

Schemas 103

The contract defines 103 schemas that model the data the API accepts and returns. The most detailed are IdentificationChallenge (19 properties), Flow (18 properties), FlowSet (12 properties), NativeLogoutChallenge (11 properties). Each schema is shown below with its type and property counts.

FlowErrorChallenge
object
Challenge class when an unhandled error occurs during a stage. Normal users are shown an error message, superusers are shown a full stacktrace.
6 properties 1 required
Stage
object
Stage Serializer
7 properties 7 required
ShellChallenge
object
challenge type to render HTML as-is
4 properties 1 required
UserLoginChallengeResponseRequest
object
User login challenge
2 properties 1 required
Link
object
Returns a single link
1 property 1 required
ConsentChallengeResponseRequest
object
Consent challenge response, any valid response request is valid
2 properties 1 required
FlowLayoutEnum
string
SelectableStage
object
Serializer for stages which can be selected by users
4 properties 4 required
PaginatedFlowList
object
3 properties 3 required
IframeLogoutChallenge
object
Challenge for iframe logout
4 properties
FrameChallenge
object
Challenge type to render a frame
6 properties 2 required
ThemedUrls
object
Themed URLs - maps theme names to URLs for light and dark themes
2 properties
SAMLBindingsEnum
string
DummyChallenge
object
Dummy challenge
4 properties 1 required
Cache
object
Generic cache stats for an object
1 property 1 required
TelegramLoginChallenge
object
Base login challenge for Identification stage
5 properties 2 required
TelegramChallengeResponseRequest
object
Base class for all challenge responses
8 properties 3 required
FlowInspection
object
Serializer for inspect endpoint
3 properties 2 required
Autocomplete
object
PromptChoice
object
Serializer for a single Choice field
2 properties 2 required
AuthenticatorDuoChallengeResponseRequest
object
Pseudo class for duo response
1 property
EmailChallengeResponseRequest
object
Email challenge resposen. No fields. This challenge is always declared invalid to give the user a chance to retry
1 property
SessionEndChallenge
object
Challenge for ending a session
10 properties 3 required
PatchedFlowStageBindingRequest
object
FlowStageBinding Serializer
7 properties
FlowStageBinding
object
FlowStageBinding Serializer
10 properties 6 required
IdentificationChallengeResponseRequest
object
Identification challenge
5 properties
AuthenticatorValidationChallenge
object
Authenticator challenge
7 properties 4 required
ErrorDetail
object
Serializer for restframework's error messages
2 properties 2 required
AuthenticatorTOTPChallenge
object
TOTP Setup challenge
6 properties 3 required
UserLoginChallenge
object
Empty challenge
5 properties 2 required
DeniedActionEnum
string
DeviceChallenge
object
Single device challenge
4 properties 4 required
ContextualFlowInfo
object
Contextual flow information for a challenge
6 properties 2 required
PasswordChallengeResponseRequest
object
Password challenge response
2 properties 1 required
Pagination
object
7 properties 7 required
PaginatedFlowStageBindingList
object
3 properties 3 required
LoginChallengeTypes
AuthenticatorSMSChallengeResponseRequest
object
SMS Challenge response, device is set by getresponseinstance
3 properties
RedirectChallenge
object
Challenge type to redirect the client
5 properties 1 required
OAuthDeviceCodeFinishChallenge
object
Final challenge after user enters their code
3 properties
AuthenticatorStaticChallenge
object
Static authenticator challenge
6 properties 3 required
EndpointAgentChallengeResponseRequest
object
Response to signed challenge
2 properties
AutosubmitChallenge
object
Autosubmit challenge used to send and navigate a POST request
6 properties 2 required
PatchedFlowRequest
object
Flow Serializer
10 properties
FlowChallengeResponseRequest
AuthenticatorEmailChallenge
object
Authenticator Email Setup challenge
7 properties 2 required
ContextualFlowInfoLayoutEnum
string
PlexAuthenticationChallengeResponseRequest
object
Pseudo class for plex response
1 property
PolicyEngineMode
string
StagePrompt
object
Serializer for a single Prompt field
9 properties 9 required
PlexAuthenticationChallenge
object
Challenge shown to the user in identification stage
5 properties 2 required
OAuthDeviceCodeFinishChallengeResponseRequest
object
Response that device has been authenticated and tab can be closed
1 property
CaptchaChallenge
object
Site public key
8 properties 5 required
AutoSubmitChallengeResponseRequest
object
Pseudo class for autosubmit response
1 property
DummyChallengeResponseRequest
object
Dummy challenge response
1 property
ConsentPermission
object
Permission used for consent
2 properties 2 required
FrameChallengeResponseRequest
object
Base class for all challenge responses
1 property
LogoutURL
object
Data for a single logout URL
6 properties 1 required
LoginSource
object
Serializer for Login buttons of sources
4 properties 2 required
DeviceChallengeRequest
object
Single device challenge
4 properties 4 required
AuthenticationEnum
string
PromptChallenge
object
Initial challenge being sent, define fields
4 properties 1 required
DeviceClassesEnum
string
UsedByActionEnum
string
FlowMessage
object
Serializer for a django.contrib.messages message
2 properties 2 required
FlowSet
object
Stripped down flow serializer
12 properties 8 required
OAuthDeviceCodeChallenge
object
OAuth Device code challenge
3 properties
Flow
object
Flow Serializer
18 properties 12 required
RedirectChallengeResponseRequest
object
Redirect challenge response
2 properties 1 required
FlowDiagram
object
response of the flow's diagram action
1 property 1 required
AppleChallengeResponseRequest
object
Pseudo class for apple response
1 property
FlowMessageLevelEnum
string
EndpointAgentChallenge
object
Signed challenge for authentik agent to respond to
5 properties 2 required
AuthenticatorValidationChallengeResponseRequest
object
Challenge used for Code-based and WebAuthn authenticators
6 properties
AuthenticatorWebAuthnChallenge
object
WebAuthn Challenge
6 properties 3 required
AuthenticatorWebAuthnChallengeResponseRequest
object
WebAuthn Challenge response
2 properties 1 required
InvalidResponseActionEnum
string
AuthenticatorDuoChallenge
object
Duo Challenge
8 properties 5 required
UsedBy
object
A list of all objects referencing the queried object
5 properties 5 required
AuthenticatorEmailChallengeResponseRequest
object
Authenticator Email Challenge response, device is set by getresponseinstance
3 properties
NativeLogoutChallenge
object
Challenge for native browser logout
11 properties
CaptchaChallengeResponseRequest
object
Validate captcha token
2 properties 1 required
FlowStageBindingRequest
object
FlowStageBinding Serializer
7 properties 3 required
FlowInspectorPlan
object
Serializer for an active FlowPlan
4 properties 4 required
EmailChallenge
object
Email challenge
3 properties
NativeLogoutChallengeResponseRequest
object
Response for native browser logout
1 property
FlowDesignationEnum
string
AuthenticatorSMSChallenge
object
SMS Setup challenge
6 properties 2 required
AppleLoginChallenge
object
Special challenge for apple-native authentication flow, which happens on the client.
7 properties 4 required
ChallengeTypes
PasswordChallenge
object
Password challenge UI fields
7 properties 2 required
ValidationError
object
Validation Error
2 properties
AuthenticatorTOTPChallengeResponseRequest
object
TOTP Challenge response, device is set by getresponseinstance
2 properties 1 required
IframeLogoutChallengeResponseRequest
object
Response for iframe logout
1 property
OAuthDeviceCodeChallengeResponseRequest
object
Response that includes the user-entered device code
2 properties 1 required
IdentificationChallenge
object
Identification challenges with all UI elements
19 properties 5 required
AccessDeniedChallenge
object
Challenge when a flow's active stage calls stageinvalid().
6 properties 2 required
PromptChallengeResponseRequest
object
Validate response, fields are dynamically created based on the stage
1 property
AuthenticatorStaticChallengeResponseRequest
object
Pseudo class for static response
1 property
ConsentChallenge
object
Challenge info for consent screens
9 properties 5 required
FlowRequest
object
Flow Serializer
10 properties 4 required
GenericError
object
Generic API Error
2 properties 1 required
PromptTypeEnum
string

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

authentik-flows-api-openapi.yml Raw ↑

Other APIs Authentik publishes across the network.

Authentik Core API
Authentik Crypto API
Authentik Events API
Authentik Policies API
Authentik Providers API
Authentik RBAC API
Authentik Schema API
Authentik Sources API
Authentik Stages API
Authentik Admin API
Authentik Agents API
Authentik Authenticators API
Where this information came from

This is an independent, third-party profile of Authentik Flows API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.