Authentik Admin API
Instance administration — installed apps, models, version, system information, workers and the file storage backend.
Instance administration — installed apps, models, version, system information, workers and the file storage backend.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/authentik-admin-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: authentik Admin 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: admin
paths:
/admin/apps/:
get:
operationId: admin_apps_list
description: Read-only view list all installed apps
tags:
- admin
security:
- authentik: []
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/App'
description: ''
'400':
$ref: '#/components/responses/ValidationErrorResponse'
'403':
$ref: '#/components/responses/GenericErrorResponse'
/admin/file/:
get:
operationId: admin_file_list
description: List files from storage backend.
parameters:
- in: query
name: manageable_only
schema:
type: boolean
default: false
- $ref: '#/components/parameters/QuerySearch'
- in: query
name: usage
schema:
allOf:
- $ref: '#/components/schemas/UsageEnum'
default: media
minLength: 1
tags:
- admin
security:
- authentik: []
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FileList'
description: ''
'400':
$ref: '#/components/responses/ValidationErrorResponse'
'403':
$ref: '#/components/responses/GenericErrorResponse'
post:
operationId: admin_file_create
description: Upload file to storage backend.
tags:
- admin
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/FileUploadRequest'
required: true
security:
- authentik: []
responses:
'200':
description: No response body
'400':
$ref: '#/components/responses/ValidationErrorResponse'
'403':
$ref: '#/components/responses/GenericErrorResponse'
delete:
operationId: admin_file_destroy
description: Delete file from storage backend.
parameters:
- $ref: '#/components/parameters/QueryName'
- in: query
name: usage
schema:
allOf:
- $ref: '#/components/schemas/UsageEnum'
default: media
minLength: 1
tags:
- admin
security:
- authentik: []
responses:
'200':
description: No response body
'400':
$ref: '#/components/responses/ValidationErrorResponse'
'403':
$ref: '#/components/responses/GenericErrorResponse'
/admin/file/used_by/:
get:
operationId: admin_file_used_by_list
parameters:
- $ref: '#/components/parameters/QueryName'
tags:
- admin
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'
/admin/models/:
get:
operationId: admin_models_list
description: Read-only view list all installed models
parameters:
- in: query
name: filter_has_attributes
schema:
type:
- boolean
- 'null'
tags:
- admin
security:
- authentik: []
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/App'
description: ''
'400':
$ref: '#/components/responses/ValidationErrorResponse'
'403':
$ref: '#/components/responses/GenericErrorResponse'
/admin/settings/:
get:
operationId: admin_settings_retrieve
description: Settings view
tags:
- admin
security:
- authentik: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Settings'
description: ''
'400':
$ref: '#/components/responses/ValidationErrorResponse'
'403':
$ref: '#/components/responses/GenericErrorResponse'
put:
operationId: admin_settings_update
description: Settings view
tags:
- admin
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SettingsRequest'
required: true
security:
- authentik: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Settings'
description: ''
'400':
$ref: '#/components/responses/ValidationErrorResponse'
'403':
$ref: '#/components/responses/GenericErrorResponse'
patch:
operationId: admin_settings_partial_update
description: Settings view
tags:
- admin
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedSettingsRequest'
security:
- authentik: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Settings'
description: ''
'400':
$ref: '#/components/responses/ValidationErrorResponse'
'403':
$ref: '#/components/responses/GenericErrorResponse'
/admin/system/:
get:
operationId: admin_system_retrieve
description: Get system information.
tags:
- admin
security:
- authentik: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SystemInfo'
description: ''
'400':
$ref: '#/components/responses/ValidationErrorResponse'
'403':
$ref: '#/components/responses/GenericErrorResponse'
post:
operationId: admin_system_create
description: Get system information.
tags:
- admin
security:
- authentik: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SystemInfo'
description: ''
'400':
$ref: '#/components/responses/ValidationErrorResponse'
'403':
$ref: '#/components/responses/GenericErrorResponse'
/admin/version/:
get:
operationId: admin_version_retrieve
description: Get running and latest version.
tags:
- admin
security:
- authentik: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Version'
description: ''
'400':
$ref: '#/components/responses/ValidationErrorResponse'
'403':
$ref: '#/components/responses/GenericErrorResponse'
/admin/version/history/:
get:
operationId: admin_version_history_list
description: VersionHistory Viewset
parameters:
- in: query
name: build
schema:
type: string
- $ref: '#/components/parameters/QueryPaginationOrdering'
- $ref: '#/components/parameters/QuerySearch'
- in: query
name: version
schema:
type: string
tags:
- admin
security:
- authentik: []
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/VersionHistory'
description: ''
'400':
$ref: '#/components/responses/ValidationErrorResponse'
'403':
$ref: '#/components/responses/GenericErrorResponse'
/admin/version/history/{id}/:
get:
operationId: admin_version_history_retrieve
description: VersionHistory Viewset
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this Version history.
required: true
tags:
- admin
security:
- authentik: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/VersionHistory'
description: ''
'400':
$ref: '#/components/responses/ValidationErrorResponse'
'403':
$ref: '#/components/responses/GenericErrorResponse'
components:
schemas:
SettingsRequest:
type: object
description: Settings Serializer
properties:
avatars:
type: string
minLength: 1
description: Configure how authentik should show avatars for users.
base_url:
type: string
description: Configure the base URL under which this authentik instance is reachable, e.g. https://authentik.company
format: uri
maxLength: 200
default_user_change_name:
type: boolean
description: Enable the ability for users to change their name.
default_user_change_email:
type: boolean
description: Enable the ability for users to change their email address.
default_user_change_username:
type: boolean
description: Enable the ability for users to change their username.
event_retention:
type: string
minLength: 1
description: 'Events will be deleted after this duration.(Format: weeks=3;days=2;hours=3,seconds=2).'
reputation_lower_limit:
type: integer
maximum: 0
minimum: -2147483648
description: Reputation cannot decrease lower than this value. Zero or negative.
reputation_upper_limit:
type: integer
maximum: 2147483647
minimum: 0
description: Reputation cannot increase higher than this value. Zero or positive.
footer_links: {}
gdpr_compliance:
type: boolean
description: When enabled, all the events caused by a user will be deleted upon the user's deletion.
impersonation:
type: boolean
description: Globally enable/disable impersonation.
impersonation_require_reason:
type: boolean
description: Require administrators to provide a reason for impersonating a user.
default_token_duration:
type: string
minLength: 1
description: Default token duration
default_token_length:
type: integer
maximum: 2147483647
minimum: 1
description: Default token length
pagination_default_page_size:
type: integer
maximum: 2147483647
minimum: 0
description: Default page size for API responses, if no size was requested.
pagination_max_page_size:
type: integer
maximum: 2147483647
minimum: 0
description: Maximum page size
flags:
type: object
properties:
core_default_app_access:
type: boolean
description: Applications with no policies bound can be accessed by any user.
enterprise_audit_include_expanded_diff:
type: boolean
description: Include additional information in audit logs, may incur a performance penalty.
flows_continuous_login:
type: boolean
description: Upon successful authentication, re-start authentication in other open tabs.
required:
- core_default_app_access
- enterprise_audit_include_expanded_diff
- flows_continuous_login
required:
- flags
App:
type: object
description: Serialize Application info
properties:
name:
type: string
label:
type: string
required:
- label
- name
UsageEnum:
enum:
- media
type: string
ThemedUrls:
type: object
description: Themed URLs - maps theme names to URLs for light and dark themes
properties:
light:
type:
- string
- 'null'
dark:
type:
- string
- 'null'
FileList:
type: object
description: Base serializer class which doesn't implement create/update methods
properties:
name:
type: string
mime_type:
type: string
url:
type: string
themed_urls:
allOf:
- $ref: '#/components/schemas/ThemedUrls'
required:
- mime_type
- name
- url
ValidationError:
type: object
description: Validation Error
properties:
non_field_errors:
type: array
items:
type: string
code:
type: string
additionalProperties: {}
UsedByActionEnum:
enum:
- cascade
- cascade_many
- set_null
- set_default
- left_dangling
type: string
Version:
type: object
description: Get running and latest version.
properties:
version_current:
type: string
description: Get current version
readOnly: true
version_latest:
type: string
description: Get latest version from cache
readOnly: true
version_latest_valid:
type: boolean
description: Check if latest version is valid
readOnly: true
build_hash:
type: string
description: Get build hash, if version is not latest or released
readOnly: true
outdated:
type: boolean
description: Check if we're running the latest version
readOnly: true
outpost_outdated:
type: boolean
description: Check if any outpost is outdated/has a version mismatch
readOnly: true
required:
- build_hash
- outdated
- outpost_outdated
- version_current
- version_latest
- version_latest_valid
PatchedSettingsRequest:
type: object
description: Settings Serializer
properties:
avatars:
type: string
minLength: 1
description: Configure how authentik should show avatars for users.
base_url:
type: string
description: Configure the base URL under which this authentik instance is reachable, e.g. https://authentik.company
format: uri
maxLength: 200
default_user_change_name:
type: boolean
description: Enable the ability for users to change their name.
default_user_change_email:
type: boolean
description: Enable the ability for users to change their email address.
default_user_change_username:
type: boolean
description: Enable the ability for users to change their username.
event_retention:
type: string
minLength: 1
description: 'Events will be deleted after this duration.(Format: weeks=3;days=2;hours=3,seconds=2).'
reputation_lower_limit:
type: integer
maximum: 0
minimum: -2147483648
description: Reputation cannot decrease lower than this value. Zero or negative.
reputation_upper_limit:
type: integer
maximum: 2147483647
minimum: 0
description: Reputation cannot increase higher than this value. Zero or positive.
footer_links: {}
gdpr_compliance:
type: boolean
description: When enabled, all the events caused by a user will be deleted upon the user's deletion.
impersonation:
type: boolean
description: Globally enable/disable impersonation.
impersonation_require_reason:
type: boolean
description: Require administrators to provide a reason for impersonating a user.
default_token_duration:
type: string
minLength: 1
description: Default token duration
default_token_length:
type: integer
maximum: 2147483647
minimum: 1
description: Default token length
pagination_default_page_size:
type: integer
maximum: 2147483647
minimum: 0
description: Default page size for API responses, if no size was requested.
pagination_max_page_size:
type: integer
maximum: 2147483647
minimum: 0
description: Maximum page size
flags:
type: object
properties:
core_default_app_access:
type: boolean
description: Applications with no policies bound can be accessed by any user.
enterprise_audit_include_expanded_diff:
type: boolean
description: Include additional information in audit logs, may incur a performance penalty.
flows_continuous_login:
type: boolean
description: Upon successful authentication, re-start authentication in other open tabs.
required:
- core_default_app_access
- enterprise_audit_include_expanded_diff
- flows_continuous_login
VersionHistory:
type: object
description: VersionHistory Serializer
properties:
id:
type: integer
readOnly: true
timestamp:
type: string
format: date-time
version:
type: string
build:
type: string
required:
- build
- id
- timestamp
- version
GenericError:
type: object
description: Generic API Error
properties:
detail:
type: string
code:
type: string
required:
- detail
SystemInfo:
type: object
description: Get system information.
properties:
http_headers:
type: object
additionalProperties:
type: string
description: Get HTTP Request headers
readOnly: true
http_host:
type: string
description: Get HTTP host
readOnly: true
http_is_secure:
type: boolean
description: Get HTTP Secure flag
readOnly: true
runtime:
type: object
description: Get versions
properties:
python_version:
type: string
environment:
type: string
architecture:
type: string
platform:
type: string
uname:
type: string
openssl_version:
type: string
openssl_fips_enabled:
type:
- boolean
- 'null'
authentik_version:
type: string
required:
- architecture
- authentik_version
- environment
- openssl_fips_enabled
- openssl_version
- platform
- python_version
- uname
readOnly: true
brand:
type: string
description: Currently active brand
readOnly: true
server_time:
type: string
format: date-time
description: Current server time
readOnly: true
embedded_outpost_disabled:
type: boolean
description: Whether the embedded outpost is disabled
readOnly: true
embedded_outpost_host:
type: string
description: Get the FQDN configured on the embedded outpost
readOnly: true
base_url:
type: string
description: Configured external base URL. Can be empty
readOnly: true
required:
- base_url
- brand
- embedded_outpost_disabled
- embedded_outpost_host
- http_headers
- http_host
- http_is_secure
- runtime
- server_time
FileUploadRequest:
type: object
description: Base serializer class which doesn't implement create/update methods
properties:
file:
type: string
format: binary
name:
type: string
usage:
type: string
minLength: 1
default: media
required:
- file
UsedBy:
type: object
description: A list of all objects referencing the queried object
properties:
app:
type: string
model_name:
type: string
pk:
type: string
name:
type: string
action:
$ref: '#/components/schemas/UsedByActionEnum'
required:
- action
- app
- model_name
- name
- pk
Settings:
type: object
description: Settings Serializer
properties:
avatars:
type: string
description: Configure how authentik should show avatars for users.
base_url:
type: string
description: Configure the base URL under which this authentik instance is reachable, e.g. https://authentik.company
format: uri
maxLength: 200
default_user_change_name:
type: boolean
description: Enable the ability for users to change their name.
default_user_change_email:
type: boolean
description: Enable the ability for users to change their email address.
default_user_change_username:
type: boolean
description: Enable the ability for users to change their username.
event_retention:
type: string
description: 'Events will be deleted after this duration.(Format: weeks=3;days=2;hours=3,seconds=2).'
reputation_lower_limit:
type: integer
maximum: 0
minimum: -2147483648
description: Reputation cannot decrease lower than this value. Zero or negative.
reputation_upper_limit:
type: integer
maximum: 2147483647
minimum: 0
description: Reputation cannot increase higher than this value. Zero or positive.
footer_links: {}
gdpr_compliance:
type: boolean
description: When enabled, all the events caused by a user will be deleted upon the user's deletion.
impersonation:
type: boolean
description: Globally enable/disable impersonation.
impersonation_require_reason:
type: boolean
description: Require administrators to provide a reason for impersonating a user.
default_token_duration:
type: string
description: Default token duration
default_token_length:
type: integer
maximum: 2147483647
minimum: 1
description: Default token length
pagination_default_page_size:
type: integer
maximum: 2147483647
minimum: 0
description: Default page size for API responses, if no size was requested.
pagination_max_page_size:
type: integer
maximum: 2147483647
minimum: 0
description: Maximum page size
flags:
type: object
properties:
core_default_app_access:
type: boolean
description: Applications with no policies bound can be accessed by any user.
enterprise_audit_include_expanded_diff:
type: boolean
description: Include additional information in audit logs, may incur a performance penalty.
flows_continuous_login:
type: boolean
description: Upon successful authentication, re-start authentication in other open tabs.
required:
- core_default_app_access
- enterprise_audit_include_expanded_diff
- flows_continuous_login
required:
- flags
parameters:
QueryPaginationOrdering:
in: query
name: ordering
schema:
type: string
description: Which field to use when ordering the results.
QuerySearch:
in: query
name: search
schema:
type: string
description: A search term.
QueryName:
in: query
name: name
schema:
type: string
responses:
GenericErrorResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GenericError'
description: ''
ValidationErrorResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: ''
securitySchemes:
authentik:
type: http
scheme: bearer
authentik_device_auth:
type: http
scheme: bearer+agent
authentik_device_enroll:
type: http
scheme: bearer
authentik_device_federation:
type: http
scheme: bearer