openapi: 3.2.0 info: title: authentik Tenants 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: tenants paths: /tenants/domains/: get: operationId: tenants_domains_list description: Domain ViewSet parameters: - $ref: '#/components/parameters/QueryPaginationOrdering' - $ref: '#/components/parameters/QueryPaginationPage' - $ref: '#/components/parameters/QueryPaginationPageSize' - $ref: '#/components/parameters/QuerySearch' tags: - tenants responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedDomainList' description: '' '400': $ref: '#/components/responses/ValidationErrorResponse' '403': $ref: '#/components/responses/GenericErrorResponse' post: operationId: tenants_domains_create description: Domain ViewSet tags: - tenants requestBody: content: application/json: schema: $ref: '#/components/schemas/DomainRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Domain' description: '' '400': $ref: '#/components/responses/ValidationErrorResponse' '403': $ref: '#/components/responses/GenericErrorResponse' /tenants/domains/{id}/: get: operationId: tenants_domains_retrieve description: Domain ViewSet parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this Domain. required: true tags: - tenants responses: '200': content: application/json: schema: $ref: '#/components/schemas/Domain' description: '' '400': $ref: '#/components/responses/ValidationErrorResponse' '403': $ref: '#/components/responses/GenericErrorResponse' put: operationId: tenants_domains_update description: Domain ViewSet parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this Domain. required: true tags: - tenants requestBody: content: application/json: schema: $ref: '#/components/schemas/DomainRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Domain' description: '' '400': $ref: '#/components/responses/ValidationErrorResponse' '403': $ref: '#/components/responses/GenericErrorResponse' patch: operationId: tenants_domains_partial_update description: Domain ViewSet parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this Domain. required: true tags: - tenants requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedDomainRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/Domain' description: '' '400': $ref: '#/components/responses/ValidationErrorResponse' '403': $ref: '#/components/responses/GenericErrorResponse' delete: operationId: tenants_domains_destroy description: Domain ViewSet parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this Domain. required: true tags: - tenants responses: '204': description: No response body '400': $ref: '#/components/responses/ValidationErrorResponse' '403': $ref: '#/components/responses/GenericErrorResponse' /tenants/tenants/: get: operationId: tenants_tenants_list description: Tenant Viewset parameters: - $ref: '#/components/parameters/QueryPaginationOrdering' - $ref: '#/components/parameters/QueryPaginationPage' - $ref: '#/components/parameters/QueryPaginationPageSize' - $ref: '#/components/parameters/QuerySearch' tags: - tenants responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedTenantList' description: '' '400': $ref: '#/components/responses/ValidationErrorResponse' '403': $ref: '#/components/responses/GenericErrorResponse' post: operationId: tenants_tenants_create description: Tenant Viewset tags: - tenants requestBody: content: application/json: schema: $ref: '#/components/schemas/TenantRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Tenant' description: '' '400': $ref: '#/components/responses/ValidationErrorResponse' '403': $ref: '#/components/responses/GenericErrorResponse' /tenants/tenants/{tenant_uuid}/: get: operationId: tenants_tenants_retrieve description: Tenant Viewset parameters: - in: path name: tenant_uuid schema: type: string format: uuid description: A UUID string identifying this Tenant. required: true tags: - tenants responses: '200': content: application/json: schema: $ref: '#/components/schemas/Tenant' description: '' '400': $ref: '#/components/responses/ValidationErrorResponse' '403': $ref: '#/components/responses/GenericErrorResponse' put: operationId: tenants_tenants_update description: Tenant Viewset parameters: - in: path name: tenant_uuid schema: type: string format: uuid description: A UUID string identifying this Tenant. required: true tags: - tenants requestBody: content: application/json: schema: $ref: '#/components/schemas/TenantRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Tenant' description: '' '400': $ref: '#/components/responses/ValidationErrorResponse' '403': $ref: '#/components/responses/GenericErrorResponse' patch: operationId: tenants_tenants_partial_update description: Tenant Viewset parameters: - in: path name: tenant_uuid schema: type: string format: uuid description: A UUID string identifying this Tenant. required: true tags: - tenants requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedTenantRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/Tenant' description: '' '400': $ref: '#/components/responses/ValidationErrorResponse' '403': $ref: '#/components/responses/GenericErrorResponse' delete: operationId: tenants_tenants_destroy description: Tenant Viewset parameters: - in: path name: tenant_uuid schema: type: string format: uuid description: A UUID string identifying this Tenant. required: true tags: - tenants responses: '204': description: No response body '400': $ref: '#/components/responses/ValidationErrorResponse' '403': $ref: '#/components/responses/GenericErrorResponse' /tenants/tenants/{tenant_uuid}/create_admin_group/: post: operationId: tenants_tenants_create_admin_group_create description: Create admin group and add user to it. parameters: - in: path name: tenant_uuid schema: type: string format: uuid description: A UUID string identifying this Tenant. required: true tags: - tenants requestBody: content: application/json: schema: $ref: '#/components/schemas/TenantAdminGroupRequestRequest' required: true responses: '204': description: Group created successfully. '400': description: Bad request '404': description: User not found '403': $ref: '#/components/responses/GenericErrorResponse' /tenants/tenants/{tenant_uuid}/create_recovery_key/: post: operationId: tenants_tenants_create_recovery_key_create description: Create recovery key for user. parameters: - in: path name: tenant_uuid schema: type: string format: uuid description: A UUID string identifying this Tenant. required: true tags: - tenants requestBody: content: application/json: schema: $ref: '#/components/schemas/TenantRecoveryKeyRequestRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TenantRecoveryKeyResponse' description: '' '400': description: Bad request '404': description: User not found '403': $ref: '#/components/responses/GenericErrorResponse' components: schemas: PatchedTenantRequest: type: object description: Tenant Serializer properties: schema_name: type: string minLength: 1 maxLength: 63 name: type: string minLength: 1 ready: type: boolean TenantRequest: type: object description: Tenant Serializer properties: schema_name: type: string minLength: 1 maxLength: 63 name: type: string minLength: 1 ready: type: boolean required: - name - schema_name Tenant: type: object description: Tenant Serializer properties: tenant_uuid: type: string format: uuid readOnly: true schema_name: type: string maxLength: 63 name: type: string ready: type: boolean required: - name - schema_name - tenant_uuid Pagination: type: object properties: next: type: number previous: type: number count: type: number current: type: number total_pages: type: number start_index: type: number end_index: type: number required: - count - current - end_index - next - previous - start_index - total_pages ValidationError: type: object description: Validation Error properties: non_field_errors: type: array items: type: string code: type: string additionalProperties: {} TenantRecoveryKeyRequestRequest: type: object description: Tenant recovery key creation request serializer properties: user: type: string minLength: 1 duration_days: type: integer required: - duration_days - user Autocomplete: type: object additionalProperties: {} PatchedDomainRequest: type: object description: Domain Serializer properties: domain: type: string minLength: 1 maxLength: 253 is_primary: type: boolean tenant: type: string format: uuid TenantAdminGroupRequestRequest: type: object description: Tenant admin group creation request serializer properties: user: type: string minLength: 1 required: - user DomainRequest: type: object description: Domain Serializer properties: domain: type: string minLength: 1 maxLength: 253 is_primary: type: boolean tenant: type: string format: uuid required: - domain - tenant TenantRecoveryKeyResponse: type: object description: Tenant recovery key creation response serializer properties: expiry: type: string format: date-time url: type: string required: - expiry - url Domain: type: object description: Domain Serializer properties: id: type: integer readOnly: true domain: type: string maxLength: 253 is_primary: type: boolean tenant: type: string format: uuid required: - domain - id - tenant PaginatedTenantList: type: object properties: pagination: $ref: '#/components/schemas/Pagination' results: type: array items: $ref: '#/components/schemas/Tenant' autocomplete: $ref: '#/components/schemas/Autocomplete' required: - autocomplete - pagination - results PaginatedDomainList: type: object properties: pagination: $ref: '#/components/schemas/Pagination' results: type: array items: $ref: '#/components/schemas/Domain' autocomplete: $ref: '#/components/schemas/Autocomplete' required: - autocomplete - pagination - results GenericError: type: object description: Generic API Error properties: detail: type: string code: type: string required: - detail 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. QueryPaginationPage: in: query name: page schema: type: integer description: A page number within the paginated result set. QueryPaginationPageSize: in: query name: page_size schema: type: integer description: Number of results to return per page. 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