Zitadel is a free, open source identity & access management (iam) project written in Go and released under AGPL-3.0. It has 15,041 GitHub stars, 1,309 forks and 1,171 open issues, and was last pushed 10 hours ago. On this registry it ranks #6 of 11 tracked projects in Identity & Access Management (IAM), with 5 head-to-head comparisons available. It gained 32 stars over the last 6 tracked days.

Zitadel — Secure, customizable identity infrastructure for developers

What is Zitadel?

What it is

Zitadel is an open-source identity and access management platform written in Go and released under the AGPL-3.0 license. It lives in the open-source IAM ecosystem and provides identity infrastructure for developers who need to operate an authentication and authorization layer themselves.

The project addresses the problem of building a production identity stack for SaaS products, B2B platforms, and self-hosted applications without relying only on basic login screens. It provides single sign-on, multi-factor authentication, passkeys, OAuth 2.0, OpenID Connect, SAML, SCIM, and multi-tenancy through an API-first design.

Key capabilities

  • Zitadel supports single sign-on, multi-factor authentication, and passkeys, with FIDO2 listed as a project topic.
  • It provides OAuth 2.0, OpenID Connect, and SAML flows for authentication and authorization across applications.
  • It includes SCIM and a strict multi-tenant hierarchy that scopes data and policy from the identity system to organizations and projects.
  • It writes every mutation as an immutable event, giving an API-accessible audit trail that webhooks can stream to external systems.
  • It exposes resources through connectRPC, gRPC, and HTTP/JSON APIs, including a V2 REST API example for creating a human user.
  • It supports zero-downtime updates and horizontal scaling without external session stores.

Who uses it and how

  • Teams building SaaS products use Zitadel to manage organizations, projects, and tenant-scoped policies instead of implementing custom authentication infrastructure.
  • B2B platforms use the native multi-tenant model to separate customer organizations and users within one identity system.
  • Developers integrate login, user management, and authorization through the V2 REST API, gRPC, or connectRPC endpoints.
  • Operators deploy Zitadel with Docker Compose or Kubernetes, or they use ZITADEL Cloud in the United States, European Union, Australia, or Switzerland.
  • Operators use the event stream and webhooks to review authentication and identity changes in external systems.

Getting started

Self-hosted users can download the Docker Compose file and .env.example, copy it to .env, and run docker compose up -d --wait. The README also points to Kubernetes guides and a hosted ZITADEL Cloud option.

When to use it — and when not to

Zitadel fits teams that want an open-source, self-hostable IAM platform with multi-tenant organizations, event-based auditing, API-first administration, and the same codebase in ZITADEL Cloud and self-hosted deployments. It may be less suitable for teams that prefer only a hosted identity service or that want to avoid operating a Go-based, AGPL-3.0 platform whose repository metadata shows 1,171 open issues and zero contributors. Compared with FusionAuth, Keycloak, Auth0, and Okta in the README table, Zitadel emphasizes open-source self-hosting, infrastructure-level tenants, native B2B organizations, and an event stream.

project readme (upstream, from github) — read inline

GitHub Workflow Status (with event) GitHub contributors

The Identity Infrastructure for Developers

ZITADEL is an open-source identity and access management platform built for teams that need more than basic auth. Whether you're securing a SaaS product, building a B2B platform, or self-hosting a production IAM stack — ZITADEL gives you everything out of the box: SSO, MFA, Passkeys, OIDC, SAML, SCIM, and a battle-tested multi-tenancy model.

No vendor lock-in. No compromise on control. Just a robust, API-first identity platform you can own.


🏡 Website  |  💬 Chat  |  📋 Docs  |  🧑‍💻 Blog  |  📞 Contact


Why ZITADEL

We built ZITADEL to handle the hardest IAM challenges at scale — starting with multi-tenancy.

ZITADEL FusionAuth Keycloak Auth0/Okta
Open-source
Self-hostable
Infrastructure-level tenants ✅ Instances (High scale) ✅ Tenants 🟡 Realms (Scaling limits) ❌ (Multi-tenant = multi-account)
B2B Organizations ✅ Native & Unlimited 🟡 via Entity Management ✅ (Recent addition) 🟡 (Plan/Account dependent)
Full audit trail ✅ Comprehensive Event Stream* 🟡 Audit logs 🟡 Audit logs 🟡 Audit logs
Passkeys (FIDO2)
Actions / webhooks 🟡 via SPI
API-first (gRPC + REST) 🟡 REST only 🟡 REST only 🟡 REST only
SaaS + self-host parity ➖ N/A ➖ N/A

ZITADEL Cloud and self-hosted ZITADEL run the same codebase.

Key differentiators for architects:

  • Relational core, event-driven soul — every mutation is written as an immutable event for a complete, API-accessible audit trail. Unlike systems that log only select activities, ZITADEL provides a comprehensive event stream that can be audited or streamed to external systems via Webhooks.
  • Strict multi-tenant hierarchy — Identity System → Organizations → Projects, with isolated data and policy scoping at multiple levels
  • API-first design — every resource and action is available via connectRPC, gRPC, and HTTP/JSON APIs
  • Zero-downtime updates and horizontal scalability without external session stores

Get Started in 3 Minutes

👉 Quick Start Guide

ZITADEL Self-Hosted

# Docker Compose — up and running in under 3 minutes
curl -LO https://raw.githubusercontent.com/zitadel/zitadel/main/deploy/compose/docker-compose.yml \
  && curl -LO https://raw.githubusercontent.com/zitadel/zitadel/main/deploy/compose/.env.example \
  && cp .env.example .env \
  && docker compose up -d --wait

Full deployment guides:

Need professional support for your self-hosted deployment? Contact us.

ZITADEL Cloud (SaaS)

Start for free at zitadel.com — no credit card required. Available in US · EU · AU · CH. Pay-as-you-go pricing.


Integrate with the V2 API

ZITADEL exposes every capability over a typed API. Here's how to create a user with the V2 REST API:

curl -X POST https://$ZITADEL_DOMAIN/v2/users/human \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "[email protected]",
    "profile": { "givenName": "Alice", "familyName": "Smith" },
    "email": { "email": "[email protected]", "sendCode": {} }
  }'

Explore the full API reference — including connectRPC and gRPC transports — or jump straight to quickstart examples.


Features

Authentication

Multi-Tenancy

Integration

Self-Service & Admin

readme truncated — read the full docs on github

Frequently asked questions

Is Zitadel free to use?

Zitadel is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Zitadel do?

Secure, customizable identity infrastructure for developers

What is Zitadel written in?

Zitadel is primarily written in Go. Its source is publicly available at https://github.com/zitadel/zitadel, and it has 15,041 GitHub stars.