Zitadel website screenshot

Zitadel

Zitadel is an open source identity infrastructure platform providing secure authentication and user management with built-in support for OAuth 2.0, OpenID Connect, SAML 2.0, SCIM, FIDO2, and passkeys. It offers multi-tenancy, fine-grained authorization, and a comprehensive management API for building and operating identity-first applications. Available as cloud-hosted and self-hosted deployments.

5 APIs 7 Features
AuthenticationAuthorizationIdentity ManagementOpen SourceOAuth 2.0OIDC

APIs

Zitadel Management API

The Zitadel Management API provides administrative operations for managing users, organizations, projects, applications, roles, policies, and identity providers within a Zitadel...

Zitadel Auth API

The Zitadel Auth API provides endpoints for authenticated users to perform operations on their own accounts, including profile management, session handling, MFA setup, and perso...

Zitadel Admin API

The Zitadel Admin API provides instance-level configuration for Zitadel administrators. Used to configure instance-wide settings, default policies, SMTP, SMS providers, and mana...

Zitadel OIDC / OAuth 2.0

Zitadel implements the OpenID Connect and OAuth 2.0 standards for authentication and authorization flows. Provides authorization code flow, client credentials, device code, toke...

Zitadel SAML API

Zitadel provides SAML 2.0 single sign-on support, enabling enterprises to integrate with Zitadel using SAML identity federation. Accessible at /saml/v2/.

Collections

Pricing Plans

Zitadel Plans Pricing

3 plans

PLANS

Rate Limits

Zitadel Rate Limits

2 limits

RATE LIMITS

FinOps

Features

Multi-Tenancy

Native multi-tenant architecture with organizations and projects.

OAuth 2.0 / OIDC

Standards-compliant OAuth 2.0 and OpenID Connect support.

SAML 2.0

Enterprise SAML 2.0 single sign-on for identity federation.

SCIM

SCIM-based user provisioning from upstream identity providers.

FIDO2 / Passkeys

Passwordless authentication with FIDO2 and passkeys.

MFA

Multi-factor authentication including TOTP, U2F, and FIDO2.

Self-Hosted or Cloud

Deploy as a managed cloud service or self-hosted on Kubernetes.

Use Cases

Customer Identity

B2C identity for customer-facing applications and portals.

Workforce Identity

B2B/B2E identity for employees, contractors, and partners.

Machine Identity

Service account identity and OAuth client credentials flow.

SaaS Multi-Tenancy

Tenant-isolated identity for multi-tenant SaaS applications.

Integrations

Terraform

Terraform provider for declarative Zitadel resource management.

Kubernetes

Helm charts for Zitadel deployment on Kubernetes.

Google Login

External identity provider integration with Google.

GitHub Login

External identity provider integration with GitHub.

SAML IdPs

Federation with SAML identity providers.

Semantic Vocabularies

Zitadel Context

6 classes · 15 properties

JSON-LD

API Governance Rules

Zitadel API Rules

7 rules · 3 errors 4 warnings

SPECTRAL

JSON Structure

Zitadel Management Application Structure

4 properties

JSON STRUCTURE

Zitadel Management Human User Structure

3 properties

JSON STRUCTURE

Zitadel Management Machine User Structure

3 properties

JSON STRUCTURE

Zitadel Management Organization Structure

4 properties

JSON STRUCTURE

Zitadel Management Project Structure

6 properties

JSON STRUCTURE

Zitadel Management User Structure

7 properties

JSON STRUCTURE

Zitadel Structure

0 properties

JSON STRUCTURE

Example Payloads

Resources

🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
👥
GitHubOrganization
GitHubOrganization
📦
SDKs
SDKs
📦
SDKs
SDKs
🔧
Tools
Tools
🔧
Tools
Tools
📝
Signup
Signup
💰
Pricing
Pricing
📜
PrivacyPolicy
PrivacyPolicy
📜
TermsOfService
TermsOfService
🔗
License
License
🔗
JSONLD
JSONLD
🔗
SpectralRules
SpectralRules
🔗
Vocabulary
Vocabulary

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Zitadel Management API
  version: 1.0.0
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Users
    type: folder
  items:
  - info:
      name: Zitadel List Users
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/users/_search
      body:
        type: json
        data: '{}'
    docs: Search for users within the organization using filter criteria.
  - info:
      name: Zitadel Create Human User
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/users/human/_create
      body:
        type: json
        data: '{}'
    docs: Create a new human user in the organization with profile, email, and optional password.
  - info:
      name: Zitadel Create Machine User
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/users/machine/_create
      body:
        type: json
        data: '{}'
    docs: Create a new machine (service account) user for programmatic access.
  - info:
      name: Zitadel Get User by ID
      type: http
    http:
      method: GET
      url: https://{instance}.zitadel.cloud/management/v1/users/:userId
      params:
      - name: userId
        value: ''
        type: path
        description: Unique identifier of the user
    docs: Retrieve a user's profile and metadata by their unique identifier.
  - info:
      name: Zitadel Remove User
      type: http
    http:
      method: DELETE
      url: https://{instance}.zitadel.cloud/management/v1/users/:userId
      params:
      - name: userId
        value: ''
        type: path
        description: Unique identifier of the user
    docs: Permanently delete a user from the organization.
  - info:
      name: Zitadel Deactivate User
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/users/:userId/deactivate
      params:
      - name: userId
        value: ''
        type: path
        description: Unique identifier of the user
    docs: Deactivate a user account, preventing login while preserving data.
  - info:
      name: Zitadel Reactivate User
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/users/:userId/reactivate
      params:
      - name: userId
        value: ''
        type: path
        description: Unique identifier of the user
    docs: Reactivate a previously deactivated user account.
  - info:
      name: Zitadel Lock User
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/users/:userId/lock
      params:
      - name: userId
        value: ''
        type: path
        description: Unique identifier of the user
    docs: Lock a user account due to suspicious activity or policy violation.
  - info:
      name: Zitadel Unlock User
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/users/:userId/unlock
      params:
      - name: userId
        value: ''
        type: path
        description: Unique identifier of the user
    docs: Unlock a previously locked user account.
  - info:
      name: Zitadel Update User Email
      type: http
    http:
      method: PUT
      url: https://{instance}.zitadel.cloud/management/v1/users/:userId/email
      params:
      - name: userId
        value: ''
        type: path
        description: Unique identifier of the user
      body:
        type: json
        data: '{}'
    docs: Update the email address for a user account.
  - info:
      name: Zitadel List User Memberships
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/users/:userId/memberships/_search
      params:
      - name: userId
        value: ''
        type: path
        description: Unique identifier of the user
    docs: Retrieve all organization and project memberships for a user.
- info:
    name: Organizations
    type: folder
  items:
  - info:
      name: Zitadel List Organizations
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/orgs/_search
      body:
        type: json
        data: '{}'
    docs: Search for organizations accessible to the caller.
  - info:
      name: Zitadel Create Organization
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/orgs
      body:
        type: json
        data: '{}'
    docs: Create a new organization within the Zitadel instance.
  - info:
      name: Zitadel Get My Organization
      type: http
    http:
      method: GET
      url: https://{instance}.zitadel.cloud/management/v1/orgs/me
    docs: Retrieve the organization associated with the caller's context.
  - info:
      name: Zitadel List Organization Members
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/orgs/me/members/_search
    docs: List all members of the organization with their roles.
  - info:
      name: Zitadel Add Organization Member
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/orgs/me/members
      body:
        type: json
        data: '{}'
    docs: Add a user as a member of the organization with specified roles.
- info:
    name: Projects
    type: folder
  items:
  - info:
      name: Zitadel Create Project
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/projects
      body:
        type: json
        data: '{}'
    docs: Create a new project within the organization for grouping applications and roles.
  - info:
      name: Zitadel List Projects
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/projects/_search
    docs: Search for projects within the organization.
  - info:
      name: Zitadel Get Project by ID
      type: http
    http:
      method: GET
      url: https://{instance}.zitadel.cloud/management/v1/projects/:projectId
      params:
      - name: projectId
        value: ''
        type: path
        description: Unique identifier of the project
    docs: Retrieve a project by its unique identifier.
  - info:
      name: Zitadel Update Project
      type: http
    http:
      method: PUT
      url: https://{instance}.zitadel.cloud/management/v1/projects/:projectId
      params:
      - name: projectId
        value: ''
        type: path
        description: Unique identifier of the project
      body:
        type: json
        data: '{}'
    docs: Update project configuration and settings.
  - info:
      name: Zitadel Remove Project
      type: http
    http:
      method: DELETE
      url: https://{instance}.zitadel.cloud/management/v1/projects/:projectId
      params:
      - name: projectId
        value: ''
        type: path
        description: Unique identifier of the project
    docs: Permanently delete a project and all its applications and roles.
- info:
    name: Applications
    type: folder
  items:
  - info:
      name: Zitadel Create OIDC Application
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/projects/:projectId/apps/oidc
      params:
      - name: projectId
        value: ''
        type: path
        description: Unique identifier of the project
      body:
        type: json
        data: '{}'
    docs: Create a new OIDC application within a project.
  - info:
      name: Zitadel Create API Application
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/projects/:projectId/apps/api
      params:
      - name: projectId
        value: ''
        type: path
        description: Unique identifier of the project
      body:
        type: json
        data: '{}'
    docs: Create a new API application (machine-to-machine) within a project.
  - info:
      name: Zitadel List Applications
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/projects/:projectId/apps/_search
      params:
      - name: projectId
        value: ''
        type: path
        description: Unique identifier of the project
    docs: List all applications within a project.
  - info:
      name: Zitadel Get Application by ID
      type: http
    http:
      method: GET
      url: https://{instance}.zitadel.cloud/management/v1/projects/:projectId/apps/:appId
      params:
      - name: projectId
        value: ''
        type: path
        description: Unique identifier of the project
      - name: appId
        value: ''
        type: path
        description: Unique identifier of the application
    docs: Retrieve a specific application configuration.
  - info:
      name: Zitadel Remove Application
      type: http
    http:
      method: DELETE
      url: https://{instance}.zitadel.cloud/management/v1/projects/:projectId/apps/:appId
      params:
      - name: projectId
        value: ''
        type: path
        description: Unique identifier of the project
      - name: appId
        value: ''
        type: path
        description: Unique identifier of the application
    docs: Delete an application from a project.
- info:
    name: Roles
    type: folder
  items:
  - info:
      name: Zitadel Create Project Role
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/projects/:projectId/roles
      params:
      - name: projectId
        value: ''
        type: path
        description: Unique identifier of the project
      body:
        type: json
        data: '{}'
    docs: Create a new role within a project for access control.
  - info:
      name: Zitadel List Project Roles
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/projects/:projectId/roles/_search
      params:
      - name: projectId
        value: ''
        type: path
        description: Unique identifier of the project
    docs: List all roles defined in a project.
- info:
    name: Identity Providers
    type: folder
  items:
  - info:
      name: Zitadel List Identity Providers
      type: http
    http:
      method: POST
      url: https://{instance}.zitadel.cloud/management/v1/idps/_search
    docs: List all configured external identity providers for the organization.
- info:
    name: Policies
    type: folder
  items:
  - info:
      name: Zitadel Get Login Policy
      type: http
    http:
      method: GET
      url: https://{instance}.zitadel.cloud/management/v1/policies/login
    docs: Retrieve the login policy configuration for the organization.
  - info:
      name: Zitadel Update Login Policy
      type: http
    http:
      method: PUT
      url: https://{instance}.zitadel.cloud/management/v1/policies/login
      body:
        type: json
        data: '{}'
    docs: Update the login policy to configure allowed authentication methods.
  - info:
      name: Zitadel Get Password Lockout Policy
      type: http
    http:
      method: GET
      url: https://{instance}.zitadel.cloud/management/v1/policies/passwords/lockout
    docs: Retrieve the password lockout policy for the organization.
bundled: true